温馨提示×

ubuntu dhcp怎么排查

小樊
35
2026-09-19 06:11:41
栏目: 智能运维

在 Ubuntu 上排查 DHCP 问题,可以按从底层到上层逐步检查。下面是一套常用排查流程(适用于 Ubuntu 18.04+ / 20.04 / 22.04,使用 Netplan + systemd-networkd / NetworkManager)。


一、确认网络接口状态

ip addr
ip link

重点看:

  • 网卡是否存在(如 eth0ens33
  • 状态是否为 UP
  • 是否有 IP 地址

如果接口是 DOWN

sudo ip link set eth0 up

二、确认 DHCP 客户端是否在运行

Ubuntu 通常使用:

  • NetworkManager(桌面版)
  • systemd-networkd(服务器版)

NetworkManager

systemctl status NetworkManager

systemd-networkd

systemctl status systemd-networkd

三、手动请求 DHCP(最关键)

使用 dhclient(通用)

sudo dhclient -v eth0

观察输出:

  • 是否发送 DHCPDISCOVER
  • 是否收到 DHCPOFFER
  • 是否获得 IP

如果使用 NetworkManager

sudo nmcli device reapply eth0
# 或
sudo nmcli connection down "连接名"
sudo nmcli connection up "连接名"

四、检查 Netplan 配置(Ubuntu 18.04+)

cat /etc/netplan/*.yaml

示例(DHCP 正确配置):

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

应用配置:

sudo netplan apply

⚠ 常见错误:

  • YAML 缩进错误
  • dhcp4: no
  • 被静态 IP 覆盖

五、查看 DHCP 日志

journalctl -u NetworkManager
journalctl -u systemd-networkd
journalctl | grep -i dhcp

看是否有:

  • DHCPv4 request timed out
  • No DHCP offers received

六、确认 DHCP 服务器是否正常

从同网段其他机器测试

sudo dhclient eth0

抓包(非常有效)

sudo tcpdump -i eth0 port 67 or port 68

应看到:

  • DHCP Discover
  • DHCP Offer

如果只有 Discover 没有 Offer → DHCP 服务器问题 / 网络隔离


七、检查防火墙 / 网络环境

sudo ufw status

确认未阻断:

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

如果是虚拟机:

  • 桥接 / NAT 设置是否正确
  • 宿主机 DHCP 是否开启

八、常见故障总结

现象 可能原因
无 IP DHCP 服务器未响应
一直 timeout 防火墙 / VLAN / 网线
有 IP 但上不了网 网关 / DNS 错误
重启失效 Netplan 配置错误
虚拟机异常 网卡模式错误

如果你愿意,可以贴出:

  • ip addr
  • /etc/netplan/*.yaml
  • journalctl | grep dhcp

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

0