我有一台关联了多个 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:
- 在 PreRouting 上执行
- 不要
- 在接口 eth0 上
- 协议是 TCP
- 匹配的目标端口是 80
- 重定向至端口 8765