Baris perintah untuk mendaftar server DNS yang digunakan oleh sistem saya


254

Apakah ada perintah untuk mendaftarkan 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 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

Tetapi ia tidak mencantumkan server apa pun, jika saya membuka "Alat GUI Network Manager", di bagian Nirkabel 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


Apa yang kamu coba temukan? server DNS yang digunakan oleh sistem Anda? atau Anda mencoba melakukan pencarian DNS?
Thomas Ward

Mantan @LordofTime
ish

@LordofTime DNS server sedang digunakan oleh sistem saya
Anurag Uniyal

Anda menggunakan 127.0.0.1. apakah Anda menjalankan server DNS?
Skaperen

Lihat unix.stackexchange.com/q/28941/38647 untuk versi non-Ubuntu dari pertanyaan ini
mwfearnley

Jawaban:


250

resolv.conf tidak benar-benar digunakan lagi, kecuali jika Anda menerapkannya sendiri. Manajer jaringan melakukannya sekarang. Saya membuat alias untuk mendaftar server DNS di sistem saya, karena saya kadang-kadang 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 demikian.

Lihat apakah ini yang Anda inginkan.

SUNTING:

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


2
terima kasih, ya yang tampaknya berfungsi, jaringan ubuntu tampaknya membingungkan, jadi saya dapat mengatur server dns di resol.conf / base atau di / etc / network / interfaces atau di manajer jaringan, apakah ada panduan yang pasti untuk jaringan ubuntu?
Anurag Uniyal

Jika Anda menggunakan GUI, maka tempat terbaik untuk mengaturnya adalah dengan membuat profil di Dialog Koneksi Jaringan. Saya menduplikasi default, kemudian mengedit duplikat untuk membuat perubahan yang saya inginkan, menjaga default untuk memastikan saya selalu memiliki profil yang berfungsi. Maka, mudah untuk berganti profil. Saya tidak tahu bagaimana melakukan ini tanpa GUI, tetapi ada pengguna "James Henstridge" yang sangat berpengetahuan luas di jaringan Ubuntu; Anda dapat mencoba mencari di askubuntu untuk informasinya. Dia memberi tahu saya tentang perintah yang saya berikan kepada Anda di pos ini .
Marty Fried

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 adalah artikel yang bagus tentang resolusi DNS di ubuntu 12.04
Anurag Uniyal

6
Saya menggunakan 15,04 dan 'nmcli dev show | grep DNS' bekerja untuk saya sebagai gantinya.
flickerfly

1
@vcardillo: pertanyaan awal menyatakan: "Saya menggunakan Ubuntu 12,04 LTS". Sudah 5 tahun sejak saya memposting jawaban saya. Tak ada yang abadi.
Marty Fried

85

Ini berlaku untuk Ubuntu 13.10 dan sebelumnya. Untuk Ubuntu 14.04 dan lebih tinggi, lihat jawaban Koala Yeung untuk: Bagaimana cara mengetahui DNS apa yang saya gunakan di Ubuntu mulai dari 14,04 dan seterusnya


Menggunakan

nm-tool

Anda akan mendapatkan hasil yang mirip dengan

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

Atau untuk melihat DNS lakukan

nm-tool | grep DNS

1
hanya ingin menambahkan, pergi ke nm-appletmenu informasi koneksi juga akan bekerja :)
Samik

1
+1 ini juga berfungsi, seperti halnya nm-cli seperti yang dijawab oleh @Marty Fried
Anurag Uniyal

2
berfungsi dengan baik pada lubuntu 14.04 juga. terima kasih
jamescampbell

2
nm-tool tidak ditemukan pada 15.10
labirin

1
ya ini tidak berfungsi lagi ... tidak nm-tooldalam 16x. nmcli(dalam jawaban Marty Fried) adalah jalan yang harus ditempuh
Lambart

46

Dua jawaban skor teratas, nmcli dev list iface <interfacename> | grep IP4dan nm-toolkeduanya menganggap bahwa manajer jaringan memegang kendali. Yang mana - pada mesin desktop setidaknya sebagian besar waktu. Tetapi jawaban yang lebih lengkap adalah bahwa kadang-kadang manajer jaringan tidak memegang kendali. Misalnya vpncmengacaukan /etc/resolv.confsecara langsung.

Jadi: Pertama periksa apakah 127.0.0.1/localhost digunakan. Ini dapat dilakukan dengan dig:

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

Sekarang Anda tahu bahwa kita sedang menggunakan localhost. Silakan salah satu jawaban populer. Saya suka:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Tapi jika 127.0.0.1/localhost yang tidak digunakan, maka nm-tool's dan nmcli' s output 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, digbenar dan nm-toolinformasinya menyesatkan. Pada kenyataannya, alamat-alamat lokal ke lingkungan tempat VPN-ed saya selesaikan dengan benar. Semua yang 8.8.8.8 tidak diketahui oleh DNS Google .

Ini karena setelah terhubung ke VPN vpnc, ia membuat garis /etc/resolv.confsehingga terlihat seperti:

# 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
Ini adalah jawaban yang paling lengkap
Marinos An

Terima kasih. Beberapa dari kita di sini tidak menggunakan NM dan itu bagus untuk komunitas.
Stephen Boston

Hanya untuk penyelesaian, digutilitas dapat dengan mudah dipasang apt install dnsutils.
Daniele Brugnara

32

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

Anda tidak boleh memodifikasi resolv.conflangsung dengan Ubuntu 12.04. Jika Anda perlu mengubahnya, Anda dapat menambahkan server DNS baru di /etc/network/interfacesfile Anda dengan menambahkan yang berikut ini:

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

di mana xserver DNS yang ingin Anda gunakan.

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

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


2
Apakah saya harus memulai ulang nm setelah melakukan perubahan dns?
Bhargav Nanekalva

1
--Terima kasih. Ini bagus. Ia bekerja bahkan tanpa bisnis manajer jaringan itu.
Adam

"cat /etc/resolv.conf akan menampilkan server DNS Anda". Tidak.
Marinos An

25

Di Ubuntu 18.04 Anda bisa menggunakan systemd-resolve --status


NB jika Anda cat /etc/resolv.conf bahkan mengatakan ini
Rqomey

11

nmcli versi 0.9.10

Anda dapat menggunakan salah satu dari perintah ini:

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

2

Di Ubuntu 15.10 Anda bisa mendapatkan DNS

nmcli device show <interface name> 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.