在 CentOS 里 dhclient(DHCP 客户端) 出问题,通常表现为:
下面按排查思路 + 常用命令给你一套可操作的流程。
ip addr
ip link
确认对应网卡(如 eth0、ens192)是 UP。
如果没 up:
ip link set eth0 up
ip addr show eth0
如果有 IP 但仍异常,可能是:
pkill dhclient
dhclient -v eth0
或
dhclient -d eth0
-d:前台运行,日志直接打印
常见表现:
DHCPDISCOVERDHCPOFFER 但没 DHCPACKPermission denied、bind: Address already in usejournalctl -u NetworkManager
journalctl | grep dhclient
tail -f /var/log/messages
CentOS 7+ 默认由 NetworkManager 调用 dhclient。
cat /etc/sysconfig/network-scripts/ifcfg-eth0
关键项:
BOOTPROTO=dhcp
ONBOOT=yes
systemctl restart NetworkManager
# 或
nmcli connection down eth0
nmcli connection up eth0
cat /var/lib/dhclient/dhclient-*.leases
rm -f /var/lib/dhclient/dhclient-*.leases
pkill dhclient
dhclient -v eth0
如果:
DHCPDISCOVER 一直无响应可能是:
可测试:
tcpdump -i eth0 udp port 67 or udp port 68
看是否有:
| 问题 | 原因 |
|---|---|
| 一直拿不到 IP | DHCP 服务器不可达 |
| IP 变了 | 租约过期 |
| 启动慢 | dhclient 等待超时 |
| 多网卡冲突 | 多个 dhclient 实例 |
| 云服务器异常 | 不要用 dhclient,用云平台 DHCP |
ip link
pkill dhclient
dhclient -v eth0
journalctl -u NetworkManager
tcpdump -i eth0 udp port 67
如果你愿意,可以贴:
cat /etc/redhat-release)ip addrdhclient -v 的输出我可以帮你精准定位是哪一层的问题。