• 或许题目更准确的表述是:Linux 下 iptables 在做端口转发时为啥不占用端口?
  • 因为不占用端口,所以不能用 netstat 命令查看。
  • iptables 表、链、规则图(默认filter表)
    iptables 防火墙为什么不占用端口?
  • OSI模型与TCP/IP模型
    iptables 防火墙为什么不占用端口?
  • iptables 工作在 OSI 模型的2/3/4层,做端口转发时,只需要查看和转换运输层的端口号,并不需要占用。以下摘自《计算机网络(第5版)》(谢希仁)175页。

    应当指出,从层次的角度看,NAPT 的机制有些特殊。
    普通路由器在转发 IP 数据报时,对于源 IP 地址或目的 IP 地址都是不改变的。但 NAT 路由器在转发 IP 数据报时,一定要更换其 IP 地址(转换源 IP 地址或目的 IP 地址)。
    其次,普通路由器在转发分组是,是工作在网络层。但 NAPT 路由器还要查看和转换运输层的端口号,而这本来应当属于运输层的范畴。也正因为这样,NAPT 曾遭受一些人的批评,认为 NAPT 的操作没有严格按照层次的关系。

【相关阅读】

*** walker 的流水账 ***