在 Ubuntu 里 dhclient 获取 IP 失败,常见原因和排查思路如下(从最常见到较少见):
ip link
如果网卡状态是 DOWN:
sudo ip link set eth0 up
sudo dhclient eth0
测试:
tcpdump -i eth0 port 67 or port 68
没有 DHCP Discover/Offer 包 → 网络侧问题
Ubuntu 桌面版默认用 NetworkManager,手动跑 dhclient 常被干掉。
查看:
systemctl status NetworkManager
建议:
nmcli device reapply eth0
# 或
sudo systemctl restart NetworkManager
Ubuntu 18.04+ 用 netplan:
cat /etc/netplan/*.yaml
示例(DHCP):
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用:
sudo netplan apply
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval x→ 一直发但没回应 = 没 DHCP 服务器
No DHCPOFFERS received→ 网络层不通或 DHCP 被屏蔽
bound to 169.254.x.x→ DHCP 失败,系统启用 APIPA(链路本地地址)
sudo iptables -L
确保没DROP 67/68端口
ps aux | grep dhclient
sudo killall dhclient
sudo dhclient eth0
ip link
ip addr
systemctl status NetworkManager
cat /etc/netplan/*.yaml
tcpdump -i eth0 port 67
sudo dhclient -v eth0
如果你愿意,可以贴出:
dhclient -v eth0 的输出我可以帮你精确判断是哪一类问题。