温馨提示×

debian dhcp为啥不生效

小樊
60
2026-09-29 00:26:22
栏目: 智能运维

Debian 上 DHCP 不生效的原因很多,下面按最常见 → 较少见的顺序给你一个排查清单,基本能覆盖 90% 的情况。


一、先看 DHCP 客户端有没有在跑(最常见)

Debian 默认用 dhclient(老版本)或 systemd-networkd / NetworkManager(新版本)。

1️⃣ 用 ip 看有没有拿到地址

ip addr

如果网卡还是:

  • NO-CARRIER
  • 只有 169.254.x.x(APIPA)

说明 DHCP 根本没成功。


二、Debian 网络配置方式问题(重点)

✅ 情况 A:用的是 /etc/network/interfaces

典型配置:

auto eth0
iface eth0 inet dhcp

检查:

systemctl status networking

如果没启动:

systemctl restart networking

⚠️ 注意:

  • 网卡名可能不是 eth0(可能是 ens33、enp0s3)
  • 用 ip link 看真实名字

✅ 情况 B:用的是 NetworkManager(桌面版常见)

检查:

systemctl status NetworkManager

确认网卡是 managed:

nmcli device status

如果显示 unmanaged,说明被 /etc/network/interfaces 抢走了。

解决:

  • 从 /etc/network/interfaces 删掉该网卡
  • 重启 NetworkManager

✅ 情况 C:用的是 systemd-networkd(服务器常见)

配置文件:

# /etc/systemd/network/20-wired.network
[Match]
Name=eth0

[Network]
DHCP=yes

然后:

systemctl enable --now systemd-networkd

三、DHCP 客户端本身没装 / 被禁用

检查 dhclient 是否存在

which dhclient

如果没有:

apt install isc-dhcp-client

四、网卡根本没 up

ip link set eth0 up

或:

ifup eth0

五、DHCP 服务器问题(不是 Debian 的锅)

确认:

  • 网线插好
  • 交换机端口正常
  • 路由器 DHCP 开启
  • 不是静态 IP 冲突

测试:

dhclient -v eth0

看有没有 DHCPOFFER


六、防火墙 / 内核问题(较少)

检查是否丢包

tcpdump -i eth0 port 67 or port 68

如果:

  • 有 DISCOVER 没 OFFER → 服务器问题
  • 什么都没有 → 网卡 / 驱动问题

七、VirtualBox / VMware 常见坑

  • 网卡模式必须是 桥接 / NAT
  • 不能是 Host-only
  • VMware 里 ens33 常见

八、快速自检命令汇总

ip addr
ip link
systemctl status networking
systemctl status NetworkManager
systemctl status systemd-networkd
dhclient -v eth0

如果你愿意

你可以直接贴:

  1. cat /etc/network/interfaces
  2. ip addr
  3. Debian 版本(cat /etc/debian_version)
  4. 物理机 / 虚拟机

我可以精准告诉你哪一行错了。

0 踩