显示标签为“NAT”的博文。显示所有博文
显示标签为“NAT”的博文。显示所有博文

2010年11月26日星期五

VirtualBox的NAT,2

实现了VirtualBox虚拟机通过宿主机的NAT。具体方法见这里。文章中的方法已经自动设置了SNAT,这样在虚拟机里面就可以连接互联网了。

如果要让互联网的主机连接到虚拟机的服务,还需要配置DNAT。比如要让互联网访问虚拟机上的HTTP服务,那么只需在宿主机添加如下iptables规则(前提是在宿主机和虚拟机上都没有别的规则阻碍这一条的生效):
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.2 --sport 1024:65535 --dport 80 -j DNAT --to 172.16.0.209
192.168.1.2是宿主机的IP地址(这个地址通过家用路由器连接互联网),172.16.0.209是虚拟机的IP地址。

实际演示案例中,宿主机是Ubuntu 10.10,开了Apache。虚拟机是Fedora 11,开了nginx。注意Fedora默认的iptables规则拒绝了大部分连接,需要清除掉。在配置上述DNAT规则前,我们在浏览器里面连接到的是宿主机Ubuntu下的Apache。

在配置了上述DNAT规则之后,我们连接上的是虚拟机Fedora下的nginx。

上面的IP地址125.33.200.186是我们宿主机的因特网IP地址,当然也可以用192.168.1.2测试,这样做是为了演示从外面的机器上用因特网地址访问也是可以看到DNAT后的效果的。

2010年11月24日星期三

VirtualBox的NAT,1

VirtualBox (3.2.8)的NAT网络模式在手册里面是这么描述的:
A virtual machine with NAT enabled acts much like a real computer that connects to the Internet through a router. The "router", in this case, is the VirtualBox networking engine, which maps traffic from and to the virtual machine transparently.
这个神秘的NAT engine,是在宿主系统看不到的。而我更希望虚拟机是通过宿主系统的网卡来实现NAT的,这样可以用来模拟测试真实的NAT环境。