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

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

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

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

答案1

通常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

答案2

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

sudo dhcpcd -o domain_name_servers -T

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

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

答案3

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

sudo nmap --script broadcast-dhcp-discover

输出告诉您 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

答案4

那么,为什么不直接挖掘它呢?

marcus@marcus ~ $ dig google.de

; <<>> DiG 9.4.3-P3 <<>> google.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27579
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 6, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.         IN  A

;; ANSWER SECTION:
google.de.      1785    IN  A   209.85.229.104
google.de.      1785    IN  A   216.239.59.104
google.de.      1785    IN  A   74.125.77.104

;; AUTHORITY SECTION:
de.         23431   IN  NS  L.DE.NET.
de.         23431   IN  NS  Z.NIC.de.
de.         23431   IN  NS  F.NIC.de.
de.         23431   IN  NS  C.DE.NET.
de.         23431   IN  NS  S.DE.NET.
de.         23431   IN  NS  A.NIC.de.

;; Query time: 1 msec
;; SERVER: 192.168.1.15#53(192.168.1.15)
;; WHEN: Thu Sep 17 19:33:39 2009
;; MSG SIZE  rcvd: 181

看最后几行:;; SERVER: 192.168.1.15#53(192.168.1.15)

相关内容