Wiersz poleceń do listy serwerów DNS używanych przez mój system

196

Czy jest polecenie do wyświetlenia serwerów dns używanych przez mój system?

Próbowałem

$ 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

Ale nie wyświetla żadnych serwerów, jeśli przejdę do "Narzędzia GUI Menedżera sieci", w sekcji Sieć bezprzewodowa wyszczególnia "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Czy mogę uzyskać te same informacje z wiersza poleceń?

Używam Ubuntu 12.04 LTS

    
zadawane Anurag Uniyal 18.06.2012, 16:36
źródło

7 odpowiedzi

196

resolv.conf nie jest już tak naprawdę używany, chyba że sam go zaimplementujesz. Menedżer sieci robi to teraz. Stworzyłem alias, aby wyświetlić listę serwerów DNS w moim systemie, ponieważ czasami przechodzę z OpenDNS na otwarty DNS firmy Google.

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <14

nmcli dev list iface <interfacename> | grep IP4

W moim przypadku <interfacename> to eth0 , co jest powszechne, ale nie zawsze tak jest.

Sprawdź, czy tego właśnie chcesz.

EDYCJA:

Myślę, że resolv.conf jest faktycznie używany pośrednio, ponieważ menedżer sieci tworzy serwer, który nasłuchuje na 127.0.0.1, ale powiedziano mi, że jest to szczegół implementacji, na który nie powinno się liczyć. Myślę, że jeśli wprowadzisz adresy DNS przed tym wpisem, mogą się przyzwyczaić, ale nie jestem pewien, jak to działa. Myślę, że najlepiej jest korzystać z menedżera sieci w większości przypadków, jeśli to możliwe.

    
odpowiedział Marty Fried 18.06.2012, 17:20
źródło
82

Dotyczy wersji Ubuntu 13.10 i wcześniejszych. W Ubuntu 14.04 i nowszych zobacz Odpowiedź Koali Yeung na: Jak sprawdzić, jakiego DNSu używam w systemie Ubuntu od 14.04 roku.

Użyj

nm-tool

Otrzymasz wynik podobny do

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

Lub zobacz tylko DNS zrobić

nm-tool | grep DNS
    
odpowiedział tgm4883 18.06.2012, 17:22
źródło
31

Dwie najlepsze odpowiedzi, nmcli dev list iface <interfacename> | grep IP4 i nm-tool , zakładają, że menadżer sieci jest pod kontrolą. Co to jest - przynajmniej na komputerach stacjonarnych. Ale pełniejszą odpowiedzią jest to, że czasami menedżer sieci nie ma kontroli. Na przykład. vpnc messes z /etc/resolv.conf bezpośrednio.

Tak: najpierw sprawdź, czy jest używany 127.0.0.1/localhost. Można to zrobić za pomocą dig :

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

Teraz wiesz, że jesteśmy przy użyciu localhost. Śmiało z jedną z popularnych odpowiedzi. Podoba mi się:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Ale jeśli 127.0.0.1/localhost jest nie użyty, dane wyjściowe nm-tool i nmcli będą mylące:

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

Tutaj dig jest poprawny, a informacje nm-tool wprowadzają w błąd. W rzeczywistości adresy lokalne do środowiska, w którym mam VPN-ed, są rozwiązywane poprawnie. Wszystko o czym DNS DNS 8.8.8.8 nie wie .

Dzieje się tak dlatego, że po połączeniu się z VPN z vpnc , umieszcza on linię w /etc/resolv.conf , więc wygląda to tak:

# 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
    
odpowiedział Peter V. Mørch 28.05.2015, 21:19
źródło
28

cat /etc/resolv.conf powinno pokazać twoje serwery DNS.

Nie możesz modyfikować resolv.conf bezpośrednio z Ubuntu 12.04. Jeśli jednak chcesz je zmienić, możesz dodać nowe serwery DNS /etc/network/interfaces pliku, dodając:

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

gdzie x to serwery DNS, których chcesz użyć.

Gdybym był tobą, odinstalowałbym network-manager . Moim zdaniem to kupa gówna.

Możesz zrobić wszystko, co musisz zrobić ręcznie, nie martwiąc się o zmianę ustawień, szczególnie jeśli masz wiele kart sieciowych na komputerze.

    
odpowiedział ssc 03.05.2013, 17:27
źródło
8

nmcli wersja 0.9.10

Możesz użyć jednego z następujących poleceń:

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
    
odpowiedział iman 19.08.2015, 12:03
źródło
2

W Ubuntu 15.10 możesz uzyskać DNS

nmcli device show <interface name> 
    
odpowiedział Suleman 02.03.2016, 19:09
źródło
0

Wydaje się być zarządzanym przez menedżera sieci. Zajrzyj tutaj link

po duże wyjaśnienie.

Lub krótka wersja do zaglądnięcia

 /etc/NetworkManager/NetworkManager.conf

lub

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
    
odpowiedział mbs 18.06.2012, 16:46
źródło

Przeczytaj inne pytania na temat tagów