虚拟机linux上网问题
宗旨:技术的学习是有限的,分享的精神是无限的。
1、VMware中虚拟机网络的三种设置
第一种:桥接(bridged)
第二种:NAT
第三种:Host only 。该模式下仅主机可以上网,虚拟机不能上网。
2、虚拟机上网方式1:NAT方式
设置步骤:
第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式
第二步: vi/etc/network/interfaces,打开该文件,将内容编辑成为:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
第三步:执行/etc/init.d/networking restart 重启网卡
3、虚拟机上网方式2:桥接方式
第一步:桥接。在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择桥接模式。
第二步:桥接到可以上网的网卡。在菜单栏 编辑 -> 虚拟网络编辑器,选择桥接到自己Windows中可以上网的网卡上(一般就是Wifi网络或者有线网络)
第三步:设置dhcp并重启网卡。
vi/etc/network/interfaces,打开该文件,将内容编辑成为:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
保存退出。然后命令行执行/etc/init.d/networking restart 重启网卡
4、总结
第一,NAT方式设置上网比较简单,但是不能用在嵌入式开发中。
第二,桥接方式设置上网较繁琐,但是在嵌入式开发中比较有用。
//================================================================================================================================
注意:以下的某些知识可能因为虚拟机版本,虚拟机系统,自身电脑原因而不相同,所以请大家要根据具体情况具体对待,不要纠结于一个原因。例如有的人虚拟机中edit->virtual network editor下没有VM0,可能原因是没有安装这个服务,也有可能是因为安装了这个服务但是它桥接的网卡没有勾选这个服务。这些都是我自己整理的,有不对的地方希望大家提出,非常感谢!
1.虚拟机为:
(a)桥接时,它使用的网卡是win下的网卡,也就是说虚拟机和win共用一个网卡,这个网卡可以使无线网卡,也可以是有线网卡;
(b)nat模式时,使用的是虚拟网卡VM8;
(c)为host-only模式时,使用的是虚拟网卡VM1,所以桥接有线网卡时,跟VM1和VM8没有关系,而桥接无线网卡时,因为避免无线;
网卡与虚拟网卡VM1和VM8冲突,最好将VM1和VM8禁用。
2.VM0的默认上网方式是桥接,VM1的默认上网方式是host-only,VM8的默认上网方式是nat
3.重启虚拟机网卡sudo /etc/init.d/networking restart,或者改变虚拟机的联网方式后,点击enableNetworking重启网卡
4.虚拟机上网方式设置为host-only时,虚拟机的ip和VM1(在cmd中用ipconfig命令查看)在同一网段,但是win7ping不通虚拟机
5.虚拟机上网方式设置为nat时,虚拟机的ip和VM8在同一个网段,并且win7ping虚拟机可以ping通
6.虚拟机上网方式设置为桥接时,虚拟机的ip和无线网络连接的ip在同一网段,并且win7可以ping通虚拟机,但有时不在同一网段也可 以ping通。
7.开发板ping虚拟机的步骤:
操作前提是:一定要打开虚拟机的DHCP和NAT服务
方法一:虚拟机桥接桥接到automatic,这种模式下自动桥接到无线网卡上,与直接桥接到无线网卡上一样
(1)无线网络连接中的桥接进程必须打开,否则edit->virtual network editor下没有VM0
(2)将虚拟机改为桥接模式(在这之前不要将无线网禁了),不需要将虚拟机的ip设置为手动,桥接默认情况下,虚拟机的ip会跟无线网络的ip在同一个网段
(3)用print命令查看开发板的ip地址,修改这个ip地址使与虚拟机的ip地址在同一个网段。
(4)一定要禁用无线网卡(第一次ping时不需要禁用无线网,第二次ping前禁用),同时禁用虚拟网卡VM1,和VM8,并且禁用它们之前要选上虚拟机桥接服务。
(5)注意关闭windows.linux防火墙(ufwdisable)
方法二:虚拟机桥接到有线网卡上,这时需要手动设置本地连接的ip与虚拟机的ip在同一网段。如果桥接不成功,可以手动设置虚拟机的ip与win的ip在同一网段
(1)用print命令查看开发板的ip地址,修改这个ip地址使与虚拟机的ip地址在同一个网段。
(2)注意这种方式,本地连接一定要勾选VMware Bridge Protocol服务
(3)禁不禁用VM1和VM8,并且勾不勾选它们的VMware Bridge Protocol服务都是没有关系的,准确来说,桥接时跟VM1和VM8是没有关系的。
(4)注意:这种方式win系统可以ping通虚拟机,虚拟机只可以ping通win下的本地连接的ip地址,不能ping通无线网卡的ip,当然开
发板也是可以ping通虚拟机。
8.桥接模式修改回nat模式上网步骤:
(1)确保打开虚拟机的DHCP和NAT服务
(2)将虚拟机修改为nat上网模式
(3)将虚拟机的手动设置ip修改为自动获取ip
(4)将虚拟网卡VM1和VM8(其实只设置VM8就行)设置为自动获取ip
(5)重启网卡,如果还不行,首先设置为host-only模式,然后切换到nat模式,如果依然没有解决,就操作第6步
(6)删除虚拟机中的网络适配器,然后添加一个,并设置为nat模式
9.如果在edit->virtual network editor->bridge没有对应的网卡,说明该网卡没有勾选VMware Bridge Protocol服务
10.桥接不上的解决步骤:
(1)确保打开虚拟机的DHCP和NAT服务
(2)将虚拟机修改为bridge上网模式
(3)如果桥接有线(无线)网卡(推荐有线),首先要确保有线(无线)网卡勾选了VMware Bridge Protocol服务
(4)在edit->virtual network editor->bridge中选择有线网卡
(5)手动设置有线网卡的ip,同时也将虚拟机的ip设置为手动,使它们的ip在同一个网段
(6)重启虚拟机网卡sudo /etc/init.d/networking restart,或者改变虚拟机的联网方式后,点击enableNetworking重启网卡,如果依然没有桥接上,就操作第5步
(7)删除虚拟机中的网络适配器,然后添加一个,并设置为bridge模式