温馨提示×

ubuntu dhcp为何不生效

小樊
56
2026-09-22 08:05:30
栏目: 智能运维

在 Ubuntu 上 DHCP 不生效 是比较常见的问题,原因通常涉及网络配置方式、NetworkManager、netplan、服务状态或硬件/驱动。下面按最常见原因 → 排查步骤给你一个系统性的排查指南。


一、先确认你用的是哪种网络管理方式(很重要)

Ubuntu 18.04 以后默认使用 netplan + systemd-networkd / NetworkManager。

查看 netplan 配置

ls /etc/netplan/
cat /etc/netplan/*.yaml

典型 DHCP 配置示例:

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

⚠️ 注意缩进必须是 2 空格,不能用 Tab

应用配置:

sudo netplan apply

二、最常见原因汇总(按频率)

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

表现:网卡无 IP、DHCP 请求没发出

检查:

sudo netplan try

若有语法错误会直接提示。

✅ 修复:确保 dhcp4: true,且网卡名正确(ip a 查看)


2️⃣ NetworkManager 被禁用或未运行

systemctl status NetworkManager

若未运行:

sudo systemctl enable --now NetworkManager

桌面版 Ubuntu 通常依赖 NetworkManager。


3️⃣ systemd-networkd 与 NetworkManager 冲突

如果你用的是 server 版,可能用的是 systemd-networkd。

查看:

systemctl status systemd-networkd

netplan 中指定了 renderer:

renderer: networkd

或

renderer: NetworkManager

⚠️ 两者不能同时管同一张网卡


4️⃣ 网卡没起来

ip a

如果网卡是 DOWN:

sudo ip link set eth0 up

netplan 中加:

eth0:
  dhcp4: true

5️⃣ DHCP 客户端没运行 / 被禁用

Ubuntu 使用 systemd-networkd 或 dhclient

测试 DHCP 手动获取:

sudo dhclient eth0

若报错:

  • 没权限
  • 网卡 down
  • 交换机限制

6️⃣ 防火墙 / SELinux(少见但可能)

sudo ufw status

DHCP 需要:

  • UDP 67(server)
  • UDP 68(client)

7️⃣ 交换机 / 路由器问题(常被忽略)

  • 端口未开启 DHCP
  • VLAN 配置错误
  • 网线 / 网卡接触不良

测试:

sudo tcpdump -i eth0 port 67 or port 68

如果没有 DHCP Discover 包 → 本机问题
如果有 Discover 但无 Offer → 网络侧问题


三、快速排查流程(建议按顺序)

ip a
ping 8.8.8.8
systemctl status NetworkManager
systemctl status systemd-networkd
cat /etc/netplan/*.yaml
sudo netplan apply
sudo dhclient eth0
journalctl -u systemd-networkd -f

四、常见错误示例

❌ 错误:

dhcp: true

✅ 正确:

dhcp4: true

❌ 错误:Tab 缩进
✅ 正确:空格


五、如果你愿意,我可以更精准帮你

你可以贴出以下信息:

  1. Ubuntu 版本(lsb_release -a)
  2. 桌面版还是 server 版
  3. /etc/netplan/*.yaml
  4. ip a 输出
  5. 是否有报错日志

我可以直接帮你改配置。

0 踩