Bagaimana cara menghapus server nama localhost dari resolv.conf

10

Saat ini saya /etc/resolv.confmembaca:

nameserver 127.0.0.1  
nameserver 10.255.0.101  
nameserver 10.255.0.11  

dan saya ingin itu membaca:

search [my domain]  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
nameserver 208.67.222.222  
nameserver 208.67.220.220  

Karena keduanya /etc/resolv.confdan /etc/resolv.conf.d/headtidak dapat diedit dengan tangan, bagaimana saya bisa melakukan perubahan ini?

pengguna217676
sumber
Lihat askubuntu.com/a/208027/15811 untuk penjelasan tentang cara menggunakan ini.
Rinzwind

Jawaban:

7

Pertama, /etc/resolvconf/resolv.conf.d/head bisa diedit dengan tangan. Komentar dalam file yang mengatakan DO NOT EDIT THIS FILE BY HANDtidak berlaku untuk /etc/resolvconf/resolv.conf.d/headdirinya sendiri tetapi untuk /etc/resolv.conf, yang sebelumnya dituliskan sebelumnya.

Namun demikian, dalam keadaan normal Anda tidak perlu mengedit /etc/resolvconf/resolv.conf.d/head.

File-file /etc/resolvconf/resolv.conf.d/headdan /etc/resolvconf/resolv.conf.d/taildisediakan sebagai cara memaksa kepala dan ekor ke yang dihasilkan resolv.confharus diperlukan dalam keadaan luar biasa, tetapi jika Anda menggunakan resolvconf dengan benar dan dalam keadaan normal maka Anda tidak harus melakukan ini.

Anda mengatakan bahwa konten file adalah

nameserver 127.0.0.1
nameserver 10.255.0.101
nameserver 10.255.0.11

Kehadiran baris nameserver 127.0.0.1menunjukkan bahwa Anda menjalankan server nama penerusan lokal seperti dnsmasq. File di atas bukanlah yang biasanya dihasilkan resolvconf dalam keadaan ini. Biasanya menghasilkan file seperti berikut.

# 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
search foo.com

Dugaan saya adalah bahwa pada sistem Anda /etc/resolv.confbukan tautan simbolis ../run/resolvconf/resolv.conftetapi file polos yang mungkin atau mungkin tidak dihasilkan oleh sesuatu selain resolvconf. Jika file benar-benar statis maka cukup edit sehingga terlihat seperti yang Anda inginkan. Jika file dihasilkan oleh beberapa alat selain resolvconf, cari tahu alat apa yang menghasilkan file dan konfigurasikan alat itu.

Atau, kembalikan tautan simbolik /etc/resolv.conf -> ../run/resolvconf/resolv.confdan konfigurasikan resolvconf dengan benar.

Bagaimana cara menghapus server nama localhost dari resolv.conf?

Instruksi berikut hanya berlaku untuk kasus di mana Anda menggunakan resolvconf untuk mengelola /etc/resolv.conf, yaitu /etc/resolv.conftautan simbolis ../run/resolvconf/resolv.conf.

Jika baris nameserver 127.0.0.1ada di salah satu file di /etc/resolvconf/resolv.conf.d/kemudian hapus dari sana.

Kalau tidak, baris itu berasal dari beberapa server nama yang berjalan secara lokal. Baik instal nameserver itu atau konfigurasikan nameserver itu untuk tidak mendaftarkan alamat 127.0.0.1 dengan resolvconf. Secara khusus, jika Anda menjalankan BIND 9 bernama lokal, baik menghapus atau set RESOLVCONF=nodi /etc/default/bind9.

Ref: https://bugs.launchpad.net/debian/+source/bind9/+bug/933723

jdthood
sumber
2

Mencoba

sudo vi /run/resolvconf/interface/NetworkManager

Hapus atau ganti server nama 127.0.0.1, lalu gunakan

sudo resolvconf -u.
Mitre Slavchev
sumber
1

Periksa konfigurasi NetworkManager Anda:

sudo NetworkManager --print-config

jika ada

dns=systemd-resolved

lalu edit pengaturan di

/run/resolvconf/interface/systemd-resolved

dan perbarui

sudo resolvconf -u

Dalam kasus saya ada juga

/run/resolvconf/interface/tun0.openvpn

file (dibuat oleh OpenVPN) yang dapat dihapus dengan aman untuk menghindari gangguan:

sudo rm /run/resolvconf/interface/tun0.openvpn
Valery Markov
sumber