Baris perintah untuk daftar server DNS yang digunakan oleh sistem saya

Apakah ada perintah untuk daftar server dns yang digunakan oleh sistem saya?

Saya mencoba

$ 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 OVERWRITTENnameserver 127.0.0.1$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback

Tapi itu tidak mencantumkan server apa pun, jika saya pergi ke "Network Manager GUI Tool" , di bagian nirkabel itu mencantumkan "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Bisakah Saya mendapatkan informasi yang sama dari baris perintah?

Saya menggunakan Ubuntu 12.04 LTS

resolv.conf tidak benar-benar digunakan lagi, kecuali jika Anda menerapkannya sendiri. Manajer jaringan melakukannya sekarang. Saya membuat alias untuk mencantumkan server DNS di sistem saya, karena terkadang saya beralih dari OpenDNS ke DNS terbuka Google.

>Ubuntu = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

Dalam kasus saya, <interfacename> adalah eth0, yang umum, tetapi tidak selalu terjadi.

Lihat apakah ini yang kau inginkan.

EDIT:

Saya pikir resolv.conf sebenarnya digunakan secara tidak langsung, karena manajer jaringan membuat server yang mendengarkan pada 127.0.0.1, tetapi saya diberitahu bahwa ini adalah detail implementasi yang tidak boleh diandalkan. Saya pikir jika Anda memasukkan alamat DNS sebelum entri ini, mereka mungkin akan digunakan, tetapi saya tidak yakin persis bagaimana ini bekerja. Saya pikir yang terbaik adalah menggunakan manajer jaringan dalam banyak kasus, bila memungkinkan.

Di Ubuntu 18.04 dan 20.04 Anda dapat menggunakan systemd-resolve --status

Ini berlaku untuk Ubuntu 13.10 dan sebelumnya. Untuk Ubuntu 14.04 dan yang lebih baru, lihat Jawaban Koala Yeung untuk: bagaimana mengetahui DNS apa yang saya gunakan di Ubuntu dari 14.04 dan seterusnya


Gunakan

nm-tool

Anda akan mendapatkan output yang mirip dengan

NetworkManager ToolState: 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

Atau untuk melihat hanya DNS lakukan

nm-tool | grep DNS

Dua jawaban top-scoring, nmcli dev list iface <interfacename> | grep IP4 dan nm-tool keduanya menganggap bahwa network-manager memegang kendali. Yang itu - pada mesin desktop sebagian besar waktu setidaknya. Tapi jawaban yang lebih lengkap adalah bahwa kadang-kadang jaringan-manager tidak memegang kendali. Misalnya. vpnc messes dengan /etc/resolv.conf langsung.

Jadi: periksa dulu apakah 127.0.0.1 / localhost digunakan. Ini bisa dilakukan dengan dig:

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

Sekarang Anda tahu bahwa kita adalah menggunakan localhost. Lanjutkan dengan salah satu jawaban populer. Saya suka:

> nm-tool | grep DNS:    DNS:             8.8.8.8

Tetapi jika 127.0.0.1 / localhost adalah tidak digunakan, maka nm-tooldan nmclioutput akan menyesatkan:

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

Di sini, dig adalah benar dan nm-toolinformasi ini menyesatkan. Pada kenyataannya alamat lokal ke lingkungan yang saya VPN-ed ke diselesaikan dengan benar. Semua yang DNS Google 8.8.8.8 tidak tahu tentang.

Ini karena setelah terhubung ke VPN dengan vpnc, ini menempatkan garis di /etc/resolv.conf jadi sepertinya:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 1.2.3.4nameserver 127.0.0.1search MyDomain

cat /etc/resolv.conf harus menunjukkan server DNS Anda.

Anda tidak dapat memodifikasi resolv.conf langsung dengan Ubuntu 12.04. Jika Anda perlu mengubahnya, Anda dapat menambahkan server DNS Baru di /etc/network/interfaces file dengan menambahkan berikut:

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

dimana x adalah server DNS yang ingin Anda gunakan.

Jika saya jadi Anda, saya akan mencopot pemasangan network-manager. Menurut pendapat saya itu tumpukan omong kosong.

Anda dapat menyelesaikan semua yang perlu Anda lakukan secara manual tanpa khawatir mengubah pengaturan Anda, terutama jika Anda memiliki beberapa Nic di komputer.

nmcli versi 0.9.10

Anda dapat menggunakan salah satu dari perintah ini:

nmcli -t -f IP4.DNS device show eth0IP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8nmcli -t -f IP4.DNS connection show conn-nameIP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8

Di Ubuntu 15.10 Anda bisa mendapatkan DNS

nmcli device show <interface name> 

Menakjubkan berapa banyak cara yang ada untuk melakukannya. Pada server Ubuntu 18.04, jika Anda tidak ingin menginstal sesuatu yang ekstra seperti nm-tool, lalu systemd-resolve --status akan bekerja di luar kotak untuk informasi DNS.

Jika Anda tertarik untuk mendapatkan tidak hanya server DNS Anda, tetapi juga gateway default, alamat IP, network mask, dll, maka netplan ip leases eth0 akan memberi Anda semua informasi itu dalam bentuk yang mudah dibaca (dengan asumsi Anda tertarik pada eth0 antarmuka).

Pada sistem dimana systemd-resolved tidak terpasang :

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

Pada sistem dimana NetworkManager sedang berjalan :

$ ( 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

Di Ubuntu 20.04

systemd-resolve --status | grep -B 9 -A 6 "Current DNS Server"

memberi saya hasil yang jelas tentang DNS apa yang digunakan untuk setiap adaptor menggunakan DNS.

Untuk mengkonfigurasi ulang DNS

man systemd-resolved

mengungkapkan server DNS dihubungi ditentukan oleh pengaturan global di /etc/systemd/resolved.conf.

Sudo mengedit file itu dan Tanda Komentar dan mengatur DNS= dan FallbackDNS= ke server DNS IPv4 yang Anda inginkan.Misalnya, DNS=8.8.8.8 dan FallbackDNS=8.8.4.4 akan menggunakan Google Public DNS.Restart mesin untuk menerapkan perubahan.

@ PLA, terima kasih untuk ini jawaban yang membawa saya ke jalan ini.

Apa yang kau coba temukan? server DNS yang digunakan oleh sistem Anda? atau apakah Anda mencoba melakukan pencarian DNS?

Mantan @ LordofTime

Server DNS @ LordofTime digunakan oleh sistem saya

Anda menggunakan 127.0.0.1. apakah Anda* menjalankan * server DNS?

Lihat networking - What DNS servers am I using? - Unix & Linux Stack Exchange untuk versi non-Ubuntu dari pertanyaan ini