NAT模式,是VirtualBox虚拟机的默认网络模式。NAT模式有一个好处,就是guest可以访问外网,又不必多占一个局域网的IP。
VirtualBox是如何实现NAT模式的呢?其实质就是转发。从guest发出的网络数据帧,先被VirtualBox的NAT引擎接收,NAT引擎把这些TCP/IP的数据解包,再通过host发送到host上的某个应用程序或是与host在同一个网络上的另一台机器。看起来,就像这些数据是从host上的某个应用程序发出的——使用host自身的IP。同时,NAT引擎还会监听发送出去的这些数据的应答包,再把这些应答包重新打包发回到guest,以至于guest以为自己可以直接和外网通信。
但NAT也不是没缺点的,那就是如果不做设置,无法从host访问guest上的服务(例如,从host主机telnet到guest主机)。庆幸的是,VirtualBox提供了解决方法,可以把guest特定的服务曝露给外网。
以下是如何从host访问guest的telnet服务的设置过程:
1、在host执行以下命令(执行命令前,先把虚拟机完全关掉,不能处于saved模式)
$ VBoxManage modifyvm "Fedora14" --natpf1 "guest-telnet,tcp,,2223,,23"
命令解释:
"Fedora14":为虚拟机名称,
--natpf1 "guest-telnet,tcp,,2223,,23":在虚拟机网卡1上执行port forwarding,把访问host的2223端口的数据,转发到guest的23端口。
2、在host访问guest的服务:
$ telnet 127.0.0.1 2223
--EOF--