Debian系统中,ISC DHCP服务器(isc-dhcp-server)的日志记录主要支持两种方式:系统日志(syslog)和专用日志文件。
/var/log/syslog或/var/log/messages),便于统一管理;/var/log/dhcpd.log),便于集中分析和归档。若选择系统日志记录,需修改DHCP配置文件(/etc/dhcp/dhcpd.conf),添加以下参数:
option logging "syslog";          # 启用syslog记录
option log-facility local7;       # 指定syslog设施为local7(可自定义,如local0-local7)
修改后重启服务使配置生效:
sudo systemctl restart isc-dhcp-server
此时,DHCP日志将输出到系统日志中(默认路径为/var/log/syslog)。
若需要单独记录DHCP日志,需完成以下步骤:
/etc/dhcp/dhcpd.conf,添加日志通道配置:logging {
  channel dhcp_log {
    file "/var/log/dhcpd.log" versions 3 size 5m;  # 日志文件路径、保留版本数及大小
    severity dynamic;                             # 日志级别(dynamic为动态调整)
    print-time yes;                               # 打印时间戳
    print-category yes;                           # 打印日志类别
  };
  category dhcp { dhcp_log; };                    # 将DHCP日志定向到指定通道
};
sudo touch /var/log/dhcpd.log
sudo chown root:adm /var/log/dhcpd.log
sudo chmod 660 /var/log/dhcpd.log
sudo systemctl restart isc-dhcp-server
此时,DHCP日志将单独保存到/var/log/dhcpd.log。
DHCP日志的主要存储路径包括:
/var/log/syslog(Debian默认)或/var/log/messages(部分旧版本);/var/log/dhcpd.log(若配置了专用日志);/var/lib/dhcp/dhcpd.leases(记录客户端IP分配详情)。sudo tail -f /var/log/syslog | grep dhcpd
sudo cat /var/log/dhcpd.log
sudo cat /var/lib/dhcp/dhcpd.leases
sudo journalctl -u isc-dhcp-server -f  # 实时查看DHCP服务日志
sudo grep "lease" /var/log/syslog      # 查看IP分配记录
sudo grep "error" /var/log/dhcpd.log   # 查看错误信息
sudo systemctl status isc-dhcp-server
若服务未运行,启动服务:sudo systemctl start isc-dhcp-server
sudo dhcpd -t  # 测试配置文件语法是否正确
sudo grep "no address available" /var/log/syslog  # 检查IP地址池是否耗尽
sudo grep "failed to allocate" /var/log/dhcpd.log # 检查地址分配失败原因
sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo cat /var/lib/dhcp/dhcpd.leases | grep "duid"  # 检查是否有重复的客户端标识符(DUID)
sudo systemctl restart isc-dhcp-server
sudo journalctl -u isc-dhcp-server | grep "configuration error"
dhcpd -t命令测试配置文件,修复语法错误后重启服务。通过以上配置和分析方法,可以有效管理Debian DHCP服务器的日志,快速定位和解决网络问题,确保IP地址分配的稳定性和可靠性。