温馨提示×

Debian dhcp故障排查有哪些方法

小樊
37
2025-11-29 02:31:42
栏目: 智能运维

Debian DHCP故障排查方法

一 服务与配置快速核查

  • 确认服务状态与自启:使用命令查看 isc-dhcp-server 是否运行,必要时启动并设置开机自启。
    命令示例:sudo systemctl status isc-dhcp-server;sudo systemctl start isc-dhcp-server;sudo systemctl enable isc-dhcp-server。
  • 语法与配置校验:检查 /etc/dhcp/dhcpd.conf 语法并修正错误。
    命令示例:sudo dhcpd -t。
  • 监听接口绑定:在 /etc/default/isc-dhcp-server 中明确监听的 INTERFACESv4(如 eth0),确保与服务器实际接口一致。
  • 地址池与基础参数:在子网声明中核对 rangeoption routersoption subnet-maskoption domain-name-servers 等关键项是否合理且未冲突。
  • 重启使配置生效:修改后重启服务。
    命令示例:sudo systemctl restart isc-dhcp-server。

二 网络连通性与防火墙

  • 物理与二层连通:确认服务器与交换机/路由器的网线、VLAN、端口状态正常;必要时在链路层抓包或替换网线/端口排查。
  • 本机网络配置:核对服务器网卡 IP/掩码/网关 是否与 dhcpd.conf 中的子网匹配。
    命令示例:ip addr show。
  • 端口与协议:DHCP 使用 UDP 67/68(服务器 67,客户端 68)。排查是否被占用或阻断。
    命令示例:sudo netstat -tuln | grep -E ‘67|68’。
  • 防火墙放行:如使用 ufw,放行 DHCP 端口。
    命令示例:sudo ufw allow 67/udp;sudo ufw allow 68/udp。
  • 跨网段与中继:跨网段需配置 DHCP 中继(指向正确的服务器地址与接口),并确保中继与服务器间路由可达。

三 日志与租约定位

  • 服务日志:优先查看 systemd 日志与系统日志中与 DHCP 相关的条目。
    命令示例:sudo journalctl -u isc-dhcp-server -f;sudo tail -f /var/log/syslog | grep -i dhcp;必要时查看 /var/log/messages
  • 租约数据库:核对已分配与历史租约,排查地址耗尽、重复分配或异常释放。
    命令示例:cat /var/lib/dhcp/dhcpd.leases。
  • 客户端侧验证:在客户端以 DHCP 自动获取 模式测试,观察是否拿到地址。
    命令示例(Linux):ip address show;必要时使用 dhclient -v <接口> 发起请求并查看详细交互。
  • 服务器可达性探测:在服务器侧使用 dhcping 验证对客户端网段的 DHCP 响应能力(需安装)。
    命令示例:sudo apt install dhcping;sudo dhcping -c 4 <服务器IP>。
  • 租约列表工具:如安装了 dhcp-lease-list,可用其快速查看当前租约概况。

四 常见症状与处理对照表

症状 快速检查 处理建议
服务无法启动 systemctl status;dhcpd -t;/var/log/syslog 修正语法错误;核对接口与子网;确保配置与接口IP一致
客户端拿不到地址 客户端 ip a;服务器 tail -f /var/log/syslog;租约文件 检查地址池是否耗尽;核对网关/DNS;确认防火墙放行 UDP 67/68
仅跨网段失败 路由与VLAN;中继配置 配置并验证 DHCP 中继 指向正确服务器与接口
启动报错“地址已被占用” netstat -tuln 释放占用 67/68 的进程或更换服务端口(不建议)
偶发租约冲突 /var/lib/dhcp/dhcpd.leases 分析租约时间与MAC;排查重复上线或静态地址冲突
日志无明显错误但无响应 dhcping;抓包 使用 dhcping 验证;在服务器/客户端抓包确认 DHCP Discover/Offer/Request/ACK 流程是否完整

0