1. 问题描述
- 现象 :
ens33
网络接口无法获取 IPv4 地址,导致网络不可用。 - 初步排查 :
- 运行
ip a
,发现ens33
接口没有分配 IPv4 地址。 - 运行
ping www.baidu.com
,提示"网络不可达"。 - 查看
NetworkManager
日志,发现 DHCP 请求失败。
- 运行
2. 详细排查与修复过程
步骤 1:检查网络接口状态
- 命令:
bash
ip a
- 部分输出:
bash
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:75:7b:81 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet6 fe80::f06a:5b51:ac6a:a797/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 分析 :
ens33
接口已启用(UP
状态),但没有分配 IPv4 地址(没有inet
行)。
步骤 2:检查网络配置文件
-
命令 :
bashsudo cat /etc/netplan/*.yaml
-
输出 :
yamlnetwork: version: 2 ethernets: NM-1636652f-5720-414e-9282-xxxxxxxxcf99: renderer: NetworkManager match: name: "ens33" dhcp4: true dhcp6: true wakeonlan: true networkmanager: uuid: "1636652f-5720-414e-9282-xxxxxxxxf99" name: "配置 1" passthrough: ethernet._: "" ipv6.addr-gen-mode: "default" ipv6.ip6-privacy: "-1" proxy._: ""
-
分析 :
- 配置文件中启用了
dhcp4
,但 DHCP 未分配 IP 地址。
- 配置文件中启用了
步骤 3:检查虚拟机网络设置
- 发现 :
- 虚拟机的
vmnet8
网络设置如下:- 子网 IP:
192.168.213.0
- 网关:
192.168.213.2
- 子网掩码:
255.255.255.0
- 子网 IP:
- 虚拟机的
步骤 4:手动配置静态 IP
-
命令 :
bashsudo nano /etc/netplan/*.yaml
-
修改后的配置文件 :
yamlnetwork: version: 2 ethernets: NM-1636652f-5720-414e-9282-xxxxxxxxcf99: renderer: NetworkManager match: name: "ens33" addresses: - 192.168.213.100/24 routes: - to: 0.0.0.0/0 via: 192.168.213.2 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 wakeonlan: true networkmanager: uuid: "1636652f-5720-414e-9282-xxxxxxxxcf99" name: "配置 1" passthrough: ethernet._: "" ipv6.addr-gen-mode: "default" ipv6.ip6-privacy: "-1" proxy._: ""
-
应用配置 :
bashsudo netplan apply
步骤 5:验证网络配置
-
命令 :
baship a
-
输出 :
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:75:7b:81 brd ff:ff:ff:ff:ff:ff inet 192.168.213.100/24 brd 192.168.213.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe75:7b81/64 scope link valid_lft forever preferred_lft forever
-
分析 :
ens33
接口已成功分配静态 IP 地址192.168.213.100/24
。
步骤 6:测试网络连接
-
测试网关 :
bashping 192.168.213.2
-
输出 :
PING 192.168.213.2 (192.168.213.2) 56(84) bytes of data. 64 bytes from 192.168.213.2: icmp_seq=1 ttl=64 time=0.123 ms 64 bytes from 192.168.213.2: icmp_seq=2 ttl=64 time=0.098 ms
-
测试外部网络 :
bashping 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=115 time=10.2 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=9.8 ms
-
分析 :
- 网络连接正常。
步骤 7:重启系统并验证
-
重启系统 :
bashsudo reboot
-
验证网络 :
- 重启后,运行
ping www.baidu.com
,确认网络连接正常。
- 重启后,运行
关键点总结
- DHCP 失败:由于 DHCP 无法分配 IP 地址,手动配置静态 IP 是最有效的解决方案。
- NetworkManager :确保
NetworkManager
服务正常运行。 - 备份配置文件:在修改网络配置前,备份原有配置文件。