检查我的 DHCP 租约?

mad*_*eon 18 networking dhcp dhclient

有没有办法显示我当前的(客户端)DHCP 租约?

或者甚至更好 - 检索所有发送的选项/信息DHCPACK?

use*_*469 10

我不知道在客户端上查询此信息的方法。如果您在服务器上,您可以在/var/lib/dhcp/dhclient.leases. 从客户那里我知道的唯一方法是:

sudo grep dhclient /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

这应该给你类似的东西:

May 20 18:34:38 [machine_name] dhclient: DHCPREQUEST on eth0 to [DHCP_SERVER_IP] port 67
May 20 18:34:38 [machine_name] dhclient: DHCPACK from [DHCP_SERVER_IP]
May 20 18:34:38 [machine_name] dhclient: bound to [client_dhcp_ip] -- renewal in 1517 seconds.
Run Code Online (Sandbox Code Playgroud)


jna*_*nas 10

使用 NetworkManager 来nmcli查询活动连接的 DHCP 状态(假设有一个)

nmcli -f ipv4.method con show "`nmcli -t -f NAME connection `"
Run Code Online (Sandbox Code Playgroud)

用于完整的 DHCP 信息使用-f DHCP4。根据需要调整 ipv6。

  • 这将打印当前活动连接的 DHCP 信息:`nmcli -f DHCP4 con show "$(nmcli -g NAME con show --active)"` (5认同)

Jer*_*jek 7

此答案还有另一个方面需要考虑,以显示您的 DHCP 租用时间和报价中的其他 DHCP 信息。如果使用 Linux systemd-networkd,上述选项都不起作用,因为它们与网络管理器相关(至少是 Linux 解决方案)

有一个类似的问题,其答案解释了这一点: How do I check DHCP Lease Time in systemd-networkd?

引用那个答案:

取决于操作系统;启用调试并不总是必要的。

systemd-networkd 应将租赁信息存储在 /run/systemd/netif/leases/

IE

cat /run/systemd/netif/leases/2
Run Code Online (Sandbox Code Playgroud)


小智 6

这取决于你的发行版,它应位于/var/lib/dhcp下dhclient.{interface}.leases or /var/lib/dhclient.leases。您还可以通过在启动 dhclient 时传递 -lf 来指定 dhclient.leases 文件的路径。


Bil*_*hor 5

我dhcpdump在测试DHCP的时候用过。它将转储 DHCP 事务的双方。如果您让它继续运行,它将记录通过的选项。

您可能需要重新启动 DHCP 客户端以查看初始协商。续订请求应包含所有运行配置。