红联Linux门户
Linux帮助

VirtualBox(Ubuntu主机/Windows虚拟机)使用host-only方式与访

发布时间:2015-12-09 15:50:45来源:linux网站作者:qq_20480611

1.vbox全局设置

新建host-only网络。一般网络名会是vboxnet0,默认IP地址为192.168.56.1,子网掩码:255.255.255.0。

为了方便之后相互通信,需要虚拟机使用静态IP,因此将DHCP服务器禁用。


2.虚拟机设置

打开虚拟机之前先修改下虚拟机的网络设置,修改网卡1的连接方式为仅主机(Host-only)适配器,界面名称选择前面新建的vboxnet0,保存

启动虚拟机,修改虚拟机Win7系统网络连接:
IP为192.168.56.2(可修改为2-254之前任意值),子网掩码为255.255.255.0,默认网关为192.168.56.1。DNS设置与主机网络相同即可,这里也用的阿里的DNS服务。

Ubuntu输入命令 nm-tool 可以查看dns

至此,双机应可相互ping通。可能你在Ubuntu中无法ping通虚拟机中的Win7,是因为Win7的防火墙禁止ping,关闭防火墙应该就可以了。


3.开启Ubuntu的网络转发

网上有很多使用iptables实现host-only访问外网的教程,但是大都把这一步省了。但恰恰是这一步的缺失导致了我之前一直无法让host-only的虚拟机访问外网!

开启的方式如下:

编辑/etc/sysctl.conf
sudo vim /etc/sysctl.conf 

去掉下面一行的注释(去掉形状的#)
net.ipv4.ip_forward=1 

之后执行
sudo sysctl -p 

此时,网络转发功能应该就开启了,可以使用如下命令验证:
cat /proc/sys/net/ipv4/ip_forward 

命令返回1,说明网络转发已开启。


4.配置网络转发规则
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.56.0/24 -j MASQUERADE 

至此虚拟机应可访问外网了。如果还不能访问外网,请检查你的网络连接设备是否是eth0(使用ifconfig命令),如果不是,请将上述命令中eth0改成你有效的连接设备名,比如使用无线连接,设备名应该是wlan0。

为了每次开机后,转发规则都能生效,把这条命令加入/etc/rc.local
sudo vim /etc/rc.local 

在exit 0行之前加入以下两行:
#enable vboxnet0 nat over eth0 
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.56.0/24 -j MASQUERADE 

同样请保证你使用你当前有效的网络连接设备名。


Ubuntu 14.04/Virtualbox 4.3.10测试通过。


Ubuntu 11.10 VirtualBox的Host-only网卡上外网和DHCP:http://www.linuxdiyf.com/linux/5210.html

VirtualBox中安装Ubuntu Server无法找到Host-Only网卡的问题:http://www.linuxdiyf.com/linux/4378.html