上一篇 下一篇 分享链接 返回 返回顶部

如何在Linux命令行上查找DHCP服务器IP地址

发布人:Minchunlin 发布时间:2021-03-06 10:55 阅读量:4469

我最近收到了一封来自读者的电子邮件,询问“如何找到我的DHCP服务器的IP地址”?这使我研究了从Linux命令行中找到DHCP服务器IP地址的快速解决方法。

什么是DHCP服务器?

DHCP服务器是网络上的系统,用于管理网络上客户端系统的动态配置。DHCP(动态主机配置协议)是几乎所有IP网络上使用的标准网络协议。它允许在连接到网络的系统上动态配置网络参数。在使用DHCP之前,管理员必须单独配置每个系统。有关DHCP的更多信息,请参见下面的“资源和链接”部分。

如何找到您的DHCP服务器IP地址

没有简单的命令来显示网络上DHCP服务器的IP地址。但是,如果您知道要看的地方,则有记录的地方。您可以通过以下几种方式在网络上查找DHCP服务器的IP地址。

注意:您将需要root或sudo权限才能运行所有这些命令。

使用grep查找DHCP服务器IP以查找日志条目

我想到的第一种方法是检查DHCPOFFER的日志。DHCPOFFER数据包将来自DHCP服务器,应将其写入日志。在这里,我们将grep与某些选项结合使用(-I忽略二进制文件,-R进行递归)以查找包含我们的DHCP服务器IP地址的日志文件条目。

CentOS 7示例:

sudo grep -IR "DHCPOFFER" /var/log/*

输出: /var/log/anaconda/syslog:17:15:00,299 INFO dhclient:DHCPOFFER from 10.0.0.1

Fedora 30示例:

sudo grep -IR "DHCPOFFER" /var/log/*

输出: /var/log/anaconda/journal.log:Apr 03 20:02:33 localhost-live dhclient[2464]: DHCPOFFER from 10.0.0.1

Ubuntu 19.04示例:

sudo grep -IR "DHCPOFFER" /var/log/*

输出: /var/log/syslog:Oct 12 10:15:55 ubuntu1904 dhclient[864]: DHCPOFFER of 192.168.122.204 from 192.168.122.1 

注意:注意到每个发行版都将其存储在不同的日志文件中吗?这就是为什么我们要递归搜索整个/var/log/目录。

使用Journalctl和grep

你可以使用 journalctl 做同样的事情。

sudo journalctl | grep -m1 DHCPACK

输出:Apr 20 21:46:28 putor dhclient[1506]: DHCPACK from 10.0.0.1 (xid=0x65f93c03)

使用lease文件查找DHCP服务器IP地址

dhclient 工具将您的租赁信息存储在租赁文件中。这些lease文件会根据不同的发行版、软件负载和不同的版本保存在不同的地方。

常见的位置有

/var/lib/dhcp/dhclient.[interface].leases

/var/lib/dhcp3/dhclient.leases。

注意:将[interface]替换为你的网络接口名称(例如eth0、eno1等)。

现在用grep找到DHCP服务器。

sudo grep -m1 "dhcp-server" /var/lib/dhcp/dhclient.eno1.leases

如果你使用的是NetworkManager,你可以通过查看正在运行的进程(ps aux)来找到租赁文件的位置。

ps aux | grep NetworkManager

现在你知道了leases文件的位置,你可以从该文件中获取DHCP服务器的IP地址。

sudo grep -m1 "dhcp-server" /var/lib/NetworkManager/dhclient-dd040512-708c-3858-97c6-d79e66458e36-eno1.lease

我们可以把这两种操作串起来,以简化过程。

sudo cat $(ps aux | grep -o '[/]var/lib/NetworkManager/\S*.lease') | grep -m1 dhcp-server-identifier

使用dhclient工具查找DHCP服务器IP

另一种方法是使用带有一些选项的dhclient工具。这也需要root或高级权限。这样做的缺点是dhclient会经历整个DHCP D.O.R.A.的过程,这也意味着你的DHCP服务器、网络和客户端系统需要正确配置。这也意味着你的DHCP服务器、网络和客户端系统需要正确配置。如果你要解决DHCP的问题,这对你的帮助不大。

sudo dhclient -d -nw eno1

这几个不同的方法来找到你的DHCP服务器的IP地址,希望对您有所帮助。

目录结构
全文