centos dhcp如何排查故障问题
导读:CentOS DHCP 故障排查步骤 一 快速定位思路 明确角色:是排查 DHCP 客户端(拿不到 IP)还是 DHCP 服务器(不分配 IP)。 分层检查:物理/虚拟连线 → 接口与配置 → 服务与日志 → 防火墙/网络策略 → 地址池...
CentOS DHCP 故障排查步骤
一 快速定位思路
- 明确角色:是排查 DHCP 客户端(拿不到 IP)还是 DHCP 服务器(不分配 IP)。
- 分层检查:物理/虚拟连线 → 接口与配置 → 服务与日志 → 防火墙/网络策略 → 地址池与冲突。
- 先易后难:先看接口是否 UP、是否配置为 BOOTPROTO=dhcp,再用 dhclient 触发一次完整握手,最后看 日志/抓包 定位握手是否到达服务器。
二 客户端排查
- 查看接口与链路状态
- 执行:
ip -br link、ip addr show < iface>(如 ens33)。若状态为 DOWN,执行:ip link set < iface> up。
- 执行:
- 核对网卡配置文件
- 文件路径:
/etc/sysconfig/network-scripts/ifcfg-< iface>(或对应网络管理方式下的等效配置)。 - 关键项:
BOOTPROTO=dhcp、ONBOOT=yes。修改后重启网络或 NetworkManager:systemctl restart NetworkManager或systemctl restart network。
- 文件路径:
- 手动触发 DHCP 并观察握手
- 释放与获取:
dhclient -r < iface>;dhclient -4 -v < iface>(加 -v 可见 Discover/Offer/Request/ACK 过程)。 - 若长时间卡在 DHCPDISCOVER 无回应,通常是网络不通、无 DHCP 服务器、或防火墙阻断。
- 释放与获取:
- 检查租约与日志
- 查看租约:
cat /var/lib/dhcp/dhclient.leases,确认是否有有效租约与服务器 IP。 - 查看系统日志:
journalctl -xe | grep -i dhcp或tail -f /var/log/messages | grep -i dhcp。
- 查看租约:
- 虚拟机场景专项
- 确认虚拟网卡已“连接”,网络模式为 NAT/桥接 且已重启生效;若仍无 IPv4,回到上面步骤再验证一次。
三 服务器排查
- 安装与配置
- 安装:
yum install -y dhcp(或dnf install dhcp)。 - 主配置:
/etc/dhcp/dhcpd.conf,至少包含子网与地址池,例如:subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; }
- 安装:
- 指定监听接口
- 编辑:
/etc/sysconfig/dhcpd,设置INTERFACES="eth0"(示例),保存后重启服务。
- 编辑:
- 启动与开机自启
systemctl start dhcpd、systemctl enable dhcpd。
- 服务状态与端口
- 状态:
systemctl status dhcpd(失败时用journalctl -xe看语法/权限/接口绑定错误)。 - 端口:确认 UDP 67 监听,例如
ss -lunpt | grep :67或netstat -anpu | grep :67。
- 状态:
- 日志与租约
- 服务器日志:
tail -f /var/log/messages | grep -i dhcpd。 - 租约文件:
cat /var/lib/dhcp/dhcpd.leases,核对是否分配出地址、租约时间是否合理。
- 服务器日志:
- 防火墙与网络策略
- 放行 DHCP:
firewall-cmd --permanent --add-service=dhcp & & firewall-cmd --reload(或临时关闭防火墙验证)。
- 放行 DHCP:
四 常见现象与处理对照表
| 现象 | 快速检查 | 处理建议 |
|---|---|---|
| 客户端一直卡在 DHCPDISCOVER | dhclient -4 -v <
iface>
无 Offer;ip link 是否 DOWN;虚拟机网络模式 |
确认接口 UP;改为 NAT/桥接 并重启;检查上游是否有 DHCP 服务器 |
| 获取到 IP 过一段时间又丢失 | ip addr 周期性掉 IP;journalctl 无持续错误 |
排查是否有其他 DHCP 服务器冲突;检查租约时间与地址池;核对 NetworkManager/网络脚本反复覆盖 |
| 服务器启动失败 | systemctl status dhcpd 报错;journalctl -xe |
检查 /etc/dhcp/dhcpd.conf 语法与作用域网段;核对 /etc/sysconfig/dhcpd 的监听接口 |
| 端口 67 未监听 | `ss -lunpt | grep :67` 无输出 |
| 虚拟机拿不到 IPv4 | 仅 IPv6 链路本地;ifcfg-<
iface>
配置 |
确认 BOOTPROTO=dhcp、ONBOOT=yes;接口拉起;网络模式与连线正确 |
| 地址冲突或租约异常 | cat /var/lib/dhcp/dhcpd.leases 重复 IP;客户端频繁换 IP |
核对 range 与网关/DNS;清理异常租约;必要时为关键主机配置 host 静态映射 |
五 高效命令清单
- 客户端
ip -br link、ip addr show < iface>、ip routedhclient -r < iface>、dhclient -4 -v < iface>cat /var/lib/dhcp/dhclient.leasesjournalctl -xe | grep -i dhcp
- 服务器
systemctl status dhcpd、journalctl -xe -u dhcpdss -lunpt | grep :67或netstat -anpu | grep :67cat /var/lib/dhcp/dhcpd.leasesfirewall-cmd --list-services | grep dhcp或firewall-cmd --permanent --add-service=dhcp & & firewall-cmd --reload
- 抓包定位(两端都可)
tcpdump -i < iface> -nn port 67 or port 68 -vv(看到 Discover/Offer/Request/ACK 即可确认握手是否完成)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos dhcp如何排查故障问题
本文地址: https://pptw.com/jishu/772020.html
