在 Linux 中找出 DHCP 连接的 DNS 服务器

Iva*_*van 16 domain-name-system dhcp linux

我知道它们是在 中定义的/etc/resolv.conf,但如果它不存在呢?更具体地说,您如何找到 DHCP 返回的 DNS 服务器?

在 GNOME 中,您可以使用 NetworkManager 小程序查看任何连接的主 DNS,那么您将如何从命令行执行相同操作?

KPW*_*INC 23

通常 dhclient.leases 文件位于/var/lib/dhcp3/dhclient.leases,键入以下命令:

less /var/lib/dhcp3/dhclient.leases

或者

cat /var/lib/dhcp3/dhclient.leases

或者

您可以使用 grep 命令获取 DHCP 服务器地址,输入:

grep dhcp-server-identifier /var/lib/dhcp3/dhclient.leases

或者

dhclient eth0


小智 9

我最近遇到了这个问题,我的dhcpcd配置错误,因为没有设置 DNS 服务器。我发现我可以使用以下命令查询 DHCP 可用的名称服务器:

sudo dhcpcd -o domain_name_servers -T
Run Code Online (Sandbox Code Playgroud)

该命令会输出一堆网络连接信息。查找以 开头的行new_domain_name_servers

从这里我可以手动设置名称服务器。

  • 完美的。这应该是公认的答案,呵呵。 (2认同)

小智 7

另一种查询 DHCP 服务器的解决方案:

sudo nmap --script broadcast-dhcp-discover
Run Code Online (Sandbox Code Playgroud)

输出告诉您 DHCP 服务器提供的名称服务器:

Starting Nmap 7.60 ( https://nmap.org ) at 2019-12-12 23:50 UTC
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     IP Offered: 144.123.211.44
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 144.123.99.200
|     IP Address Lease Time: 5m00s
|     Subnet Mask: 255.255.0.0
|     Router: 144.123.99.200
|     Domain Name Server: 144.123.99.200
|_    Domain Name: localdomain
Run Code Online (Sandbox Code Playgroud)