如何在 Red Hat Linux(RHEL)中使用 IPTables 重定向端口?

如何在 Red Hat Linux(RHEL)中使用 IPTables 重定向端口?

我想将端口 80 转发到 8080。因此我尝试编辑/etc/syscongfig/iptables

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

但得到:

# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: 
          Line 8 seems to have a -t table  option.

有什么问题?该怎么办?

答案1

文件是否/etc/syscongfig/iptables具有适合 iptables-restore 的正确结构?

尝试手动将此规则添加到防火墙

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

并与命令/etc/sysconfig/iptables的输出进行比较iptables-save

答案2

这是你的iptables规则:

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

但我相信它应该是这样的:

-A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

注意-m tcp添加了。虽然-p tcp匹配规则或要检查的数据包的协议,-m tcp但明确告诉 IPTables 匹配 TCP 数据包。这似乎令人困惑,但据我所知,在调用特定于端口的规则时-p tcp需要与 配对。-m tcp

如果其他人可以扩展此要求背后的理由/逻辑,请在评论中提出意见。

相关内容