温馨提示×

linux dhcp怎么排查错

小樊
45
2026-09-18 21:47:03
栏目: 智能运维

在 Linux 下排查 DHCP 相关问题(拿不到 IP、IP 冲突、DHCP 服务器不响应等),可以按下面思路一步步来。


一、确认基础网络状态

1. 看网卡是否 up

ip link
ip addr
  • 网卡应是 UP
  • 没有 IP 或只有 169.254.x.x(APIPA)说明 DHCP 失败

2. 手动触发 DHCP(调试最有用)

# 不同发行版
dhclient -v eth0
# 或
dhcpcd -d eth0
# 或
nmcli device reapply eth0

观察输出是否有:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPREQUEST
  • DHCPACK

二、检查 DHCP 客户端服务

systemd 系统

systemctl status dhclient
# 或
systemctl status NetworkManager

查看日志:

journalctl -u NetworkManager -f
journalctl -u dhclient -f

三、抓包看 DHCP 交互(非常关键)

tcpdump -i eth0 port 67 or port 68 -nn

正常应有:

  • 客户端发 DHCPDISCOVER
  • 服务器回 DHCPOFFER

如果只有 DISCOVER 没有 OFFER

  • 网络不通
  • 交换机/VLAN 问题
  • DHCP 服务器没开

四、服务器端排查(如果你是 DHCP Server)

1. 服务是否运行

systemctl status isc-dhcp-server
# 或 dnsmasq

2. 配置文件

常见文件:

  • /etc/dhcp/dhcpd.conf
  • /etc/dnsmasq.conf

检查:

  • subnet 是否正确
  • range 是否可用
  • 网卡监听是否正确

3. 日志

journalctl -u isc-dhcp-server
/var/log/syslog
/var/log/messages

五、常见错误 & 原因

现象 可能原因
一直 DHCPDISCOVER 网络/VLAN/防火墙
拿到 169.254.x.x DHCP 无响应
IP 冲突 静态 IP 和 DHCP 冲突
只能一次拿到 IP lease 未释放
VM 拿不到 IP 桥接 / NAT 设置错误

六、快速自查清单

✅ 网卡 UP
✅ DHCP 服务运行
✅ 防火墙未拦 67/68
✅ 同网段 / 同 VLAN
✅ 抓包确认交互


如果你愿意,可以告诉我:

  • 你是 客户端还是服务器
  • 用的什么系统(Ubuntu / CentOS / 嵌入式)
  • 具体现象(报错 / 日志)

我可以给你针对性命令

0