![如何在 Red Hat Linux(RHEL)中使用 IPTables 重定向端口?](https://linux22.com/image/1346639/%E5%A6%82%E4%BD%95%E5%9C%A8%20Red%20Hat%20Linux%EF%BC%88RHEL%EF%BC%89%E4%B8%AD%E4%BD%BF%E7%94%A8%20IPTables%20%E9%87%8D%E5%AE%9A%E5%90%91%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我想将端口 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
如果其他人可以扩展此要求背后的理由/逻辑,请在评论中提出意见。