设置过程中遇到的问题解决:
1、linux提示connect: Network is unreachable
背景
vm初始安装centos7完成后,通过 “ping 8.8.8.8” 提示:“connect: Network is unreachable”
原因
解决
[cimi@cimi ~]$ cd /etc/sysconfig/network-scripts // 进入网络配置
[cimi@cimi network-scripts]$ ls // 查看当前目录下文件
ifcfg-ens32 ifdown-isdn ifup ifup-plip ifup-tunnel
ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless
ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global
ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions
ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6
ifdown-ib ifdown-Team ifup-ippp ifup-sit
ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
找到第一个文件 ifcfg-ens32 (不一定是这个名字,可能是32,33,前缀基本相同),找到 ONBOOT,默认是no,将其设置为yes。
[cimi@cimi network-scripts]$ vim ifcfg-ens32 // 编辑网络配置文件
2、在编辑保存时可能会出现错误提示 “E45: ‘readonly’ option is set (add ! to override) ”
原因
该错误为当前用户没有权限对文件做修改。
有三种可能:
- 该错误为当前用户没有权限对文件作修改,你有权限修改文件吗?如果是root权限,可以:wq! 强行保存退出;
- 该文件没有正确保存退出,正在打开状态,请别人关闭后再保存;
- 若该文件所有人都关闭了,提示有的人没有关闭,则删除该文件的临时文件则可以正常打开、修改、保存;
解决
先试着将 :wq 换成: wq!
发现再次提示信息,发现并不能保存修改退出,内容如下:
“ifcfg-ens32” E212: Can’t open file for writing
Press ENTER or type command to continue
原因
权限不够,普通用户无法进行保存退出,需要切换到超级用户。先退出然后接着通过sudo进入,这次就可以保存啦。
[root@cimi network-scripts]# sudo su // 切换用户到root用户
[root@cimi network-scripts]# vi ifcfg-ens32
保存完成后,重启网络服务
[root@cimi network-scripts]# service network restart // 切换用户到root用户
Restarting network (via systemctl): [ OK ]
如果显示启动OK的话,再次ping一下8.8.8.8成功,完美。
[root@cimi network-scripts]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=48 time=54.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=48 time=59.0 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=48 time=55.2 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=48 time=56.3 ms
最后注意
上面我是设置了vm的桥接模式并且物理主机连接的是无线wifi,所以会自动获取ip地址。
————————————————————————-不优雅的分割线————————————————————————
vm网络三种网络模式配置
上面我们选择的是桥接模式和物理主机连接wifi,对于其他的模式和情况怎么配置?
vm网络适配器三种模式原理及配置,详细原理可以查看文章
https://www.cnblogs.com/longchengruoxi/p/11214964.html
一、桥接模式:
桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。
设置步骤
如果是配置的是DHCP,那么就可以直接获取ip地址。这种情况直接ping就可以ping通其他ip。
[cimi@cimi network-scripts]$ ifconfig
[root@cimi network-scripts]# ping 8.8.8.8
如果是配置的是none或者static,则需要手动设置ip地址;同样通过vi编辑虚拟网卡配置文件:
[cimi@cimi network-scripts]$ vi ifcfg-ens32
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none # 默认DHCP(自动ip)或者STATIC(静态ip),这里设置none(不指定)DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=f8b42eac-78a3-4dfc-9847-3224e27a20edDEVICE=ens32ONBOOT=yes # 在系统启动时是否激活网卡# 以下是设置ip地址,如果上面设置了dhcp则不需要设置下面的;IPADDR=192.168.31.20 #设置虚拟主机ip,必须和物理主机同一网段NETMASK=255.255.255.0 # 设置子网掩码GATEWAY=192.168.31.1 # 设置虚拟机网关,与主机的默认网关相同DNS1=192.168.31.1 # 设置虚拟机DNS,可以设置与主机相同的DNS,或者可以设置主机的默认网关,这里我们直接设置主机的默认网关
重启服务并查看ip地址,可以看到ip地址已经修改为我们设置的。
[root@cimi network-scripts]# service network restart
[root@cimi network-scripts]# ifconfig
测试ping一下 8.8.8.8。
再ping一下物理主机地址(这里物理主机的ip地址是192.168.31.138),发现丢失了,这是由于物理主机没有关闭防风墙,关闭后再次测试成功ping通。
二、网络地址转换模式(NAT):
如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那么桥接模式就不适用了。
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。
设置完上面的配置后,再修改linux中的虚拟网卡配置文件。这里选择的是dhcp自动分配地址。那么虚拟机就会帮我们自动分配一个上面设置的ip区间的值。(128~254之间);如果不选择自动分配,那么下面的ip地址就必须设置成在这个区间中的值。
[cimi@cimi network-scripts]$ vi ifcfg-ens32
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcp # 选择自动分配ip地址DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=f8b42eac-78a3-4dfc-9847-3224e27a20edDEVICE=ens32ONBOOT=yes#下面注释#IPADDR=192.168.31.20#NETMASK=255.255.255.0#GATEWAY=192.168.31.1#DNS1=192.168.31.1
设置none或者static的情况
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none # 选择静态或者noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=f8b42eac-78a3-4dfc-9847-3224e27a20edDEVICE=ens32ONBOOT=yesIPADDR=192.168.33.155 # 需要设置在dhcp设置的区间之内NETMASK=255.255.255.0GATEWAY=192.168.33.2 # 需要和NAT设置的ip网关一致DNS1=192.168.33.2
<br />重启网络服务测试,ping外网和虚拟机、物理主机互ping成功。
所以VMware Network Adapter VMnet8虚拟网卡的作用是什么?,那我们现在就来测试一下。
我们把VMware Network Adapter VMnet8虚拟网卡禁用掉。
这时可以看到虚拟机仍可以访问外网,但物理主机已经无法ping通虚拟机。
所以这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。
三、主机模式(Host-Only):
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的。
Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。接下来,我们就来测试一下。
首先设置“虚拟网络编辑器”,可以设置DHCP的起始范围。
设置网络配置文件
[cimi@cimi network-scripts]$ vi ifcfg-ens32
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcpDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=f8b42eac-78a3-4dfc-9847-3224e27a20edDEVICE=ens32ONBOOT=yes#IPADDR=192.168.33.155#NETMASK=255.255.255.0#GATEWAY=192.168.33.2#DNS1=192.168.33.2
修改文件重启,查看虚拟机ip地址。
接着我们ping测试。
虚拟机ping外网和物理主机失败,物理主机ping虚拟机成功。
接着,我们配置虚拟机联通外网。
首先查看VMnet1的ip地址。
VMware Network Adapter VMnet1的IP被默认设置为了192.168.137.1。
那么接下来,我们就要将虚拟机的DHCP的子网和起始地址进行修改,点击“虚拟网络编辑器”:
接着修改网络配置文件
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none # 设置静态ipDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=f8b42eac-78a3-4dfc-9847-3224e27a20edDEVICE=ens32ONBOOT=yesIPADDR=192.168.137.155 # 设置在dhcp区间即可NETMASK=255.255.255.0 # 子网掩码GATEWAY=192.168.137.1 # 设置与VMnet1的ip地址一致
查看ip地址已经是设置的155:
接着ping一下外网成功。
物理主机ping一下虚拟机
【疑问】这里貌似只能选择设置静态ip地址,选择dhcp貌似没有成功。
to be continue。。。
