dhclient 在 Linux 上失败的原因有很多,常见情况和排查思路如下(按出现频率排序):
ip link show eth0
如果状态是 DOWN:
ip link set eth0 up
dhclient eth0
例如 NetworkManager 或 systemd-networkd 正在管理该网卡。
检查:
ps aux | grep -E 'dhclient|NetworkManager|systemd-networkd'
解决:
systemctl stop NetworkManager
或
systemctl stop systemd-networkd
常见于:
验证:
tcpdump -i eth0 port 67 or port 68
若无 DHCP 请求/响应,说明网络层问题。
DHCP 使用:
检查:
iptables -L -n
或临时关闭测试:
iptables -F
ps aux | grep dhclient
如果已存在:
killall dhclient
dhclient eth0
rm -f /var/run/dhclient.pid
rm -f /var/lib/dhcp/dhclient.leases
dhclient eth0
现代系统可能是:
ens33enp0s3查看:
ip addr
dhclient -v eth0
或
dhclient -d eth0
常见错误示例:
No DHCPOFFERS received → 网络/DHCP 服务器问题bind: Address already in use → 端口被占用send_packet: Network is down → 接口未 up在 systemd 系统上,更推荐:
systemctl restart NetworkManager
或
systemctl restart systemd-networkd
而不是直接用 dhclient。
ip link set eth0 up
ip addr show eth0
ps aux | grep dhclient
dhclient -v eth0
tcpdump -i eth0 udp port 67
如果你能提供:
dhclient -v 的输出我可以给你更精确的判断。