温馨提示×

ubuntu dhcp为啥分配慢

小樊
44
2026-10-07 00:48:55
栏目: 智能运维

在 Ubuntu 上 DHCP 分配 IP 慢,通常不是 DHCP 服务器本身慢,而是客户端获取地址的流程被卡住。下面按「最常见原因 → 排查方法」给你梳理一下。


一、最常见原因(90% 的情况)

1️⃣ 等待 IPv6(尤其是 SLAAC / DHCPv6)

Ubuntu 默认会同时请求 IPv4 + IPv6,如果网络不支持 IPv6,会一直等超时。

表现

  • dhclient 或 NetworkManager 卡几秒到十几秒
  • 日志里有很多 dhcp6 相关等待

解决

# 临时禁用 IPv6(测试用)
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

或永久:

# /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

2️⃣ NetworkManager 等待“网络连接检查”

Ubuntu 默认会检测 connectivity-check.ubuntu.com,不通就慢。

解决

sudo vim /etc/NetworkManager/conf.d/99-disable-connectivity.conf
[connectivity]
enabled=false
sudo systemctl restart NetworkManager

3️⃣ DHCP 客户端顺序问题(dhclient / systemd-networkd)

Ubuntu 22.04+ 默认用 systemd-networkd 或 NetworkManager
如果你手动装了 isc-dhcp-client,可能冲突。

检查

ps aux | grep -E "dhclient|systemd-network|NetworkManager"

二、服务器端原因(如果是你搭的 DHCP)

4️⃣ 地址池快满 / 租约未释放

  • 客户端没正常释放(dhclient -r)
  • 服务器在找空闲 IP 慢

排查

cat /var/lib/dhcp/dhcpd.leases

5️⃣ DHCP 服务器跨 VLAN / 没中继

  • 客户端和服务器不在同广播域
  • 没配 dhcp-relay

三、网络层面的“假慢”

6️⃣ 交换机 / 端口安全 / STP

  • 交换机端口 STP 收敛(30 秒)
  • 802.1X 认证

现象

  • 插上网线后先等很久才有 DHCP

四、快速定位方法(推荐)

看日志

journalctl -u NetworkManager -b

或

sudo dhclient -v eth0

抓包(最直接)

sudo tcpdump -i eth0 port 67 or port 68

五、总结一句话

Ubuntu DHCP 慢,90% 是 IPv6 / 网络连通性检测在等超时

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 是 客户端慢 还是 服务器慢
  • 用的 NetworkManager 还是 server 版 netplan

我可以直接给你精准配置方案。

0 踩