温馨提示×

Ubuntu为何DHCP失败

小樊
68
2026-07-27 01:48:44
栏目: 智能运维

Ubuntu 上 DHCP 失败 的原因很多,下面按最常见 → 较少见的顺序给你一个排查清单,基本能覆盖 90% 的情况。你可以对照着一步步看。


一、最常见原因(优先排查)

1️⃣ 网络接口未启用

ip link
  • 如果接口是 DOWN,DHCP 一定失败
    ✅ 解决:
sudo ip link set eth0 up

(把 eth0 换成你的接口名,如 ens33


2️⃣ NetworkManager 与 netplan 冲突(非常常见)

Ubuntu 18.04+ 默认使用 netplan,但有时 NetworkManager 干扰 DHCP。

检查:

ps aux | grep -E 'NetworkManager|systemd-networkd'

✅ 推荐做法:

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

3️⃣ netplan 配置错误(最常见)

查看配置:

cat /etc/netplan/*.yaml

✅ 正确 DHCP 示例(以太网):

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true

应用配置:

sudo netplan apply

⚠️ 常见错误:

  • 缩进错了(必须是空格,不能是 Tab)
  • 接口名写错
  • 同时配置了静态 IP 和 DHCP

二、DHCP 客户端问题

4️⃣ dhclient 没运行或卡死

ps aux | grep dhclient

手动请求 DHCP:

sudo dhclient -v eth0

如果报错:

  • No DHCPOFFERS received → 网络/路由器问题
  • Permission denied → 权限或接口问题

三、网络环境问题(非常关键)

5️⃣ 路由器 / 交换机未提供 DHCP

测试:

sudo tcpdump -i eth0 port 67 or port 68

看不到 DHCP Offer → 不是 Ubuntu 问题

✅ 解决:

  • 检查路由器 DHCP 是否启用
  • 换网线 / 换端口
  • 换路由器测试

6️⃣ 虚拟机网络模式错误(VMware / VirtualBox)

常见错误:

  • NAT 模式却没开 DHCP
  • 桥接模式选错网卡

✅ 建议:

  • 优先用 NAT
  • 桥接时确认宿主机网卡是 DHCP

四、防火墙 / 安全策略

7️⃣ 防火墙阻止 DHCP

sudo ufw status

DHCP 使用:

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

✅ 临时测试:

sudo ufw disable

五、驱动 / 硬件问题

8️⃣ 网卡驱动异常

ip a

如果看不到接口或 MAC 全是 0 → 驱动问题

✅ 检查:

lspci | grep -i net
dmesg | grep eth

六、快速定位命令(强烈推荐)

ip a
ip route
cat /etc/netplan/*.yaml
sudo journalctl -u systemd-networkd
sudo journalctl -u NetworkManager

七、典型错误对照表

现象 原因
一直卡在 DHCP 路由器没回包
DHCP 成功但没网关 netplan 配置错误
时好时坏 网络冲突 / 多 DHCP
虚拟机失败 网络模式错误

八、如果你愿意,我可以直接帮你定位

你可以直接把下面信息发我(复制粘贴即可):

ip a
cat /etc/netplan/*.yaml
sudo journalctl -xe | tail -n 50

我可以直接告诉你 是哪一行配置或哪个环境导致 DHCP 失败

0