Командная строка для просмотра DNS-серверов, используемых моей системой

Есть ли команда для отображения DNS-серверов, используемых моей системой?

Я пытался

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
$ cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Но она не выводит список серверов, если я перехожу к «Network Manager GUI» Инструмент », в разделе« Беспроводная связь »перечислены« DNS 192.168.1.1 8.8.8.8 8.8.4.4 »

Могу ли я получить ту же информацию из командной строки?

Я использую Ubuntu 12.04 LTS

259
задан 11 October 2015 в 21:43

10 ответов

Это действительно для Ubuntu 13.10 и более ранних версий. Для Ubuntu 14.04 и выше см. ответ Коала Йенга на: Как узнать, какой DNS я использую в Ubuntu с 14.04 года


Использовать

nm-tool

Вы получите вывод, похожий на

NetworkManager Tool

State: connected (global)

- Device: eth0  [Wired connection 1] -------------------------------------------
  Type:              Wired
  Driver:            e1000e
  State:             connected
  Default:           yes
  HW Address:        00:11:22:33:44:55

  Capabilities:
    Carrier Detect:  yes
    Speed:           1000 Mb/s

  Wired Properties
    Carrier:         on

  IPv4 Settings:
    Address:         10.21.6.13
    Prefix:          24 (255.255.255.0)
    Gateway:         10.21.6.1

    DNS:             10.22.5.133
    DNS:             10.22.5.3

Или посмотреть, как работает DNS

nm-tool | grep DNS
0
ответ дан 11 October 2015 в 21:43

версия 0.9.10 nmcli

Можно использовать любую из этих команд:

nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8

nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
11
ответ дан 11 October 2015 в 21:43

cat /etc/resolv.conf должны показать ваши DNS-серверы.

Вы не можете изменять resolv.conf напрямую с помощью Ubuntu 12.04. Однако если вам необходимо изменить их, вы можете добавить новые DNS-серверы в свой файл /etc/network/interfaces, добавив следующее:

 dns-nameservers x.x.x.x x.x.x.x

где x - DNS-серверы, которые вы хотите использовать.

На вашем месте я бы удалил network-manager. На мой взгляд, это куча дерьма.

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

0
ответ дан 11 October 2015 в 21:43

resolv.conf больше не используется, если только вы не внедрили его самостоятельно. Сетевой менеджер делает это сейчас. Я создал псевдоним для отображения DNS-серверов в моей системе, так как я иногда переключаюсь с OpenDNS на открытый DNS Google.

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu < = 14

nmcli dev list iface <interfacename> | grep IP4

В моем случае <interfacename> eth0, что часто, но не всегда так.

Посмотрите, хотите ли вы этого.

РЕДАКТИРОВАТЬ:

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

0
ответ дан 11 October 2015 в 21:43

Оба ответа с наибольшим количеством баллов, nmcli dev list iface <interfacename> | grep IP4 и nm-tool, предполагают, что сетевой менеджер находится под контролем. Который это - на настольных машинах большую часть времени по крайней мере. Но более полный ответ заключается в том, что иногда сетевой менеджер не контролирует ситуацию. Например. vpnc портится с /etc/resolv.conf напрямую.

Итак: сначала проверьте, используется ли 127.0.0.1/localhost. Это можно сделать с помощью dig:

> dig something.unknown  | grep SERVER:
;; SERVER: 127.0.0.1#53(127.0.0.1)

Теперь вы знаете, что мы используем localhost. Продолжайте с одним из популярных ответов. Мне нравится:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Но если 127.0.0.1/localhost не не используется , то вывод nm-tool и nmcli будет вводить в заблуждение:

[ 112]

Здесь dig является верным, а информация nm-tool вводит в заблуждение. На самом деле адреса, локальные для среды, в которую я подключился по VPN, разрешены правильно. Все, о чем DNS Google 8.8.8.8 не знает .

Это потому, что после подключения к VPN с vpnc, он помещает строку в /etc/resolv.conf, так что это выглядит так:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 1.2.3.4
nameserver 127.0.0.1
search MyDomain
0
ответ дан 11 October 2015 в 21:43

В Ubuntu 18.04 вы можете использовать systemd-resolve --status

0
ответ дан 11 October 2015 в 21:43

Кажется, управляется сетевым менеджером. Посмотрите здесь http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html

для подробного объяснения.

Или короткую версию, чтобы посмотреть в

 /etc/NetworkManager/NetworkManager.conf

или

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
0
ответ дан 11 October 2015 в 21:43

В Ubuntu 15.10 вы можете получить DNS

nmcli device show <interface name> 
.
0
ответ дан 11 October 2015 в 21:43

Удивительно, сколько существует способов сделать это. На сервере Ubuntu 18.04, если вы не хотите устанавливать что-либо дополнительное, например nm-tool , тогда systemd-resolve --status будет работать из коробки для информации DNS.

Если вы хотите получить не только свои DNS-серверы, но и шлюз по умолчанию, IP-адрес, сетевую маску и т. Д., То netplan ip leases eth0 предоставит вам всю эту информацию в удобной форме. -читать форму (предполагается, что вас интересует интерфейс eth0 ).

2
ответ дан 14 February 2020 в 15:30

В системах, где systemd-resolved НЕ установлен:

$ host -v something.unknown | awk -F "[ #]" '/Received /{print$5}' | uniq
192.168.1.1

В системах, где запущен NetworkManager:

$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk '/DNS/{print$NF}'
192.168.1.1
1
ответ дан 26 December 2020 в 08:14

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

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