是否可以显示给我 ip 和其他 DHCP 选项的服务器的 ip?
基本上我想了解我所连接的局域网的 dhcp 服务器是哪一个。
提前致谢
答案1
您需要找到 DHCP 客户端的租用文件。如果您使用 NetworkManager,它可能位于目录中/var/lib/NetworkManager/
,或者位于 DHCP 客户端特定的目录中。例如,如果您用作dhclient
DHCP 客户端,您可能会发现它为/var/lib/dhcp/dhclient.<network interface name>.leases
.
例如,在我的无头 Debian 10 系统上,没有 NetworkManager 且使用dhclient
,网络接口为enp1s0f1
,租赁文件为/var/lib/dhcp/dhclient.enp1s0f1.leases
。它包含许多租赁定义,如下所示:
lease {
interface "enp1s0f1";
fixed-address 192.0.2.4;
option subnet-mask 255.255.255.0;
option routers 192.0.2.1;
option dhcp-lease-time 18000;
option dhcp-message-type 5;
option domain-name-servers 192.0.2.53,192.0.2.54;
option dhcp-server-identifier 198.51.100.67;
option domain-name "isp.example.com";
renew 4 2021/08/05 07:42:46;
rebind 4 2021/08/05 09:52:18;
expire 4 2021/08/05 10:29:48;
}
此处,该option dhcp-server-identifier
行将标识为您提供 IP 地址和租约中描述的其他配置信息的 DHCP 服务器。请注意,DHCP 服务器可能位于完全不同的网段;在这种情况下,本地网络上的某个地方将有一个 DHCP 帮助程序,它将侦听 DHCP 请求广播,将它们转发到实际的 DHCP 服务器,并在需要时(即当客户端执行此操作时)将任何返回的答案广播回本地网段。还没有自己的 IP 地址)。
我的笔记本电脑使用 NetworkManager,因此其租约文件可以在 找到/var/lib/NetworkManager/dhclient-<long-uuid-string>-<interface name>.lease
,但租约文件的内容是相似的。但使用 NetworkManager,您还可以使用诸如nmcli c
列出 NetworkManager 连接名称之类的命令,然后nmcli c show <connection name>
获取更多信息。在使用 DHCP 的活动连接上,此信息应包含如下行:
DHCP4.OPTION[n]: dhcp_server_identifier = 192.51.100.67
(n
其中有一些数字)
同样,它将dhcp_server_identifier
告诉您为该连接提供 IP 地址的 DHCP 服务器的 IP 地址。
其他 DHCP 客户端可能具有不同的文件格式,甚至存储租约信息的方式也不同。
答案2
您可以使用以下命令来了解发布IP地址的dhcp服务器。
-> % ip r
default via 192.168.0.1 dev eno1 proto dhcp src 192.168.0.100 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.100
192.168.0.1 dev eno1 proto dhcp scope link src 192.168.0.100 metric 100
a
-> % route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
192.168.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 eno1
上面的192.168.0.1就是网关。 192.168.0.100是当前机器的ip地址。