0

我有一个运行 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/浏览器时,它会尝试连接主机很长时间,然后显示服务器没有响应的消息。

什么会导致这个问题?

4

1 回答 1

4

我想你需要确保“/proc/sys/net/ipv4/ip_forward”已经启用,如果没有

echo 1 > /proc/sys/net/ipv4/ip_forward

以上命令可以帮助您允许 IP 转发。

希望这对你有帮助。

于 2013-04-15T08:52:00.103 回答