温馨提示×

ubuntu dhcp为什么启动慢

小樊
47
2026-10-01 05:07:08
栏目: 智能运维

在 Ubuntu 上 DHCP 启动慢(典型表现:dhclient 或 systemd-networkd / NetworkManager 获取 IP 很慢,开机卡在 network 阶段)通常由以下几类原因导致。下面按最常见 → 较少见说明,并给出排查与解决办法。


一、最常见原因

1. DHCP 服务器响应慢 / 不存在

  • 网络中没有 DHCP 服务器
  • DHCP 服务器负载高、跨 VLAN、跨网段中继慢

表现

  • 等几十秒甚至 1~2 分钟才拿到 IP
  • 日志中大量 DHCPDISCOVER

排查

sudo journalctl -u systemd-networkd -b
sudo journalctl -u NetworkManager -b

解决

  • 确认 DHCP 服务器正常
  • 或改用静态 IP

2. 等待 IPv6 DHCP(尤其 Ubuntu 20.04+)

Ubuntu 默认会同时尝试:

  • IPv4 DHCP
  • IPv6 SLAAC / DHCPv6

如果网络不支持 IPv6,会一直等待超时。

解决(禁用 IPv6 DHCP)

sudo nano /etc/netplan/00-installer-config.yaml

示例:

network:
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: false
      accept-ra: false

应用:

sudo netplan apply

3. 网卡未连接 / 网线未插

  • 交换机端口未 UP
  • 虚拟网卡未就绪

DHCP 会一直重试。

解决

  • 插好网线
  • 或配置 optional: true 避免开机阻塞
eth0:
  dhcp4: true
  optional: true

二、systemd 相关原因(Ubuntu 16.04+)

4. systemd-networkd-wait-online 阻塞启动

开机时 systemd 会等“网络在线”。

查看是否卡住

systemctl status systemd-networkd-wait-online

解决(允许不等待)

sudo systemctl disable systemd-networkd-wait-online

或修改 netplan:

optional: true

5. DHCP 客户端超时设置过长

dhclient 默认重试策略较慢。

解决

sudo nano /etc/dhcp/dhclient.conf

示例:

timeout 10;
retry 10;

三、较少见但容易踩坑

6. 多个网络管理工具冲突

同时启用:

  • NetworkManager
  • systemd-networkd
  • netplan

检查

systemctl status NetworkManager
systemctl status systemd-networkd

建议

  • 服务器:用 netplan + systemd-networkd
  • 桌面:用 NetworkManager

7. 防火墙 / 安全组拦截 DHCP

DHCP 使用:

  • UDP 67(服务端)
  • UDP 68(客户端)

被拦截会一直超时。


8. 虚拟机特殊问题

  • VMware / KVM 网卡类型不匹配
  • virtio 驱动未加载

四、快速自检清单 ✅

ip link
ip addr
journalctl -u systemd-networkd -b
journalctl -u NetworkManager -b

五、一句话总结

Ubuntu DHCP 启动慢,90% 是因为 IPv6、等待网络在线、或 DHCP 服务器响应慢。

如果你愿意,可以贴出:

  • Ubuntu 版本
  • netplan 配置
  • journalctl 相关日志

我可以帮你精准定位是哪一条原因。

0 踩