将流量从端口 80 重新路由到单个 IP 上的另一个端口

将流量从端口 80 重新路由到单个 IP 上的另一个端口

我有一台关联了多个 IP 地址的服务器。我尝试运行一个 node.js web 服务器(我不想以 root 身份运行),只使用其中一个 IP 地址(如果转发来自所有 IP 地址的流量,情况会很糟糕)。

通过搜索超级用户,看起来这可以通过 iptables 来实现:

如何设置 iptables 以转发来自特定来源的 80 端口流量

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 --source 212.333.111.222 -j REDIRECT --to-port 9020

但是,我不明白为什么需要 eth0。

根据:

http://blog.softlayer.com/2011/iptables-tips-and-tricks-port-redirection/

可以这样做:

iptables -t nat -A PREROUTING -p tcp --dport 2525 -j REDIRECT --to-ports 25

将流量从端口 80 上的单个 IP(比如 111.111.111.111:80)转发到同一服务器上的另一个端口(比如 111.111.111.111:8765)的正确方法是什么?

感谢您的帮助!

答案1

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8765

不要使用 IP 地址,而要使用接口名称,我的意思是eth0您可以使用您想要的接口。

该规则规定 iptables:

  1. 在 PreRouting 上执行
  2. 不要
  3. 在接口 eth0 上
  4. 协议是 TCP
  5. 匹配的目标端口是 80
  6. 重定向至端口 8765

相关内容