iptables:将端口80转发到端口8080

如何将端口80内部端口转发到端口8080?

我的目标是在端口8080上运行Web应用服务器(Glassfish),但是外部世界通常在80端口上访问它。这样做是为了不必以root身份运行Glassfish。

我试着将下面的规则添加到我的/ etc / sysconfig / iptables中:

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

但是这会导致以下错误:

 Applying iptables firewall rules: iptables-restore v1.3.5: Line 21 seems to have a -t table option. 

你不能像/etc/sysconfig/iptables那样指定表。 每个表格都设有一个星号,然后是表格名称。 这是你要做的事情的骨架:

 *nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080 COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT 

您也可以使用iptables命令手动设置您喜欢的规则,然后执行iptables-save > /etc/sysconfig/iptablesservice iptables save

你近了

iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT -to-destination:8080

它必须做NAT,以便当答复被发回到客户端时,它似乎来自端口80而不是8080。