Командний рядок для переліку DNS-серверів, які використовуються моєю системою


254

Чи є команда для переліку 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

Але він не перераховує жодних серверів, якщо я перейдіть до "Інструмент інтерфейсу інтерфейсу менеджера", у розділі "Бездротова мережа" він містить "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Чи можу я отримати таку ж інформацію з командного рядка?

Я використовую Ubuntu 12.04 LTS


Що ви намагаєтесь знайти? сервери DNS, якими користується ваша система? або ви намагаєтеся зробити пошук DNS?
Thomas Ward

Колишній @LordofTime
іш

@LordofTime DNS-сервери, якими користується моя система
Anurag Uniyal

ви використовуєте 127.0.0.1. у вас працює DNS-сервер?
Скаперен

Дивіться unix.stackexchange.com/q/28941/38647 для не-Ubuntu версії цього питання
mwfearnley

Відповіді:


250

resoluv.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, що є загальним, але не завжди так.

Подивіться, чи це ви хочете.

Редагувати:

Я думаю, що resv.conf насправді використовується опосередковано, тому що мережевий менеджер створює сервер, який слухає 127.0.0.1, але мені сказали, що це деталь реалізації, на яку не варто розраховувати. Я думаю, що якщо ви введете DNS адреси перед цим записом, вони можуть звикнути, але я не впевнений, як саме це працює. Я думаю, що найкраще використовувати менеджер мережі в більшості випадків, коли це можливо.


2
дякую, так, здається, це працює, мережа ubuntu здається заплутаною, тому я можу встановити dns-сервери в разрешительном режиме.conf / base або в / etc / network / інтерфейсах або в мережевому менеджері, чи є остаточне керівництво по роботі з мережею ubuntu?
Anurag Uniyal

Якщо ви користуєтесь графічним інтерфейсом, найкраще його встановити, створивши профілі в діалоговому вікні мережевих підключень. Я продублював за замовчуванням, потім відредагував дублікат, щоб внести потрібні зміни, зберігаючи за замовчуванням, щоб переконатися, що у мене завжди працював профіль. Тоді легко перемикати профілі. Я не знаю, як це зробити без графічного інтерфейсу, але є користувач "Джеймс Генстридж", який дуже добре обізнаний у мережі Ubuntu; ви можете спробувати пошукати його інформацію в askubuntu. Він розповів мені про команду, яку я вам дав на цій посаді .
Марті Фрід

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 - це приємна стаття з дозволом DNS у ubuntu 12.04
Anurag Uniyal

6
Я використовую 15.04, а для мене працює 'nmcli dev show | grep DNS'.
мерехтіння

1
@vcardillo: в оригінальному запитанні було вказано: "Я використовую Ubuntu 12.04 LTS". Минуло 5 років, як я опублікував свою відповідь. Ніщо не вічне.
Марті Фрід

85

Це справедливо для 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

1
просто хотів доповнити, перехід до nm-appletменю інформації про підключення також буде працювати :)
Самік

1
+1 це також працює, як і nm-cli, як відповів @Marty Fried
Anurag Uniyal

2
чудово працює і на lubuntu 14.04. дякую
jamescampbell

2
nm-інструмент не знайдено 15.10
лабіринт

1
так, це більше не працює ... ні nm-toolв 16.x. nmcli(у відповіді Марті Фрід) - це шлях
Ламбарт

46

Два найвищих відповіді, 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)

Тепер ви знаєте , що ми є використовуючи локальні. Вперед з однією з популярних відповідей. Мені подобається:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Але якщо 127.0.0.1/localhost не використовується, результат nm-tool's і 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, вирішені правильно. Про все, про що 8.8.8.8 не знає DNS від Google .

Це тому, що після підключення до 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

3
Це найповніша відповідь
Marinos An

Дякую. Деякі з нас тут не використовують НМ, і це корисно для громади.
Стівен Бостон

Тільки для завершення, digутиліту можна легко встановити apt install dnsutils.
Даніель Брюгнара

32

cat /etc/resolv.conf повинен показувати ваші DNS-сервери.

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

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

де xDNS-сервери, які ви хочете використовувати.

Якби я був ти, я б видалив network-manager. На мій погляд, це купова лайна.

Ви можете виконати все, що потрібно зробити вручну, не турбуючись про зміну налаштувань, особливо якщо у вас на комп’ютері кілька NIC.


2
Чи повинен я перезапустити nm після зміни dns?
Bhargav Nanekalva

1
--Дякую. Це чудово. Він працює навіть без цього мережевого бізнесу.
Адам

"cat /etc/resolv.conf повинен показувати ваші DNS-сервери". Це не так.
Марінос

25

У Ubuntu 18.04 ви можете користуватися systemd-resolve --status


Зверніть увагу: якщо ви кіт /etc/resolv.conf це навіть говорить про це
Rqomey

11

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


0

Здається, керує менеджером мережі. Подивіться тут http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html

для великого пояснення.

Або коротку версію, яку слід шукати

 /etc/NetworkManager/NetworkManager.conf

або

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf

4
але в ньому /etc/NetworkManager/NetworkManager.confнемає жодних серверів dns
Anurag Uniyal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.