- Linux上的dhcp客户端是否写入任何日志?
- 如果没有,可以启用日志吗?
- 如果写日志,在哪里可以找到它们?
- 从DHCP服务器获取IP和名称服务器时,dhcp客户端的典型日志的外观如何?
- 在哪里可以找到DHCP客户端的源代码?
如果Linux之间存在相关差异:我对Debian 8.1(默认的最小安装amd64)感兴趣。
如果Linux之间存在相关差异:我对Debian 8.1(默认的最小安装amd64)感兴趣。
Answers:
dhclient
在大多数Linux发行版中,通常都会调用ISC的DHCP客户端。来自man dhclient
:
客户端通常在其启动顺序中不输出任何输出。通过提供-v命令行参数,可以发出显示启动序列事件的详细消息,直到获取地址为止。在这两种情况下,客户端都使用syslog(3)工具记录消息。
有两种可能的方法来读取系统日志。在大多数使用systemd的系统上,必须使用journalctl
,而cat /var/log/syslog
对于仍采用传统init系统的系统有效。
因此,如果您的系统使用systemd的日志记录工具,则可以journalctl | grep -Ei 'dhcp'
用来获取DHCP客户端日志。否则,输入cat /var/log/syslog | grep -Ei 'dhcp'
。
这是我的DHCP客户端日志通常的样子:
Jul 20 14:17:39 trueclient1 NetworkManager[2622]: <info> (wlan1): canceled DHCP transaction, DHCP client pid 3325
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> Activation (wlan1) Beginning DHCPv4 transaction (timeout in 45 seconds)
Jul 20 14:17:42 trueclient1 dhclient: Internet Systems Consortium DHCP Client 4.2.2
Jul 20 14:17:42 trueclient1 dhclient: For info, please visit https://www.isc.org/software/dhcp/
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed nbi -> preinit
Jul 20 14:17:42 trueclient1 dhclient: DHCPREQUEST on wlan1 to 255.255.255.255 port 67
Jul 20 14:17:42 trueclient1 dhclient: DHCPACK from 10.8.8.1
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed preinit -> reboot
在许多Linux平台上调试dhclient的一种有技巧(但有效)的方法是在/ sbin / dhclient-script中启用bash跟踪。
dhclient在我检查过的大多数OS变体(RedHat,Debian等)上运行该脚本。
只需-x
在该脚本中添加到shebang(第一行),就可以跟踪到控制台的每一行,例如:
#!/bin/bash -x
然后您可以运行,例如
dhclient -r #release lease
dhclient #re-acquire lease
而且您应该看到很多输出,不仅从dhclient-script,而且从.d
/ etc / dhcp *中所有包含的脚本。
跟踪输出应使您能够了解正在发生的事情以及代码正在做出哪些决定(查看输出时请参考脚本本身)。
通常,您可以推断出从此输出接收到的脚本的输入(例如,参数,包括IP,GATEWAY等),但是如果没有,则可以在退出之前将以下内容临时添加到脚本中:
env | logger -t dhclient-debugging
然后在运行dhclient之后检查您的日志(/ var / log / messages或/ var / log / syslog)
请在线找到答案。
Linux上的dhcp客户端是否写入任何日志?
是的,它确实。
如果没有,可以启用日志吗?
1. Edit dhcpd.conf and add this line
log-facility local7;
2. Edit syslog.conf and append
local7.* /var/log/dhcpd.log
如果写日志,在哪里可以找到它们?
/var/log/dhcpd.log
银河dhcpd:通过eth0从00:0d:62:d7:a0:12的DHCPDISCOVER
银河dhcpd:192.168.1.5上的DHCPOFFER到eth0的
00:0d:62:d7:a0:12通过eth0
银河dhcpd:192.168.1.5的DHCPREQUEST(192.168 .1.1)从00:0d:62:d7:a0:12通过eth0
银河dhcpd:192.168.1.5上的DHCPACK 通过eth0
到00:0d:62:d7:a0:12