温馨提示×

ubuntu dhcp为何连不上

小樊
60
2026-10-12 21:21:39
栏目: 智能运维

Ubuntu 连不上 DHCP(拿不到 IP)常见原因和排查思路如下,你可以按顺序来查:


一、先看基本现象

ip addr
  • 网卡没有 IP(只有 127.0.0.1 或 169.254.x.x)→ DHCP 没成功
  • 169.254.x.x 说明 DHCP 失败,系统用了链路本地地址

二、常见原因与解决办法

1️⃣ 网络服务没启动 / 用错管理方式

Ubuntu 18.04+ 默认用 Netplan

systemctl status systemd-networkd
systemctl status NetworkManager

排查:

sudo netplan apply

2️⃣ Netplan 配置不对(最常见)

查看配置:

cat /etc/netplan/*.yaml

✅ DHCP 正确示例:

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

❌ 常见错误:

  • dhcp4: no
  • 写了静态 IP 但网关/DNS 错
  • YAML 缩进错误(必须用空格)

改完执行:

sudo netplan apply

3️⃣ 网卡没 up

ip link

如果显示 DOWN:

sudo ip link set eth0 up

4️⃣ DHCP 客户端没运行

Ubuntu 用 systemd-networkd 或 NetworkManager

手动请求 IP:

sudo dhclient eth0

或

sudo systemctl restart systemd-networkd

5️⃣ 防火墙 / 网络设备问题

  • 交换机端口未放行 DHCP
  • 路由器 DHCP 地址池满
  • 防火墙阻断 UDP 67/68

测试:

sudo tcpdump -i eth0 port 67 or port 68

没看到 DHCP 请求/响应 → 网络侧问题


6️⃣ 虚拟机特殊问题

  • 桥接模式 ≠ NAT
  • VMware / VirtualBox 网卡未启用
  • 宿主防火墙拦截

7️⃣ 老版本 Ubuntu(<18.04)

用 /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

然后:

sudo /etc/init.d/networking restart

三、快速排错命令汇总

ip addr
ip route
cat /etc/netplan/*.yaml
sudo netplan apply
sudo dhclient -v eth0
journalctl -u systemd-networkd

如果你方便,可以贴一下:

  • Ubuntu 版本
  • ip addr 输出
  • /etc/netplan/*.yaml 内容

我可以帮你精确判断是哪一步出问题。

0 踩