1. 问题描述
- 现象:
ens33
网络接口无法获取 IPv4 地址,导致网络不可用。 - 初步排查:
- 运行
ip a
,发现 ens33
接口没有分配 IPv4 地址。 - 运行
ping www.baidu
,提示“网络不可达”。 - 查看
NetworkManager
日志,发现 DHCP 请求失败。
2. 详细排查与修复过程
步骤 1:检查网络接口状态
ip 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
altname enp2s1
inet6 fe80::f06a:5b51:ac6a:a797/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 分析:
ens33
接口已启用(UP
状态),但没有分配 IPv4 地址(没有 inet
行)。
步骤 2:检查网络配置文件
- 命令:
sudo cat /etc/netplan/*.yaml
- 输出:
network:
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
步骤 4:手动配置静态 IP
- 命令:
sudo nano /etc/netplan/*.yaml
- 修改后的配置文件:
network:
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._: ""
- 应用配置:
sudo netplan apply
步骤 5:验证网络配置
- 命令:
ip 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:测试网络连接
- 测试网关:
ping 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
- 测试外部网络:
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=115 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=9.8 ms
- 分析:
步骤 7:重启系统并验证
- 重启系统:
sudo reboot
- 验证网络:
- 重启后,运行
ping www.baidu
,确认网络连接正常。
关键点总结
- DHCP 失败:由于 DHCP 无法分配 IP 地址,手动配置静态 IP 是最有效的解决方案。
- NetworkManager:确保
NetworkManager
服务正常运行。 - 备份配置文件:在修改网络配置前,备份原有配置文件。
1. 问题描述
- 现象:
ens33
网络接口无法获取 IPv4 地址,导致网络不可用。 - 初步排查:
- 运行
ip a
,发现 ens33
接口没有分配 IPv4 地址。 - 运行
ping www.baidu
,提示“网络不可达”。 - 查看
NetworkManager
日志,发现 DHCP 请求失败。
2. 详细排查与修复过程
步骤 1:检查网络接口状态
ip 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
altname enp2s1
inet6 fe80::f06a:5b51:ac6a:a797/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 分析:
ens33
接口已启用(UP
状态),但没有分配 IPv4 地址(没有 inet
行)。
步骤 2:检查网络配置文件
- 命令:
sudo cat /etc/netplan/*.yaml
- 输出:
network:
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
步骤 4:手动配置静态 IP
- 命令:
sudo nano /etc/netplan/*.yaml
- 修改后的配置文件:
network:
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._: ""
- 应用配置:
sudo netplan apply
步骤 5:验证网络配置
- 命令:
ip 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:测试网络连接
- 测试网关:
ping 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
- 测试外部网络:
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=115 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=9.8 ms
- 分析:
步骤 7:重启系统并验证
- 重启系统:
sudo reboot
- 验证网络:
- 重启后,运行
ping www.baidu
,确认网络连接正常。
关键点总结
- DHCP 失败:由于 DHCP 无法分配 IP 地址,手动配置静态 IP 是最有效的解决方案。
- NetworkManager:确保
NetworkManager
服务正常运行。 - 备份配置文件:在修改网络配置前,备份原有配置文件。