Virtualbox以nat方式无网络连接guest
在virtualbox里, 如果需要让 host 无网络访问 guest, 需要做2件事:
1, 配置nat网络连接方式.(host interface虚拟网卡是依赖外部网络的, 所以只能选nat)
2, 绑定协议和端口.
怎么配置nat就不介绍了, 这里主要聊一下协议和端口怎么绑定?
首先, 你要关闭所有的 virtualbox 进程(运行状态下肯定不会生效).
然后, 找到Virtualbox的总配置文件, 默认在 C:Users用户名.Virtualbox里.(说明: 改总控文件会对所有的虚拟机生效, 如果你只想让某个虚拟机生效, 请改在虚拟机单独的配置文件里. 如果你不知道虚拟机的配置文件在哪里? 你看了总控的配置文件, 就知道了, 那里有配置指向到你自己定义名字的虚拟机)
先给一张总控的配置文件截图:

在图中举了2个例子, 分别是使host可以无网络通过ssh和http两种协议和端口访问guest.
这里拿ssh做个例子, 需要在 Machine.ExtraData 下新增3个 ExtraDataItem 节点, 分别如下:
<ExtraDataItem name =”VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol” value=”TCP”/>
<ExtraDataItem name =”VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort” value=”22″/>
<ExtraDataItem name =”VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort” value=”22″/>
其中 pcnet 是网卡, 如果你虚拟的不是pcnet的网卡, 请做相应改动. (virtualbox默认虚拟的是 PCnet Fast III)
上面的配置信息里的 ssh 是你定义的这个配置的名字, 可以随意命名, 比如httpconnect, udpconnect等, Protocol对应协议, GuestPort对应guest端口, HostPort对应host端口, 这两个端口一定要相同, 且协议, host and guest端口的的配置名字要相同, 这里都是 ssh.
配好以后, 启动 virtualbox,
然后用secureCRT或putty等你喜欢的ssh工具, 连下本地ip 127.0.0.1 就可以了.
通过这个例子, 你学会了怎么配tcp协议和端口, 同理, 其他协议, 也按照上面的步骤做一遍就ok了.最后, 别忘了重启virtualbox.
转载请注明原文链接:http://kenwublog.com/virtualbox-connect-guest-without-network