利用NAT Prerouting访问内网机器或虚拟机

2009年12月6日 | 标签: , ,

现在虚拟机很流行,如果物理机没有很多IP能分配给上面的虚拟机,那虚拟机只能使用内网IP了。内网IP是外网无法直接访问的,如何让使用内网IP的虚拟机外网可以访问到呢?

一种方法是使用VPN了,VPN的好处是让客户机能直接接入内网的网络,也就可以访问内网的所有服务,缺点当然就可安装设置VPN了,使用上也有些麻烦。

其实在Linux下可以利用iptables的NAT PREROUTING来建立物理机IP端口与内网IP端的映射,允许特定的外网连接被转发到指定的内网目标IP端口。

比如,比如你想让来自外网的http访问能转发到内网的http服务,假设内网的IP地址为172.31.0.23, 可以用下面命令设置:

# iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 172.31.0.23:80

这条规则会利用内置的PREROUTING chain来转发来访的HTTP请求到172.31.0.23.

如果你设置默认的DROP策略在FORWARD chain, 则需要做下面设置:

# iptables -A FORWARD -i eth0 -p tcp –dport 80 -d 172.31.0.23 -j ACCEPT

相关文章:

  1. 在基于OpenVZ的VPS上安装OpenVPN
  2. 开启Linux的路由
  3. Linux防火墙规则示例
  4. 服务器的网络安全防护
  5. Debian如何保存iptables配置
目前还没有任何评论.