虚拟机开机网络连接失败

查看当前系统的网络接口信息

复制代码
[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:cb:f1:18 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
3: ens224: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:cb:f1:22 brd ff:ff:ff:ff:ff:ff
    altname enp19s0

输出显示:

  1. lo: 回环接口(本地通信),已启用,IPv4地址为127.0.0.1,IPv6地址为::1
  2. ens160: 以太网接口,状态DOWN(未激活),无IP地址
  3. ens224: 以太网接口,状态DOWN(未激活),无IP地址

查看NetworkManager管理的连接配置

复制代码
[root@master ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens160  deedaa47-f705-4e17-b5f0-e576351363d5  ethernet  --     
ens224  487e9c14-736b-4ef5-bcd1-38d764660cea  ethernet  --  

输出显示两个已配置但未激活的连接(ens160和ens224)

尝试激活ens160连接(失败)

复制代码
[root@master ~]# nmcli con up ens160 
Error: Connection activation failed: No suitable device found for this connection (device lo not available because device is strictly unmanaged).

错误原因:设备被标记为"unmanaged"(未托管),NetworkManager不管理该设备

将ens160设备设置为NetworkManager托管

复制代码
[root@master ~]# nmcli device set ens160 managed yes

检查设备状态(此时仍显示unmanaged,需要重载服务)

复制代码
[root@master ~]# nmcli device status 
DEVICE  TYPE      STATE      CONNECTION 
ens160  ethernet  unmanaged  --         
ens224  ethernet  unmanaged  --         
lo      loopback  unmanaged  --    

重载NetworkManager服务使配置生效

复制代码
[root@master ~]# systemctl reload NetworkManager.service      

检查网络功能是否启用(发现被禁用)

复制代码
[root@master ~]# nmcli networking
disabled

启用网络功能

复制代码
[root@master ~]# nmcli networking on

再次确认状态

复制代码
[root@master ~]# nmcli networking
enabled

再次查看连接配置(此时连接已自动匹配到设备)

复制代码
[root@master ~]# nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens224  487e9c14-736b-4ef5-bcd1-38d764660cea  ethernet  ens224 
ens160  deedaa47-f705-4e17-b5f0-e576351363d5  ethernet  ens160 
lo      17f3957c-94be-4448-962b-f6f9d2385f3e  loopback  lo  

输出显示:

  • ens224和ens160都已关联到对应设备
  • lo回环接口也显示为受管理状态

检查设备最终状态(全部显示connected)

复制代码
[root@master ~]# nmcli device status 
DEVICE  TYPE      STATE                   CONNECTION 
ens224  ethernet  connected               ens224     
ens160  ethernet  connected               ens160     
lo      loopback  connected (externally)  lo     

输出显示:

  • ens224和ens160都已连接(state UP)
  • lo回环接口显示为外部连接(正常)

再次查看IP地址分配情况

复制代码
[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:cb:f1:18 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.1.118/24 brd 192.168.1.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::d3cc:fd22:1a4a:594/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:cb:f1:22 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    inet 192.168.2.118/24 brd 192.168.2.255 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::c2b3:97be:ee68:e329/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

输出显示:

  1. lo接口保持不变
  2. ens160: 已获取IPv4地址192.168.1.118/24和IPv6链路本地地址
  3. ens224: 已获取IPv4地址192.168.2.118/24和IPv6链路本地地址
    注意:两个接口现在都显示为UP状态(<BROADCAST,MULTICAST,UP,LOWER_UP>)

关键问题说明:

  1. 初始失败原因:NetworkManager默认不管理某些设备(如虚拟机添加的接口)
  2. 解决方案步骤:
    • 通过nmcli device set将设备标记为托管
    • 重载NetworkManager服务
    • 确保网络功能启用(nmcli networking on
  3. 最终结果:两个物理网卡都成功获取IP地址并处于激活状态

补充建议:

  • 如果需要持久化配置,建议使用nmcli connection modify设置1. ********静态IP
  • 可以通过nmcli connection edit进行交互式高级配置