在 CentOS 里 dhclient 启动失败比较常见,通常不是“命令坏了”,而是网络配置、接口状态或冲突导致的。可以按下面顺序排查。
先手动执行,看具体报错:
dhclient -v eth0
(把 eth0 换成你的网卡名,用 ip addr 看)
常见错误示例:
dhclient(1234) is already runningCannot find devicebind: Address already in useNo DHCPOFFERS receivedps aux | grep dhclient
如果有进程:
kill -9 <pid>
dhclient eth0
CentOS 7+ 一般用 NetworkManager 管理 DHCP。
✅ 推荐做法(不要用 dhclient 手动跑):
nmcli device reapply eth0
# 或
nmcli connection up eth0
如果一定要用 dhclient:
systemctl stop NetworkManager
dhclient eth0
ip link show eth0
如果是 DOWN:
ip link set eth0 up
dhclient eth0
编辑:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
确保有:
BOOTPROTO=dhcp
ONBOOT=yes
然后:
systemctl restart network
# 或
ifdown eth0 && ifup eth0
dhclient -v eth0
如果一直卡在:
DHCPDISCOVER on eth0 to 255.255.255.255 port 67
说明:
✅ 测试:
tcpdump -i eth0 port 67
rm -f /var/lib/dhclient/dhclient*.leases
dhclient eth0
CentOS 8 默认 不用 dhclient 手动跑,而是:
nmcli connection modify eth0 ipv4.method auto
nmcli connection up eth0
ip addr 看网卡是否存在ip link set upifcfg-* 配置如果你愿意,把下面信息发我,我可以直接帮你定位:
ip addr
cat /etc/sysconfig/network-scripts/ifcfg-eth0
dhclient -v eth0
(贴报错就行)