欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题

程序员文章站 2022-03-27 21:51:57
如果虚拟机需要通过宿主机的有线或者WiFi连网,需要进行宿主机端和虚拟机端设置,详细如下:1 宿主机端设置1.1 VMware Workstation的网络适配器设置选择NAT模式,如下图:1.2 宿主机的网络适配器设置需要将宿主机网络进行共享,注意共享的“家庭网络连接”需要选择为VMnet8。如下图所示:1.3 宿主机中虚拟网络适配器设置VMware Network Adapter VMnet8的IPv4和子网掩码分别设置为192.168.137.1和255.255.255.0,...

如果虚拟机需要通过宿主机的有线或者WiFi连网,需要进行宿主机端和虚拟机端设置,详细如下:
1 宿主机端设置
1.1 VMware Workstation的网络适配器设置
选择NAT模式,如下图:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
1.2 宿主机的网络适配器设置

需要将宿主机网络进行共享,注意共享的“家庭网络连接”需要选择为VMnet8。如下图所示:

Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
1.3 宿主机中虚拟网络适配器设置
VMware Network Adapter VMnet8的IPv4和子网掩码分别设置为192.168.137.1和255.255.255.0,默认网关为空。如下图:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
1.4 VMware Workstation中虚拟网络编辑器设置

需要添加网络VMnet8、选择NAT模式、设置子网IP(本例为192.168.137.0)和子网掩码(一般均为255.255.255.0),最后再进行“NAT设置”和“DHCP设置”。如下图所示:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
2 虚拟机端设置

2.1 虚拟机系统IP设置

2.1.1 Linux系统有图形界面的情况
如果Linux系统有图形界面,可以通过图形界面设置,如下图所示:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题

Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
2.1.2 Linux系统有图形界面但没有网络图标,或者无图形界面的情况
通过ls /etc/sysconfig/network-scripts查看网络配置列表,示例如下:

[root@localhost~]# ls /etc/sysconfig/network-scripts
CanBeDeleted  ifdown-ppp       ifup-ib      ifup-Team
ifcfg-ens33   ifdown-routes    ifup-ippp    ifup-TeamPort
ifdown        ifdown-sit       ifup-ipv6    ifup-tunnel
ifdown-bnep   ifdown-Team      ifup-isdn    ifup-wireless
ifdown-eth    ifdown-TeamPort  ifup-plip    init.ipv6-global

其中常用的是ifcfg-ens33,然后再使用vi /etc/sysconfig/network-scripts/ifcfg-ens33命令查看该配置的内容,示例如下:

HWADDR=00:0C:************
PROXY_METHOD=none
BROWSER_ONLY=no
TYPE=Ethernet
#BOOTPROTO="static"
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7047896d-0747-4c7b-858c-2579547881a6
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.137.7
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.137.2
DNS=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

其中,需要格外留意的几项是:

BOOTPROTO=dhcp
ONBOOT=yes
IPADDR=192.168.137.7
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS=8.8.8.8

需要根据具体情况做相应修改,修改后保存。

2.2 重启Linux中网络连接

保存之后,就可以重启网络服务进行测试了。
对于图形界面的情况,可以先关闭、再打开有线连接的开关,如下图所示:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题

对于无图形界面的系统,需要使用命令重启网络服务,重启命令为:

