#1 楼
即使您不使用Nagios监控服务器,也可以grep check_dhcp二进制文件或从源代码进行编译,然后使用该检查来测试DHCP服务器。例如./check_dhcp -v -s <dhcp_server_address> -r <expected_ip_address> -m <mac_address_touse>
#2 楼
根据此答案,假设您已安装nmap(sudo apt install nmap
):如果您有多个网络接口,请添加-e $interface
选项。sudo nmap --script broadcast-dhcp-discover
添加
nmap --script broadcast-dhcp-discover -e eth0
选件。 (例如:q4312079q)样本输出:
Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-27 17:40 CEST
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.81.94
| DHCP Message Type: DHCPOFFER
| Server Identifier: 192.168.81.2
| IP Address Lease Time: 5m00s
| Subnet Mask: 255.255.255.0
| Router: 192.168.81.2
| Domain Name Server: 192.168.81.2
| Domain Name: example.lan
| NTP Servers: 192.168.81.10, 192.168.81.2
| NetBIOS Name Server: 192.168.81.10
|_ NetBIOS Node Type: 8
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.66 seconds
或者此输出在另一个网络上,使用nmap v。6: />
Starting Nmap 6.00 ( http://nmap.org ) at 2017-09-27 17:42 CEST
Pre-scan script results:
| broadcast-dhcp-discover:
| IP Offered: 192.168.4.101
| DHCP Message Type: DHCPOFFER
| Server Identifier: 192.168.4.1
| IP Address Lease Time: 7 days, 0:00:00
| Subnet Mask: 255.255.255.0
| Time Offset: 7200
| Router: 192.168.4.1
| Domain Name Server: 208.91.112.53, 208.91.112.52
| Renewal Time Value: 3 days, 12:00:00
|_ Rebinding Time Value: 6 days, 3:00:00
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.15 seconds
#3 楼
或者您可以在测试模式下尝试dhcpcd
:dhcpcd -T eth0
评论
使用dhcpcd -T eth0 -t 2 2秒后超时
–马丁·沃尔扎克(Maarten Wolzak)
17年9月22日在11:14
您能否扩展一下该命令为什么要检测网络上的DHCP服务器,以及当检测到某人时我们期望什么样的输出?
–Sopalajo de Arrierez
20年5月29日19:30
dhcp服务器需要从主机上看到网络上请求dhcp配置消息的数据包。因此,我们需要模拟dhcp请求,此工具将执行该操作并打印响应,该响应将是ip地址,netwmask,默认路由器,以及可选的dns解析器,ntp服务器等。
– Paul M
20年6月22日在14:28
并非所有发行版似乎都具有dhcpcd程序,因此您必须在测试模式下尝试dhclient程序,如本页其他地方所述。
– Paul M
20 Dec 11'在14:03
#4 楼
dhcpdump
非常适合在网络上嗅探和显示DHCP数据包。例如
# dhcpdump -i eth0
---------------------------------------------------------------------------
TIME: 2015-11-27 11:41:37.379
IP: 0.0.0.0 (0:11:b9:5:0:b8) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: abce9327
SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:11:b9:05:00:b8:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 57 ( 2) Maximum DHCP message size 576
OPTION: 55 ( 4) Parameter Request List 1 (Subnet mask)
3 (Routers)
28 (Broadcast address)
6 (DNS server)
---------------------------------------------------------------------------
您可以将其与其他工具结合使用DHCP请求,或仅使用它来观看PC /设备查询DHCP。
评论
通过brew install dhcpdump也可用于macOS。
–kqw
16-10-5在17:46
这似乎仅在网络上存在实际的dhcp通信时才起作用。
– mivk
17年9月27日在15:51
@mivk你是认真的吗?
–肯·夏普
18-2-22在13:14
@KenSharp为什么?是。仅当网络上的客户端请求dhcp地址时,dhcpdump才会显示某些内容。如果您不想等待,也不想自己发送dhcp请求,但是只看到哪台计算机在有请求时会回答什么,那么这不是解决方案。
– mivk
18-2-26在15:49
@mivk为什么?因为发帖人就是这么说的。
–邓肯X辛普森
19年7月12日在19:20
#5 楼
为什么不仅仅发出DHCP请求?dhclient
对于详细输出,请使用:
dhclient -v
评论
可能是因为这会使您的系统使用DHCP服务器分配的IP,例如,试图找出他的网络中是否存在流氓DHCP服务器。
– ThiefMaster
2012年6月9日18:54
-n选项在这里有帮助吗?
–akostadinov
13年1月24日在22:20
选项-n在Ubuntu 14 LTS上的ISC DHCP客户端v4.2.4上似乎已损坏?
–乔斯普·罗丹(Josip Rodin)
16年4月15日在14:33
我不认为-n会按照您的想法做。
–詹森
17年11月22日在23:19
describeshell.com/explain?cmd=dhclient+-n:“请勿配置任何接口。与-w标志结合使用时,这很有用。”
–mwfearnley
19年1月28日在12:22
#6 楼
我前一段时间写了一个DHCP测试客户端程序,可在Windows和POSIX上运行:https://github.com/CyberShadow/dhcptest
评论
用D编写...似乎可以(使用ldc2)使用ldc2获得静态二进制文件-link-defaultlib-shared = false -static -L = -lphobos2-ldc -L = -lz dhcptest.d
– Gert van den Berg
18-10-22在7:27
#7 楼
有一个叫做dhcping的程序(只有一个p)#8 楼
如果您使用nagios,则可以使用check_dhcp对其进行监视
#9 楼
在Debian-Ubuntu系统上:dhcpd -f
给出良好的反馈并测试配置。在RH系统上,请尝试:
/etc/rc.d/init.d/dhcpd configtest
评论
该测试在dhcp服务器上运行以检查其配置,它不会告诉您网络上的设备是否实际上会看到正在运行的服务器
– Paul M
20 May 30 '21:44
评论
找不到我的DHCP服务器。-我的PC一定有问题...以太网有效,但事实并非如此。
–詹森
17年11月22日在23:27
请注意,此脚本使用固定的MAC地址(DE:AD:CO:DE:CA:FE),因此,如果您的DHCP服务器配置了白名单,则该脚本将不起作用。
–鲍勃
19-10-8的5:27
@Bob:谢谢。很高兴知道
– mivk
19-10-11在9:32
@Bob已添加一个选项。 --script-args mac = XX:XX:XX:XX:XX:XX。它尚未发布。
–亚历山大·杜宾斯基(Aleksandr Dubinsky)
20年8月14日在8:25