在 Ubuntu 上 dhclient 失败的原因有很多,下面按常见原因 → 表现 → 排查/解决方法来系统说明,你可以对照自己的情况。
现象
dhclient: eth0: interface not up
原因
down 了解决
ip link set eth0 up
dhclient eth0
现象
No DHCPOFFERS received.
原因
排查
tcpdump -i eth0 port 67 or port 68
没看到 DHCP Discover/Offer 就是服务器问题。
现象
dhclient: already running
或 DHCP 被 systemd 抢走
原因
dhclient 和 systemd 管理解决 ✅ 推荐用 Netplan:
network:
version: 2
ethernets:
eth0:
dhcp4: true
netplan apply
现象
dhclient: there is already a dhclient running
解决
rm -f /var/run/dhclient*.pid
dhclient eth0
现象
排查
iptables -L
临时关闭测试
iptables -F
现象
permission denied
解决
aa-status
必要时:
systemctl restart apparmor
现象
原因
/etc/network/interfaces 和 Netplan 冲突解决 统一只用一种方式管理网络。
ip addr
ip route
ip link
systemctl status systemd-networkd
journalctl -u systemd-networkd
tcpdump -i eth0 udp port 67
✅ 不要手动跑 dhclient ✅ 用 Netplan:
netplan generate
netplan apply
查看状态:
networkctl status
你可以贴出:
dhclient -v eth0 的完整输出我可以帮你精准定位是哪一条原因。