Как узнать, какой DNS я использую в Ubuntu с 14.04 и далее

(A следует за аналогичным вопросом для 12.04.)

До Ubuntu 12.04 вы можете увидеть активный DNS в /etc/resolv.conf. В Ubuntu 12.04 NetworkManager больше не работает с файлом. Вам нужно напрямую обратиться к инструменту командной строки nm-tool.

Интересно, что nm-tool больше не устанавливается по умолчанию в 14.04 и позже. Хотя вы все еще можете установить через apt-get install, вы не можете считать, что все Ubuntu имеют это из коробки.

Таким образом, вопрос остается. Как вы знаете, по умолчанию установку, DNS, который вы используете по командной строке?

1
задан 13 April 2017 в 15:25

5 ответов

Анализ пакетов будет альтернативным методом, который работает независимо от используемого NetworkManager или другого сетевого подключения. Основная идея - отправить dns-запрос с помощью nslookup и во второй проверке терминала, куда идут пакеты.

Для этого нам нужно будет подключиться к сети в первый раз, чтобы ничто не загромождает соединения и запускает следующую команду:

sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com  

В альтернативном прогоне терминала:

nslookup google.com 

Как только вы получите список пакетов из tcpdump, проверьте, где делаете они идут с вашего IP-адреса.

Например,

$ sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com                            
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    eagle.29862 > b.resolvers.Level3.net.domain: [udp sum ok] 64057+ [1au] A? google.com. ar: . OPT UDPsize=4096 (39)
    b.resolvers.Level3.net.domain > eagle.29862: [udp sum ok] 64057 q: A? google.com. 11/0/0 google.com. A 173.194.115.64, google.com. A 173.194.115.65, google.com. A 173.194.115.72, google.com. A 173.194.115.66, google.com. A 173.194.115.69, google.com. A 173.194.115.78, google.com. A 173.194.115.70, google.com. A 173.194.115.71, google.com. A 173.194.115.68, google.com. A 173.194.115.67, google.com. A 173.194.115.73 (204)
    eagle.16429 > b.resolvers.Level3.net.domain: [udp sum ok] 38822+ A? google.com. (28)

Как вы можете видеть, мой ноутбук eagle отправляет пакеты в dns моего университета, b.resolvers.Level3.net.domain. Если вы хотите увидеть IP-адрес, вы можете использовать флаг -n с tcpdump.

Например:

$ sudo tcpdump -n -vv -i wlan0 -W 1200 | grep google.com                         
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10.10.87.145.56474 > 4.2.2.2.53: [udp sum ok] 15606+ A? google.com. (28)
3
ответ дан 23 May 2018 в 19:43

проверьте сетевые подключения:

ls /etc/NetworkManager/system-connections/

и выберите соединение, которое вы хотите настроить.

 sudo cat /etc/NetworkManager/system-connections/Internet | grep dns

Заменить «Интернет» без вашего имени соединения

Использовать все еще можно использовать nm-tool:

nm-tool | grep DNS

Установите его для U14.04 и более поздних версий с помощью примера

sudo apt-get install nm-tool

:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1
2
ответ дан 23 May 2018 в 19:43

Он по-прежнему доступен по умолчанию в версии 14.04, поскольку он связан с сетевым менеджером.

В настоящее время на версии 15.04 вы можете загружать и извлекать nm-инструмент из старого (с 15 апреля и позднее) и даже не доступен через apt-get. пакет вручную. Выполните следующие команды:

Сначала создайте каталог temp для работы в:

cd
mkdir APTGET;cd APTGET

Затем загрузите старую версию и извлеките файлы:

wget 'http://us.archive.ubuntu.com/ubuntu/pool/main/n/network-manager/network-manager_0.9.8.8-0ubuntu7.1_amd64.deb'
ar xvf *
tar xvf dat*

Создайте новый каталог:

mkdir ~/bin

(если он говорит file already exists, просто игнорируйте сообщение и продолжайте).

Скопируйте файл в новый каталог: [ ! d6]

cp ./usr/bin/nm-tool ~/bin

Вернитесь в домашний каталог и удалите каталог temp:

cd ..
rm -R APTGET

Теперь установите псевдоним для инструмента nm:

cp ~/.bashrc ~/.bashback
echo 'alias nm-tool="~/bin/nm-tool"' | tee -a ~/.bashrc;. ~/.bashrc

Теперь текущий пользователь должен иметь возможность запускать nm-инструмент из терминала.

Кроме того, это может все еще неточно предоставлять все фактические DNS-разрешения, которые вы используете. [!d11 ]

Вы можете перейти на DNSleaktest.com, чтобы получить полный отчет. Нажмите «Расширенный тест», чтобы получить полный отчет.

1
ответ дан 23 May 2018 в 19:43

список разработчиков nmcli | grep DNS

выводит что-то вроде; IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

Вышеупомянутая команда работает до Ubuntu 16.04 Для Ubuntu 16.04 используйте: nmcli dev show | grep DNS

1
ответ дан 23 May 2018 в 19:43
  • 1
    Вы, вероятно, имеете в виду nmcli dev show, а не nmcli dev list? – holmb 25 November 2016 в 14:02
  • 2
    Я сделал рытье, похоже, они изменили CLI между Ubuntu 14.04 и 16.04. По-видимому, nmcli dev list работает в 14.04, но не в 16.04. – holmb 25 November 2016 в 14:06

На самом деле NetworkManager использует /etc/resolv.conf. Однако при настройках по умолчанию DNS-сервер, указанный в resolv.conf, является 127.0.0.1, потому что NetworkManager использует свою собственную внутреннюю службу DNS для некоторых неясных технических причин, которые не актуальны для многих людей. Вот почему вы должны использовать nmcli, чтобы посмотреть, какие DNS-серверы NetworkManager использует внутри.

Однако также можно отключить это поведение и вернуться к старой, где фактический DNS-сервер в использование указано в resolv.conf. Для этого просто закомментируйте строку dns=dnsmasq в /etc/NetworkManager/NetworkManager.conf и перезагрузитесь. Для большинства людей это не должно иметь значения, кроме того, что фактический DNS-сервер теперь будет показан в resolv.conf. Если вы находитесь в списке дел, для которых было внесено изменение, это должно стать очевидным быстро, и вы можете вернуться к поведению по умолчанию, снова раскомментируя строку.

0
ответ дан 23 May 2018 в 19:43

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

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