温馨提示×

Ubuntu DHCP报错怎么办

小樊
66
2026-07-27 01:54:41
栏目: 智能运维

Ubuntu 上 DHCP 报错其实很常见,原因也很多。下面我按最常见场景 + 排查步骤给你一个系统性的解决办法,你可以对照着来。


一、先确认你用的是哪种网络管理方式

Ubuntu 常见有 3 种

  1. Netplan(Ubuntu 18.04+ 默认)
  2. NetworkManager(桌面版常见)
  3. ifupdown(老系统 /etc/network/interfaces)

快速判断

ps aux | grep -E 'NetworkManager|dhclient'

二、Netplan 常见 DHCP 报错与解决

1️⃣ 配置文件错误(最常见)

查看配置:

sudo nano /etc/netplan/*.yaml

✅ 正确示例(DHCP):

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

⚠️ 注意:

  • 缩进必须是空格,不能是 Tab
  • 文件名通常是 01-netcfg.yaml

应用配置:

sudo netplan apply

如果报错:

sudo netplan --debug apply

2️⃣ DHCP 获取不到 IP(超时)

报错类似:

DHCPDISCOVER on eth0 to 255.255.255.255 port 67

✅ 排查步骤:

① 确认网卡存在

ip a

② 手动释放并重新获取

sudo dhclient -r eth0
sudo dhclient eth0

③ 检查是否有 DHCP 服务器

  • 路由器是否开启 DHCP
  • 虚拟机是否桥接 / NAT 设置错误

三、NetworkManager DHCP 问题

1️⃣ 重启 NetworkManager

sudo systemctl restart NetworkManager

2️⃣ 查看状态

nmcli device status

3️⃣ 重新启用 DHCP

nmcli device disconnect eth0
nmcli device connect eth0

四、常见错误 & 对应解决办法

No DHCPOFFERS received

✅ 原因:

  • 网线没插好
  • 交换机 / 路由器没开 DHCP
  • 虚拟机网络模式错误

✅ 解决:

  • 换网线
  • 检查路由器 DHCP
  • 虚拟机改为 NAT 或桥接

dhclient already running

sudo killall dhclient
sudo dhclient eth0

RTNETLINK answers: File exists

sudo ip addr flush dev eth0
sudo dhclient eth0

五、查看详细日志(强烈推荐)

journalctl -u NetworkManager

或:

dmesg | grep eth

六、快速自检清单 ✅

  • [ ] 网线 / 虚拟网络正常
  • [ ] Netplan YAML 格式正确
  • [ ] dhclient 能拿到 IP
  • [ ] 路由器 DHCP 开启
  • [ ] 没有多个 DHCP 客户端冲突

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

你可以把具体报错信息贴出来,比如:

  • 终端完整报错
  • ip a 输出
  • /etc/netplan/*.yaml 内容

我可以直接帮你改 ✅

0