在Linux中findDNS服务器的DHCP连接

我知道它们是在/etc/resolv.conf定义的,但是如果它不在那里呢? 更具体地说,你如何findDHCP服务器返回的DNS服务器?

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

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

less /var/lib/dhcp3/dhclient.leases

要么

cat /var/lib/dhcp3/dhclient.leases

要么

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

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

要么

dhclient eth0

我在/var/lib/dhclient/dhclient-eth0.leasesfind了我的DHCP租约信息,以防万一有人在/var/lib/dhcp3/dhclient.leases找不到

我最近有这个问题,我的dhcpcdconfiguration错误,因为没有设置DNS服务器。 我发现我可以用下面的命令查询DHCP可以使用哪些域名服务器:

 sudo dhcpcd -o domain_name_servers -T 

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

从这里我能够手动设置名称服务器。

那么,为什么不简单地挖呢?

 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)

如果/etc/resolv.conf中没有任何内容,DNSparsing(即使用/etc/nsswitch.conf中定义的dnsparsing)将不起作用。 这是dig,host和libc例程用来做DNSparsing的东西。 如果此文件中没有指定任何内容,则DNSparsing将不起作用(尽pipe如果configuration了另一个主机parsing方法(如NIS(这不太可能)),则主机parsing可以通过其他方式工作。

这个命令显示你的networking上的DNS服务器

挖| grep SERVER:| awk -F#'{print $ 1}'| awk -F:'{print $ 2}'

172.17.0.1

阅读/etc/resolv.conf 。 就这样。

man resolv.conf也是有用的。

在现代发行版中,它看起来像

 ps aux | grep dhcli | grep -v grep root 367 0.0 0.0 16128 3076 ? S Apr30 0:00 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /var/run/dhclient-enp3s0.pid -lf /var/lib/NetworkManager/dhclient-324caec3-58f9-3f00-bff4-2f8bd7d2aafa-enp3s0.lease -cf /var/lib/NetworkManager/dhclient-enp3s0.conf enp3s0 tail -16 /var/lib/NetworkManager/dhclient-324caec3-58f9-3f00-bff4-2f8bd7d2aafa-enp3s0.lease lease { interface "enp3s0"; fixed-address 10.191.104.3; option subnet-mask 255.255.255.0; option routers 10.191.104.254; option dhcp-lease-time 86400; option dhcp-message-type 5; option domain-name-servers 91.193.220.3,91.193.220.7; option dhcp-server-identifier 91.193.220.3; option ntp-servers 91.193.220.6; option broadcast-address 10.191.104.255; option domain-name "myISP.ru"; renew 1 2017/05/01 12:56:02; rebind 2 2017/05/02 00:27:11; expire 2 2017/05/02 03:27:11; } 

其中91.193.220.7是我的ISP的DNS服务器

 nslookup serverfault.com 91.193.220.7 Server: 91.193.220.7 Address: 91.193.220.7#53 Non-authoritative answer: Name: serverfault.com Address: 151.101.1.69 Name: serverfault.com Address: 151.101.65.69 Name: serverfault.com Address: 151.101.193.69 Name: serverfault.com Address: 151.101.129.69