Alamat server DNS tidak lagi disimpan di resolv.conf; dimana sekarang?

14

Saya terkadang mengganti server DNS, menggunakan indikator NetworkManager di taskbar; ini berfungsi baik dengan versi sebelumnya, dan sebenarnya berfungsi dengan baik dengan 12,04 juga, kecuali untuk satu hal: Saya menggunakan Conky untuk menampilkan beberapa informasi sistem, termasuk alamat DNS, dan saya perhatikan bahwa sekarang selalu ditampilkan 127.0.0.1.

Saya melihat ke dalam resolv.conf, di mana ia mendapatkan alamat ini, dan tentu saja, itulah yang selalu dikatakan. Saya memiliki satu baris, dengan peringatan untuk tidak mengedit file dengan tangan:

nameserver 127.0.0.1

Satu-satunya cara saya tahu untuk memeriksa alamat server DNS sekarang adalah membuka GUI manajer jaringan untuk memeriksa halaman info. Jadi, di mana informasi ini disimpan sekarang?

Marty Fried
sumber

Jawaban:

17

Informasi ini dikelola secara internal oleh Network Manager. Anda bisa mendapatkan informasi ini di baris perintah menggunakan nmclialat yang disertakan .

Anda dapat mengambil informasi Network Manager untuk antarmuka jaringan tertentu dengan perintah berikut:

nmcli dev list iface eth0

(ganti eth0dengan antarmuka yang Anda sambungkan). Output akan mencakup informasi tentang antarmuka dan koneksi yang sedang aktif pada antarmuka itu:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

Seharusnya tidak terlalu sulit untuk mengekstrak informasi yang Anda cari dari output ini.

Jika Anda memerlukan metode terprogram untuk mengakses data ini yang tidak bergantung pada output nmcli, informasi ini juga harus tersedia dari antarmuka D-Bus Network Manager.

James Henstridge
sumber
Terima kasih banyak, itu informasi yang bagus. Seharusnya cukup mudah untuk membuat skrip shell sederhana menggunakan nmcliperintah itu untuk membuat daftar berbagai parameter menarik. Mungkin saya bisa menyiapkan sesuatu yang bermanfaat dan berbagi di suatu tempat. Saya tidak benar-benar berpikir Network Manager diperlukan, dan saya kira mungkin ada cara alternatif bagi seseorang untuk melakukan ini, tetapi ini bekerja untuk saya.
Marty Fried
Nah, Anda dapat melihat bahwa server mendengarkan 127.0.0.1adalah contoh yang dnsmasqdimulai oleh Network Manager (lihat output dari sudo netstat -tlnp). Tetapi yang terbaik adalah memikirkan hal itu sebagai detail implementasi dan meminta Network Manager untuk informasi yang Anda inginkan, karena itu yang membuat keputusan di sini.
James Henstridge
Terima kasih telah memberikan informasi yang baik. Dan, terima kasih juga untuk mengedit pertanyaan saya - Saya akan mencoba untuk mengambil lebih banyak waktu di masa depan. :) Alasan saya adalah bahwa saya baru saja meng-upgrade ke 12,04, dan memadamkan api kecil di berbagai bidang. :)
Marty Fried
4
nmcli dev list ifacetidak bekerja untuk saya tetapi nmcli dev show[ubuntu 15,04]
Beni Cherniavsky-Paskin
10

Pengembang Ubuntu harus mendokumentasikan perubahan ini /etc/resolv.conf, tetapi belum.

Berikut adalah daftar perintah cepat untuk membuat Anda maju.

  1. Tampilkan server DNS saat ini

    nm-tool | grep DNS
    
  2. Tetapkan server DNS statis di /etc/dhcp/dhclient.conf. Tambahkan baris berikut, dan mulai kembali resolver lokal:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    Dari command prompt:

    invoke-rc.d network-manager restart
    
cmcginty
sumber
Beberapa dokumentasi lain: resolvconf (8), /usr/share/doc/resolvconf/README.gz.
jdthood
4

Sadarilah bahwa menggunakan nmcli mungkin tidak selalu memberi Anda jawaban lengkap. mis. jika Anda menggunakan openconnect (atau vpnc, mungkin) untuk memulai VPN, dan jika Anda memiliki paket resolvconf yang terinstal (untuk menjaga secara otomatis mengelola /etc/resolv.conf), Anda akan menemukan bahwa itu masih dapat secara otomatis memasukkan Pengaturan DNS VPN ke /etc/resolv.conf sebelum 127.0.0.1. Dalam keadaan ini, hanya memeriksa (misalnya) "nmcli -f daftar IP4 dev" tidak akan memberi Anda daftar DNS saat ini yang sebenarnya. Tidak yakin apakah skenario ini memengaruhi Anda, tetapi menganggapnya layak untuk disebutkan.

agd
sumber
Terima kasih atas info tambahannya; selalu baik untuk belajar lebih banyak. Untuk kasus penggunaan saya, saya tidak perlu khawatir tentang hal itu, karena saya hanya ingin tahu yang mana dari dua kemungkinan alamat DNS yang aktif.
Marty Fried
Jika Anda menggunakan manajer jaringan untuk terhubung ke VPN, perintah apa yang harus Anda berikan pada dns? Dns bekerja tetapi saya tidak dapat menemukannya.
Jorge Suárez de Lis