如何查看DHCP客户端的功能?


14
  • Linux上的dhcp客户端是否写入任何日志?
  • 如果没有,可以启用日志吗?
  • 如果写日志,在哪里可以找到它们?
  • 从DHCP服务器获取IP和名称服务器时,dhcp客户端的典型日志的外观如何?
  • 在哪里可以找到DHCP客户端的源代码?

如果Linux之间存在相关差异:我对Debian 8.1(默认的最小安装amd64)感兴趣。


1
您需要比“ Linux上的dhcp客户端”更具体。Linux有很多不同的dhcp客户端,它们都记录不同的方式。尽管我不记得它是什么,但Debian 8.1可能有一个默认值。
qasdfdsaq

Internet系统联盟DHCP客户端4.3.1版权所有2004-2014 Internet系统联盟。版权所有。有关信息,请访问isc.org/software/dhcp
Gustave

Answers:


7

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

2
在Debian 8.1上,journalctl可以工作,在ubuntu-14.04.2-server上,条目位于/ var / log / syslog中。谢谢。但是:只有很少的条目,例如仅记录IP地址,而没有记录DNS服务器。是否可以配置更多详细的输出?
古斯塔夫2015年

3

在许多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)


-3

请在线找到答案。

  • 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


  • 从DHCP服务器获取IP和名称服务器时,dhcp客户端的典型日志的外观如何?


银河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


2
OP正在谈论DHCP 客户端。DHCPD是DHCP服务器守护程序。
拉尔森德(Larssend)2015年

我的系统上似乎没有名为dhcpd.conf的文件。有一个文件/etc/dhcp/dhclient.conf。没有文件syslog.conf,但是文件/etc/rsyslog.conf。我对这些文件进行了配置更改,重新启动了rsyslog,关闭了eth0,然后再次将其打开。但是没有日志文件出现。我在控制台上收到一些DHCP消息。即使重新启动计算机后,我也没有任何日志消息。
古斯塔夫2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.