由于经常需要直接在主机通过IP连接到虚拟机,所以上网搜了一些Ubuntu设置固定IP上网的方法,其中遇到了一些问题,参考了大神的博客内容,之后会列出原文链接,如果侵犯了您的权利,请与我联系删除,谢谢.
设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:bridged、host-only和NAT, 其中NAT模式对应VMnet8虚拟网络,host-only模式对应VMnet1虚拟网络,bridged模式对应 VMnet0虚拟网络,都是由VMware虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟 网络则不提供。
当前环境:
虚拟机版本:VMware WorkStation 12
系统版本:Ubuntu 16.04
1. 设置虚拟机上网方式为NAT
在虚拟机设置中的网络适配器里,选择NAT模式
2. 配置VMnet8虚拟网络
在VMware的编辑选项中打开虚拟网络编辑器
按照下图中对虚拟网络进行设置,虚拟网络的列表里默认是有VMnet0,VMnet1和VMnet8三种,我只有一种是因为我把另外两种给移除了,在这里我们选择VMnet8网络,其中子网IP根据自己的情况进行设置,只要不把原来已有的给占用即可.
3. 进入到Ubuntu系统中配置网络
主要配置下面三个方面的内容:
- 修改文件/etc/network/interfaces,这里是IP、网关、掩码等的一些配置;
- 修改文件/etc/resolv.conf,这个文件保存DNS的有关信息;
- 解决resolv.conf被重写问题;
- 重启虚拟机网络
(1).修改文件/etc/network/interfaces
输入命令:sudo vi /etc/network/interfaces
或者:sudo gedit /etc/network/interfaces
配置如下:
#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.8.100
netmask 255.255.255.0
gateway 192.168.8.2
dns-nameservers 8.8.8.8
其中较新版本的比如我的Ubuntu16.04 就是ens33,有的版本是eth0, 具体可以在终端输入ifconfig
命令查看,如图:
另外其中的网关要和虚拟网络编辑器中设置的一致,一般好像为192.168.XXX.2
上面最后一行设置的DNS不是必要的,可在下一步设置,这一步的优先级比resolv.conf中高,会优先在这一步读取DNS,如果没有配置才会去resolve.conf里面查找.
(2)修改文件/etc/resolv.conf
输入命令:sudo vi /etc/resolv.conf
或 sudo gedit /etc/resolv.conf
配置如下:
nameserver 114.114.114.114
这里具体DNS因人而异
(3)解决resolv.conf被重写问题
第二步中你虽然配置了DNS,但是每次重启虚拟机或重启网络后/etc/resolv.conf
文件就会被重写,也就是又恢复原样了,你以前的配置就不存在了,每次都要手动配置是极不可取的,所以这步是必须的,首先我们要搞清楚resolv.conf被重写的原因和机制,这在不同 Ubuntu版本下有所差异。
在这一步,教程原文上有两种办法,第一种是根据不同系统版本来采取不同的办法,第二种是于版本无关,通用的做法.我选了第二种,如果想看第一种方法,可以在文末的原文链接里去看.
第二种办法就是在前面第(1)步中在最后面直接加上你的DNS地址,因为interfaces优先级比resolv.conf高,会优先看interfaces里面的DNS.
(4)重启虚拟机网络
配置完成后需要重启一下网络:
sudo service networking restart
或者
sudo /etc/init.d/networking restart
在这一步我重启网络失败了,只能选择了下面的重启网卡
sudo ifconfig eth0 down
sudo ifconfig eth0 up
赶紧试试是不是可以了
参考:
原文链接