我有一个运行CentOS的VDS,有两个接口:eth0和ham0。 eth0是我的WAN接口,可从Internet访问外部IP,ham0是小型VPN网络(Logmein Hamachi)的接口。
VPN网络中有三台机器,其中一台是我家的Linux机箱,它在80端口运行Apache。这台机器在ISP的NAT后面,无法从外面看到。 我想在我的VDS上创建一个规则,将来自Internet(eth0接口)的端口8081的连接转发到我的VPN网络中的这个linux盒子。像这样:
[Internet] ---> [VDS server with public IP] ---> [Apache server inside VPN]
我使用了以下规则:
iptables -t nat -A PREROUTING -p tcp -d *external_ip* --dport 8081 -j DNAT --to *internal_ip*:80
iptables -A FORWARD -p tcp -d *internal_ip* --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dst *internal_ip* -j LOG --log-level warning --log-prefix "[REQUEST_FORWARDED]"
但它不起作用。我可以在/ var / log / messages中看到“REQUEST_FORWARDED”消息,但是当我在浏览器中转到http://my_eternal_ip:8081/
时,它会尝试连接到主机很长一段时间,然后显示一条消息服务器没有回复。
什么可能导致这个问题?
答案 0 :(得分:4)
我猜您需要确保已启用“/ proc / sys / net / ipv4 / ip_forward”,否则
echo 1 > /proc/sys/net/ipv4/ip_forward
以上命令可以帮助您进行IP转发。
希望这对你有所帮助。