所有的端口转发的例子,我可以find的NAT,这不是我想要的。 我们有一个HTTP服务器应用程序,一次绑定到1个端口。 但是,我们需要绑定到一个额外的端口来绕开一个愚蠢的公司防火墙。 例如,如果我的http服务器正在监听1234,那么我们该如何转发4321到这个端口呢? 服务器是Debian,我相信我们可以使用iptables来完成这个任务。
那么,我想这只是写一个DNAT规则:
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx --dport 4321 -j DNAT --to 127.0.0.1:1234
因为它在prerouting链它应该工作没有路由的干扰。 但这似乎是一个非常复杂的方式来解决这个问题。
相反,你为什么不简单地告诉你的HTTP服务器绑定到两个端口? 正如你在Debian上,我假设你使用Apache。 然后在httpd.conf中添加两个Listen指令:
Listen 1234 Listen 4321
请注意,在两个端口上提供相同的内容将无法正常工作,因为您将不得不根据用户所连接的端口更改所有URL,否则所有链接都将被破坏。