0

有些人在他们的笔记本电脑上使用防火墙,它不仅会阻止他们自己的本地传入端口(除了他们的应用程序需要的端口),还会阻止消息,除非它们是不同的端口号发出的。我们正在谈论一个正在监听 UDP 广播的本地 UDP 服务器。问题是远程客户端使用了一个随机端口,比如 1024,除非他们告诉防火墙接受它,否则它会被阻止。

令我困惑的是,据我所知,在我的程序中使用套接字通常是客户端从操作系统获取其端口号,而只有当您拥有服务器时,您才将套接字绑定到不同的端口,对吗?

在我的文献以及网络上的教程和代码片段中,我没有发现任何线索表明客户端应该使用固定端口号。

那么这在现实中是怎样的呢?我可能错过了一点吗?是否有使用固定端口的客户端应用程序?用防火墙阻止远程端口实际上有用吗?如果是,这会给您带来什么级别的额外安全性?

多谢提前赐教...

4

2 回答 2

0

如果在发送之前没有明确绑定到一个地址和/或端口,您总是会得到一个随机地址和/或端口。

守护进程通常绑定到一个固定端口,因此:

  • 您实际上可以联系他们,而无需尝试所有可能的端口或使用辅助解析器(还记得 SUNRPC 端口映射废话吗?)
  • 并且因为如果 TCP 套接字没有绑定到端口 IIRC,则不允许它侦听()。

是否有使用固定端口的客户端应用程序?

有些可以这样配置,比如 BIND9。

用防火墙阻止远程端口有用吗?

不,因为您的同伴可以选择他的任何端口。阻止他,你会失去一个客户,可以这么说。

于 2010-12-10T20:38:51.887 回答
0

尽管默认 API 允许网络堆栈为客户端连接选择本地端口,但客户端可能出于各种原因指定固定端口。

  • 一些规范 (FTP) 为客户端指定了一个固定端口。大多数服务器并不关心客户端是否正确。
  • 一些客户端使用固定的端口池从 LAN 到 Internet 的出口。这允许防火墙规则更完全地锁定出站流量。
  • 源端口有时被用作“通过默默无闻的安全”的弱类型。
于 2010-12-10T22:22:39.923 回答