在 Ubuntu 上(通常是作为 DHCP 客户端,比如用 systemd-networkd 或 NetworkManager)出现 DHCP 分配 IP 很慢,一般不是“服务器慢”,而是客户端在获取地址前卡在某一步。下面按常见原因从高到低说明,并给出排查/解决办法。
很多 Ubuntu 默认同时请求:
如果网络没有 IPv6 路由器或 DHCPv6 服务器,系统会等超时才继续。
现象
journalctl 里常见 dhcp6 相关超时解决
# NetworkManager
sudo nmcli con mod <连接名> ipv6.method disabled
sudo nmcli con up <连接名>
# systemd-networkd
[Network]
DHCP=ipv4
dhclient 默认会:
如果 DHCP 服务器不响应或处理慢,会拖时间。
解决(dhclient) 编辑:
/etc/dhcp/dhclient.conf
注释或改为:
send host-name = "";
request subnet-mask, broadcast-address, routers, domain-name-servers;
Ubuntu 有时等:
现象
ip link 显示 NO-CARRIER 很久解决
ethtool -s eth0 wol d
默认:
优化
[DHCP]
RouteMetric=100
InitialDeadlineSec=5
现象
DHCPDECLINE解决
/var/lib/dhcpd/# 看 DHCP 过程耗时
journalctl -u systemd-networkd -b
journalctl -u NetworkManager -b
# 手动测试(非常快判断)
sudo dhclient -v eth0
# 看是否卡在 IPv6
ip addr show eth0
Ubuntu DHCP 慢,90% 是 IPv6 等待 + 网卡 up 慢 + dhclient 配置冗余。
如果你愿意,可以告诉我:
我可以直接给你精确配置。