【问题标题】:understanding netfilter REDIRECT Target了解 netfilter REDIRECT 目标
【发布时间】:2013-03-14 12:55:01
【问题描述】:

只是玩弄网络过滤器 REDIRECT-Target 。 我想知道目标端口是如何改变的 使用“--to-ports”(复数)时。

iptables -I PREROUTING -t nat -i test -p TCP --dport 2800 -j REDIRECT --to-ports 2900-2905

第一场比赛/命中 2800 -> 2900 ?
第二场比赛/命中 2800 -> 2901 ?
第三场比赛/命中 2800 -> 2902 ?

在我的测试中,唯一使用的端口是第一个: 2900 。 在这种情况下,范围参数“--to-ports”让我感到困惑。 原始端口是否会影响范围内正在使用的端口? 使用哪个端口何时,当用“--to-ports”指定范围时? “--to-port” 也可以,但手册页中没有提到。

谢谢。

【问题讨论】:

    标签: linux networking iptables nat netfilter


    【解决方案1】:

    netfilter 是无状态的,无法跟踪端口状态,因此无法实现轮询。

    此参数旨在解决端口冲突问题,例如检查此规则:

    iptables -t nat -A PREROUTING -p tcp --dport 1000:2000 -j REDIRECT --to-ports 2900
    

    如果一个客户端想要建立 2 个连接

    client:3000 <---> server:1000
    client:3000 <---> server:1001
    

    这是可能的,因为客户端可以重用其端口。如果服务器将两个连接都重定向到端口 2900,则会导致问题,这两个连接变得相同。

    所以服务器需要多个冗余端口来避免这个问题。但如果客户端不重用其端口,则不会发生这种情况。

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      相关资源
      最近更新 更多