service network restart
#示例:
[root@localhost~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

重启之后,可以ping宿主机上VMnet的IP:192.168.137.1,也可以ping t.cn或www.baidu.com测试外网情况。示例如下:

[root@localhost~]# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1) 56(84) bytes of data.
64 bytes from 192.168.137.1: icmp_seq=1 ttl=64 time=0.287 ms
64 bytes from 192.168.137.1: icmp_seq=2 ttl=64 time=0.410 ms
64 bytes from 192.168.137.1: icmp_seq=3 ttl=64 time=0.322 ms
64 bytes from 192.168.137.1: icmp_seq=4 ttl=64 time=0.345 ms
^C
--- 192.168.137.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.287/0.341/0.410/0.044 ms
[root@localhost~]# ping t.cn
PING t.cn (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.023 ms
^C
--- t.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.023/0.037/0.056/0.015 ms
[root@localhost~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.96) 56(84) bytes of data.
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=1 ttl=128 time=31.4 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=2 ttl=128 time=29.1 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=3 ttl=128 time=28.8 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=4 ttl=128 time=27.0 ms
110 packets transmitted, 110 received, 0% packet loss, time 128261ms
rtt min/avg/max/mdev = 26.295/34.545/159.932/15.807 ms

常见问题:

1、图形界面左上角网络图标消失

情形1:需要重启网络服务或者重新添加网络。
解决①:使用ifconfig ens33 up、service network restart、NetworkManager stop/disable/restart/start等命令重启网络服务,可能需要反复尝试。
解决②:在“虚拟网络编辑器”中先“移除”原来的网络,然后再添加一个和原来一样的,如果修改DHCP设置中IP地址不正确,需自行修改。
解决③:在“虚拟机设置”中修改MAC地址。手动修改MAC地址,或者点击"生成"按钮,如下图所示:Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
修改MAC后,要修改虚拟机中相应网络配置的MAC地址,并执行ifconfig ens33 up、service network restart(或systemctl restart network)重启网络配置服务。至此,网络图标可以出现,并且网络已恢复正常。
总结:如果需要修改网络配置(如ens33)信息,可以通过配置文件和命令两种方式完成:
方式一:使用vi /etc/sysconfig/network-scripts/ifcfg-ens33命令修改,修改后需要重启网络配置服务。
方式二:使用命令,无须重启网络配置服务。
ifconfig ens33 192.168.137.7 netmask 255.255.255.0 #临时修改ens33的IP地址
ifconfig ens33 192.168.137.7 netmask 255.255.255.0 up #临时修改ens33的IP地址,同时激活
route add default gw 192.168.137.2 #临时修改默认网关
hostname newHost #修改主机名,如,将localhost修改为newHost
ifup ens33 #启用指定非活动网络设置ens33(同ifconfig ens33 up)
ifdown ens33 #禁用指定活动网络设置ens33(同ifconfig ens33 down)

情形2:需使用的网络配置MAC 地址与实际不符。
此时,通过图形界面打开网络时,提示“系统的网络服务与此版本的网络管理器不兼容”,如下图所示:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
并且,此时通过命令重启网络服务,异常如下:

[root@localhost~]# service network restart
Restarting network (via systemctl):  Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
                                                           [失败]
[root@localhost~]# systemctl status network.service -l
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since 日 2020-09-13 12:54:35 CST; 10s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4902 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
9月 13 12:54:35 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
9月 13 12:54:35 localhost.localdomain systemd[1]: Unit network.service entered failed state.
9月 13 12:54:35 localhost.localdomain systemd[1]: network.service failed.
[root@localhost~]# journalctl -xe
-- Subject: Unit network.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit network.service has begun starting up.
9月 13 12:54:34 localhost.localdomain network[4902]: 正在打开环回接口: ./ifup: 未发现 ifcfg-lo 配置。
9月 13 12:54:34 localhost.localdomain network[4902]: 用法:ifup <设备名>
9月 13 12:54:34 localhost.localdomain network[4902]: [失败]
9月 13 12:54:34 localhost.localdomain network[4902]: 正在打开接口 ens33: 错误   : [/etc/sysconfig/network-scripts/ifup-eth]  ens33 设备的 MAC 地址与
9月 13 12:54:34 localhost.localdomain /etc/sysconfig/network-scripts/ifup-eth[4973]:  ens33 设备的 MAC 地址与预期不符,忽略。

解决:通过vi /etc/sysconfig/network-scripts/ifcfg-ens33(其中,ifcfg-ens33为需要使用的网络配置名称)命令修改MAC地址,示例如下:

[root@localhost~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33  #修改命令

#HWADDR=00:0C:58:B3:3E:F0  #原MAC地址
HWADDR=0D:5E:32:4B:F8:29  #修改为实际的MAC地址

#修改后执行:
[root@localhost~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost~]# systemctl start network.service
[root@localhost~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

情形3:本地网络设置丢失。
此时,网络畅通,内网、外网均可访问,但桌面右上角不显示网络连接图标。网络连接图标显示情况如下图所示:
Linux(包含CentOS7.3、Ubuntu16.04.3)虚拟机共享宿主机网络方法和常见问题
解决:通过命令vi /etc/sysconfig/network-scripts/ifcfg-lo进入本地连接编辑页面,格式如下:

DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

如果是人为将/etc/sysconfig/network-scripts/ifcfg-lo文件改名或移至别处,可以再手动还原回来。
上述修改完成之后,重启网络服务:

[root@localhost~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

至此,网络图标应该可以正常显示。

2、尝试通过systemctl restart network或systemctl restart network.service重启网络服务后断网
部分异常如下:

[root@localhost~]# systemctl  start Network.service
[root@localhost~]# systemctl restart network.service
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
Failed to start Network.service: Unit not found.
[root@localhost~]# systemctl status network.service -l
Active: failed (Result: exit-code) since 六 2020-09-12 16:22:52 CST; 27s ago
Process: 8033 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
9月 12 16:22:52 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
9月 12 16:22:52 localhost.localdomain systemd[1]: Unit network.service entered failed state.
9月 12 16:22:52 localhost.localdomain systemd[1]: network.service failed.
[root@localhost~]# service network start
Starting network (via systemctl):  Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
                                                           [失败]

解决:1)图形界面重新开启有线连接的开关。2)命令界面执行service network restart,如果不行,可尝试问题1的解决方案。

3、ping t.cn或www.baidu.com测试外网不通
解决:通过vi /etc/resolv.conf命令打开resolv.conf配置文件,添加DNS服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存,然后执行service network restart,或者重启操作系统。

参考: CentOS虚拟机通过主机WiFi上网.

本文地址:https://blog.csdn.net/shinyolive/article/details/108553200

相关标签: Linux 网络