Вопрос Командная строка для отображения 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», в разделе «Беспроводная связь» перечислены «DNS 192.168.1.1 8.8.8.8 8.8.4.4»,

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

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


198
2018-06-18 14:36


происхождения


Что вы пытаетесь найти? DNS-серверы, используемые вашей системой? или вы пытаетесь выполнить поиск DNS? - Thomas Ward♦
Бывший @LordofTime - ish
DNS-серверы @LordofTime, используемые моей системой - Anurag Uniyal
вы используете 127.0.0.1. ты Бег DNS-сервер? - Skaperen
Видеть unix.stackexchange.com/q/28941/38647 для версии этого вопроса, не относящейся к Ubuntu - mwfearnley


ответы:


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 до этой записи, они могут привыкнуть, но я точно не знаю, как это работает. Я думаю, что лучше всего использовать диспетчер сети в большинстве случаев, когда это возможно.


198
2018-06-18 15:20



спасибо, да, похоже, что работа, работа в Ubuntu, кажется, запутывает, поэтому я могу установить DNS-серверы в файле resol.conf / base или в / etc / network / interfaces или в сетевом менеджере, есть ли окончательное руководство для сетей ubuntu? - Anurag Uniyal
Если вы используете графический интерфейс, то лучшим местом для его установки является создание профилей в диалоговом окне «Сетевые подключения». Я дублировал значение по умолчанию, а затем редактировал дубликат, чтобы внести изменения, которые я хотел, сохраняя значение по умолчанию, чтобы убедиться, что у меня всегда был рабочий профиль. Тогда легко переключить профили. Я не знаю, как это сделать без GUI, но есть пользователь «Джеймс Хенстридж», который очень хорошо разбирается в сети Ubuntu; вы можете попытаться найти askubuntu для своей информации. Он рассказал мне о команде, которую я вам дал эта почта, - Marty Fried
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 это хорошая статья, посвященная DNS-разрешению в ubuntu 12.04 - Anurag Uniyal
Хорошая ссылка - много хорошей информации, которую можно переварить. - Marty Fried
Я использую 15.04, и вместо этого работает «nmpi dev show | grep DNS». - flickerfly


Это справедливо для Ubuntu 13.10 и более ранних версий. Для Ubuntu 14.04 и выше см. Ответ Koala Yeung на: Как узнать, какой 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

82
2018-06-18 15:22



просто хотел добавить, nm-appletМеню информации о соединении также будет работать :) - Samik
+1 это тоже работает, как и nm-cli, как ответил @Marty Fried - Anurag Uniyal
Да, такая же информация, но nmcli легче разобрать, если вы хотите извлечь ее для другой презентации, например conky или просто резюме, подобное моему grep. - Marty Fried
отлично работает на lubuntu 14.04. благодаря - jamescampbell
nm-tool не найден на 15.10 - labyrinth


Ответы на лучший результат, 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выход будет вводить в заблуждение:

> dig something.unknown  | grep SERVER:
;; SERVER: 172.22.216.251#53(172.22.216.251)
> nm-tool | grep DNS:
    DNS:             8.8.8.8

Вот, dig является правильным и nm-toolИнформация вводит в заблуждение. В действительности адреса локального доступа к среде, в которой я подключен VPN, разрешены правильно. Все из которых Google DNS 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

33
2018-05-28 19:19



Это самый полный ответ - Marinos An
Спасибо. Некоторые из нас здесь не используют NM, и это хорошо для сообщества. - Stephen Boston


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, По-моему, это куча дерьма.

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


29
2018-05-03 15:27



Должен ли я перезапускать nm после изменения dns? - Bhargav Nanekalva
--Благодаря. Отлично. Он работает даже без этого сетевого менеджера. - Adam
«cat /etc/resolv.conf должен показывать ваши DNS-серверы». Это не так. - Marinos An


версия nmcli 0.9.10

Вы можете использовать любую из следующих команд:

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

8
2017-08-19 10:03





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

nmcli device show <interface name> 

2
2018-03-02 18:09





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

для большого объяснения.

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

 /etc/NetworkManager/NetworkManager.conf

или

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf

0
2018-06-18 14:46



но /etc/NetworkManager/NetworkManager.conf не содержит DNS-серверов, перечисленных в нем - Anurag Uniyal