在 Debian 上“DHCP 慢如蜗牛”通常不是 DHCP 协议本身的问题,而是系统启动流程 / 网络配置 / 硬件或网络环境在拖后腿。下面按最常见原因 → 排查方法 → 解决思路给你梳理。
systemd-networkd / NetworkManager / ifupdown 混用Debian 常见三种网络管理方式:
/etc/network/interfaces(ifupdown)NetworkManagersystemd-networkd如果多个同时存在,DHCP 会反复重试、等待超时,非常慢。
✅ 检查:
ps aux | grep -E 'networkd|NetworkManager|dhclient'
✅ 建议:
systemd-networkd 或 ifupdownNetworkManagerDebian 默认会:
DHCPv6IPv4 DHCP✅ 现象:
大概卡 30~60 秒journalctl 里一堆 dhcp6✅ 解决(禁用 IPv6 DHCP):
# /etc/systemd/network/*.network
[Network]
DHCP=ipv4
或 grub 禁用 IPv6(极端情况):
net.ipv6.conf.all.disable_ipv6=1
dhclient 超时时间太长默认:
✅ 查看:
cat /etc/dhcp/dhclient.conf
✅ 优化:
timeout 10;
retry 10;
DHCP 之前必须:
carrier up → autoneg 完成
如果:
会卡很久。
✅ 查看:
ip link
ethtool eth0
systemctl status systemd-networkd-wait-online
如果它卡住:
✅ 解决:
systemctl disable systemd-networkd-wait-online
(服务器若不需要严格网络就绪)
# 1. 看 DHCP 耗时
journalctl -b | grep -i dhcp
# 2. 看是不是 IPv6
journalctl -b | grep -i dhcp6
# 3. 手动测 DHCP(最直接)
dhclient -v eth0
# 4. 看网卡状态
ip link
ethtool eth0
# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
DHCP=ipv4
[DHCPv4]
RouteMetric=100
systemctl enable --now systemd-networkd
你可以贴:
cat /etc/debian_version)journalctl -b | grep -i dhcp 的输出我可以直接帮你定位是哪一步在卡。