Debian 上 DHCP 不生效的原因很多,下面按最常见 → 较少见的顺序给你一个排查清单,基本能覆盖 90% 的情况。
Debian 默认用 dhclient(老版本)或 systemd-networkd / NetworkManager(新版本)。
ip 看有没有拿到地址ip addr
如果网卡还是:
NO-CARRIER169.254.x.x(APIPA)说明 DHCP 根本没成功。
/etc/network/interfaces典型配置:
auto eth0
iface eth0 inet dhcp
检查:
systemctl status networking
如果没启动:
systemctl restart networking
⚠️ 注意:
eth0(可能是 ens33、enp0s3)ip link 看真实名字检查:
systemctl status NetworkManager
确认网卡是 managed:
nmcli device status
如果显示 unmanaged,说明被 /etc/network/interfaces 抢走了。
解决:
/etc/network/interfaces 删掉该网卡配置文件:
# /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
DHCP=yes
然后:
systemctl enable --now systemd-networkd
which dhclient
如果没有:
apt install isc-dhcp-client
ip link set eth0 up
或:
ifup eth0
确认:
测试:
dhclient -v eth0
看有没有 DHCPOFFER
tcpdump -i eth0 port 67 or port 68
如果:
ens33 常见ip addr
ip link
systemctl status networking
systemctl status NetworkManager
systemctl status systemd-networkd
dhclient -v eth0
你可以直接贴:
cat /etc/network/interfacesip addrcat /etc/debian_version)我可以精准告诉你哪一行错了。