Обычно файл 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
хорошо, почему не просто роют это?
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
взгляд на последние строки:;; СЕРВЕР: 192.168.1.15#53 (192.168.1.15)
Если не будет ничего в/etc/resolv.conf, то разрешение DNS (то есть, разрешение с помощью DNS, как определено в/etc/nsswitch.conf) не будет работать. Это - то, что роет, хост и libc использование стандартных программ, чтобы сделать разрешение DNS. Если не будет ничего указанного в этом файле, то разрешение DNS не будет работать (хотя разрешение хоста может работать через другие средства, если другой метод разрешения хоста настроен, такие как NIS (это маловероятно)).
Читать /etc/resolv.conf
.Это все.
man resolv.conf
полезно, также.
Я нашел свою информацию об аренде DHCP в /var/lib/dhclient/dhclient-eth0.leases
на случай, если кто-то не сможет найти ее в / var / lib / dhcp3 / dhclient.leases
Недавно у меня возникла эта проблема, когда мой dhcpcd
был неправильно сконфигурирован, так как не устанавливал DNS-серверы. Я обнаружил, что могу запросить, какие серверы имен доступны по DHCP, с помощью следующей команды:
sudo dhcpcd -o domain_name_servers -T
Команда выведет кучу информации о сетевом подключении. Найдите строку, начинающуюся с new_domain_name_servers
.
Отсюда я смог вручную установить серверы имен.
. Dieser Befehl zeigt den DNS-Server in Ihrem Netz an.
dig | grep SERVER: | awk -F # '{print $ 1}' | awk -F: '{print $ 2}'
172.17.0.1
В современных дистрибутивах это выглядит как
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 - это 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
Еще одно решение для запроса 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
Если вы используете NetworkManager, чтобы получить DNS-серверы ipv4 для соединения YourConnectionName, вы можете использовать что-то вроде
nmcli -g IP4.DNS connection show YourConnectionName
Use nmcli connection show YourConnectionName
чтобы получить все возможные варианты и значения.