Как я могу сказать, какие серверы DNS DNSMasq использует?

Как я могу сказать, какие серверы DNS DNSMasq использование должно разрешить имя к IP-адресу? Я не могу понять это. Все существующие вопросы здесь, кажется, просто идут до говорящих пользователей, что они используют DNSMasq.

31
задан 4 December 2014 в 22:50

7 ответов

Можно найти серверы DNS с NetworkManagerCLI (nmcli) инструмент:

nmcli dev show | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

Ubuntu 14.04 и более старый

Команда немного отличается в более старом (<15.04) версии Ubuntu:

> nmcli dev list | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1
17
ответ дан 23 November 2019 в 00:45

Для более универсального ответа, когда Вы используете dnsmasq без администратор сети и с несколько восходящий DNS:

sh# kill -USR1 <PID OF DNSMASQ>
sh# tail /var/log/syslog

После получения SIGUSR1, dnsmasq зарегистрирует различную статистику, включая количество запроса DNS отправляют к каждому вышестоящему серверу . На основе этого можно легко определить наиболее часто используемый сервер DNS в системе.

20
ответ дан 23 November 2019 в 00:45

На Ubuntu 15.04 команда:

$ nmcli dev show | grep DNS
IP4.DNS[1]:                             8.8.8.8
0
ответ дан 23 November 2019 в 00:45

В пакете:

network-manager 0.9.8.8-0ubuntu7.2 amd64 

Команда:

root@D-MIS-001:~# nmcli dev list | grep DNS
IP4.DNS[1]:                             172.16.10.173
IP4.DNS[2]:                             172.16.10.133

Это - то, что, кажется, текущая версия пакета для Ubuntu 14.04 LTS. Корректная команда для 15.*, возможно, изменился.

0
ответ дан 23 November 2019 в 00:45

Обычно для системного использования systemd, серверы DNS dnsmasq использует может быть найден через

journalctl -u dnsmasq

2
ответ дан 23 November 2019 в 00:45

Я расширяю ответы, данные другими, показывая немного более длинные команды, которые печатают только DNS-серверы.

Ubuntu 14.04 имеет nmcli 0.9.8.8 в пакете network-manager. Список DNS-серверов находится в выводе nmcli -f IP4 -t -m табличный список разработчиков. Чтобы получить только список DNS-серверов, запустите (без ведущего $):

$ env -i nmcli -f IP4 -t -m tabular dev list | perl -ne 'chomp; my @l = split(m@:@, $_); if (@l > 3) { $_ = $l[3]; if (m@^\d+(?=[.])[\d. |]+[.]\d+$@) { for (split(m@ *[|] *@, $_)) { print "$_\n" } } }'
12.34.56.78
90.123.45.6

Ubuntu 15.04 или более поздней версии также имеет nmcli в сетевом менеджере package, но ожидает другие аргументы командной строки. Список DNS-серверов находится в выводе nmcli -f IP4.DNS -t -m tabular dev show. Чтобы получить только список DNS-серверов, запустите (без начального $):

$ env -i nmcli -f IP4.DNS -t -m tabular dev show | perl -ne 'if (m@^\d+(?=[.])[\d. |]+[.]\d+$@) { chomp; for (split(m@ *[|] *@, $_)) { print "$_\n" } }'
12.34.56.78
90.123.45.6

Поскольку nmcli подключается к NetworkManager через DBus, приведенная выше команда работает для любых подключений, управляемых NetworkManager , даже для тех, которые не используют dnsmasq.Однако не все соединения управляются NetworkManager. Список DNS-серверов следует извлечь из файла /etc/resolv.conf, и если он содержит адреса, начинающиеся с 127.0.0. , следует проконсультироваться с NetworkManager. Вот как извлечь:

$ perl -ne 'print "$1\n" if m@^\s*nameserver\s+(\S+)\s*$@' /etc/resolv.conf 
127.0.1.1

Обратите внимание, что 127.0.1.1 (и, возможно, другие) указывает на dnsmasq, а 127.0.0.53 указывает на systemd -решено.

Если текущее активное соединение не управляется NetworkManager (и systemd-resolved), DNS-серверы будут перечислены в файле /etc/resolv.conf.

0
ответ дан 10 December 2020 в 10:49

Также можно запросить NetworkManager напрямую через DBus. (Это то, что nmcli делает под капотом). Например, в Ubuntu 14.04 или более поздней версии запустите (без начального $):

$ env -i gdbus introspect -y -o /org/freedesktop/NetworkManager/IP4Config -d org.freedesktop.NetworkManager | perl -ne 'if (m@^  node (\d+) [{]$@) { $_ = readpipe("env -i gdbus introspect -y -o /org/freedesktop/NetworkManager/IP4Config/$1 -d org.freedesktop.NetworkManager\n"); while (m@ Nameservers = \[(?!\])((?=\d)[\d, ]*\d)\]@g) { for (split(m@, *@, $1)) { print join(".", unpack("C4", pack("I", $_))), "\n" } } }'
12.34.56.78
90.123.45.6

Для более косвенного подхода используйте ActiveConnection вместо IP4Config.

0
ответ дан 10 December 2020 в 11:01

Другие вопросы по тегам:

Похожие вопросы: