您的位置:首页 > 其它

VirtualBox(Ubuntu主机/Windows虚拟机)使用host-only方式与访并共享外网

2015-10-03 23:42 543 查看
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测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: