传输层端口和防火墙

传输层端口和防火墙

当发起通信时,操作系统会随机选择一个大于 1023 的端口号。只要它不与当时系统上使用的其他端口冲突。我想知道防火墙如何知道这个端口?或者防火墙规则应该始终允许来自内部 LAN 的任何端口?

谢谢。

答案1

当启动通信时,操作系统会随机选择一个大于 1023 的端口号。

操作系统会分配一个随机源端口,通常称为临时端口,超出保留端口范围。按照惯例,保留端口范围设置为前 1024 个端口,但这是可以调整的。至少在我最熟悉的 Linux 上是这样的。

此外,Linux 有一个可调整的内核,可以进一步控制从哪个端口范围中选择临时端口:sysctl net.ipv4.ip_local_port_range

Windows 具有类似的控制来管理临时端口范围,我想其他操作系统也一样。

我想知道防火墙是如何知道这个端口的?

但事实并非如此。

这就是为什么防火墙规则通常不包括源端口的原因。防火墙规则通常仅基于以下一个或多个:

  • 源 IP 地址/范围
  • 目标 IP 地址/范围
  • 目标端口号
  • 协议

仅当客户端不使用临时端口而是使用固定端口进行客户端-服务器连接时,在规则中使用源端口才有意义。(想到了 NTP。)

相关内容