本人在前几天做项目的时候遇到了一个情况:从别人手里clone过来的银河麒麟系统虚拟机解压打开之后,发现网络连接异常,本文将讲述如何修改虚拟机的网络配置实现虚拟机联网。
1、网络连接异常示例
首先我们先看一下我的clone虚拟机的异常情况,这样你们也好对比自己的情况,判断是否适用本篇的解决方法。
- 虚拟机网络连接异常(可以看到下图右下方显示网络未连接的状态)
- 通过
ping
命令判断是否与本机互通(可以看到虚拟机无法与本机通信)
- 通过
ping
命令判断网络连接状态(比如向网址www.baidu.com
发送请求)
2、虚拟机网络异常修复
虚拟机网络修复的过程分为两部分,分别针对虚拟机内部和外部进行设置或修改。
2.1、修改虚拟机外部设置
- 查看当前的活动网络名称、IP地址、子网掩码等(后面要用这些参数),并设置网络允许桥接;
- 首先打开控制面板;
- 点击网络和Internet;
- 点击网络和共享中心;
- 点击当前连接的活动网络WLAN(.);
- 点击详细信息,即可查看活动网络的描述(当前的活动网络名称)、IPv4地址(IP地址)、IPv4子网掩码、IPv4默认网关、DNS服务地址等。
- 点击属性,勾选属性中的
VMware Bridge Protocol
项(设置允许桥接),点击确定;
- 设置
VMware Workstation
软件(虚拟机本身)的桥接配置;
- 打开虚拟机软件,点击编辑→虚拟网络编辑器;
- 选择列表中的
VMnet0
,点击更改设置;
虚拟机在桥接模式下使用的是VMnet0
。
- 选择列表中的
VMnet0
,在下方的VMnet信息中,选择桥接模式(将虚拟机直接连接到外部网络)
,在已桥接至
下拉列表中选择通过上述步骤查找到的当前活动网络名称
,点击应用,点击确定;
- 设置银河麒麟系统虚拟机的网络适配器;
- 打开银河麒麟系统虚拟机后,点击编辑虚拟机设置;
- 进入虚拟机设置页面后,点击网络适配器,勾选
启动时连接
,选择桥接模式(B):直接连接物理网络
,勾选复制物理网络连接状态(P)
,点击确定;
- 防火墙设置
- 虚拟机和主机的防火墙都关闭;(这一步是网上看了别人帖子的,但是我没关防火墙,好像也成功了,各位看情况处理吧)
- 打开高级安全 Windows Defender 防火墙;
- 点击入站规则
- 在列表中找到并点击
虚拟机监控(回显请求-ICMPv4-In)
,点击启用规则;
- 网络如果是公用的,点击属性,在弹出的属性页中切换到
高级
页面中,勾选公用
,点击应用,点击确定;
2.2、修改虚拟机内部网络配置
- 查看当前网络是否存在网卡
ens33
,如果没有则通过指令创建一个;
- 查看当前系统的网络配置信息:进入银河麒麟系统虚拟机,打开终端,输入
ip a
,回车(可以看到没有名称为ens33的网卡);
- 通过命令添加一个名称为
ens33
的网卡:输入下述命令,回车即可完成添加(如果有的话就跳过这个步骤);
sudo nmcli connection add type ethernet ifname ens33 con-name "ens33" ipv4.method auto
- 修改网卡
ens33
配置文件
- 进入配置文件的编辑模式中:输入下述指令,回车;
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 进入编辑模式后,根据上述步骤中获取的本机IP地址、子网掩码、DNS服务地址等修改下述字段对应的值;
**编辑模式操作说明:
----- 编辑模式内控制光标的移动:通过键盘的↑↓←→控制。
----- 编辑模式内修改字段的值:光标移动到目标位置后,直接键入即可。
----- 新增字段:在某一行的末尾直接回车键入即可。
需要修改的字段及其对应的值:
---- 设置静态IP:BOOTPROTO
=static
---- 设置网卡名称:NAME
=ens33
---- 设置设备名称:DEVICE
=ens33
---- 设置开机自动网络连接:ONBOOT
=yes
---- 设置IP地址:IPADDR
=**主机活动网络的ip地址**
---- 设置子网掩码位数:PREFIX
=24
(24 表示 IP 地址的前 24 位是网络部分,后 8 位是主机部分。)
---- 设置默认网关:GATEWAY
=**主机活动网络的默认网关**
---- 设置DNS服务地址1:DNS1
=**主机活动网络的DNS服务地址**
---- 设置DNS服务地址2:DNS2
=8.8.8.8
(8.8.8.8 是 Google 提供的免费、高速公共 DNS,全球通用,适合作为备用 DNS。)
- 编辑完成,键入ESC退出编辑模式;
- 键入下述命令,回车进行强制保存;
:wq!
- 检查网络设备状态并激活网卡
ens33
- 在终端中输入如下命令,回车查看(确认
ens33
状态是否为UP
);
ip link show
- 输入如下命令,回车启用网卡(如果已经启用则跳过此步骤),此时
ens33
的状态变更为UP
;
sudo ip link set ens33 up
- 备份旧
NetworkManager
服务配置(也可以理解为修改后缀、移动、重命名):输入如下命令,回车;
sudo mv /var/lib/NetworkManager /var/lib/NetworkManager.bak
两个好处:
----出现异常后可以进行回滚;
----可以使旧服务配置不影响新生成的配置;
- 重启
NetworkManager
服务:输入如下命令,回车;
sudo systemctl restart NetworkManager
此时可以看到虚拟机的网络状态已经恢复正常
3、验证虚拟机网络
- 通过
ping
命令与本机IP互通测试
- 通过
ping
命令测试是否可与外部网络进行通信
上述显示均代表网络连接正常;