在 CentOS 中 dhclient 获取 IP 地址慢,通常不是单一原因,而是下面几类常见问题叠加导致的。我按最常见 → 较少见给你梳理,并给出对应排查/解决办法。
这是首要怀疑对象。
排查:
tcpdump -i eth0 port 67 or port 68
看是否有:
解决:
CentOS 默认会同时请求 IPv4 + IPv6:
现象:
dhclient -v
能看到在等 IPv6 很久
解决(常用):
# 禁用 IPv6(临时)
sysctl -w net.ipv6.conf.all.disable_ipv6=1
# 永久
vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
或在网卡配置中:
IPV6INIT=no
CentOS 7/8 默认用 NetworkManager,它会:
如果你手动跑 dhclient,可能:
排查:
ps aux | grep dhclient
建议:
# 用 NM 管理
nmcli con reload
nmcli con up eth0
或彻底统一:
systemctl stop NetworkManager
systemctl disable NetworkManager
dhclient 默认:
在弱网络下会显得“慢”。
优化示例:
vi /etc/dhcp/dhclient.conf
timeout 10;
retry 10;
reboot 2;
如果:
dhclient 会一直等 link
检查:
ip link show eth0
ethtool eth0
交换机侧:
spanning-tree portfastrm -f /var/lib/dhclient/dhclient*.leases
systemctl restart network
getenforce
iptables -L -n
dhclient 写日志、写 lease 文件时:
最实用一条命令:
dhclient -v -d eth0
观察卡在:
CentOS 上 dhclient 慢,90% 是:IPv6等待 + DHCP服务器响应慢 + NetworkManager冲突
如果你愿意,可以告诉我:
dhclient -v 的输出片段我可以直接帮你精确定位。