Mengapa file resolv.conf saya diregenerasi setiap waktu?

17

/etc/resolv.confFile saya dibuat ulang setiap kali, membuat saya kehilangan server DNS Google ketika saya menghubungkan kembali modem 3G saya.

Untuk mengubah pengaturan DNS, saya melihat http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html .

Saya dhclient.confcukup besar (58 baris), jadi saya mempostingnya di pastebin .

Namun, inilah keseluruhannya dhclient.conftanpa baris komentar atau baris kosong:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;

Saya menggunakan wvdialbukannya Network Manager.

Jakh Saidlikp
sumber
Sayangnya, saya tidak tahu apa-apa wvdial. Pada titik ini saya mencurigai atau paket lain yang belum ditemukan terlibat di sini. Apakah Anda tahu jika Anda telah menginstal aplikasi atau alat lain yang berhubungan dengan jaringan yang mungkin menyentuh DNS, DHCP, antarmuka, dll. Dalam beberapa cara?
belacqua
kemungkinan duplikat dari konfigurasi server DNS selalu diubah secara otomatis
belacqua

Jawaban:

6

Dalam 12,04, resolvconf diinstal secara default. Berikut ini ringkasan singkat cara membuat perubahan konfigurasi DNS untuk beberapa kasus penggunaan umum:

Untuk konfigurasi statis menggunakan ifup, gunakan dns-nameserversdan dns-searchentri dalam /etc/network/interfaces.

Untuk menggunakan konfigurasi statis NetworkManager, pilih Automatic (DHCP) addresses only Methoddan masukkan alamat dan nama domain di bidang Additional DNS serversdan Additional search domainsdi Editor Koneksi.

Untuk mengganti konfigurasi default resolvconf, gunakan base, headdan taildalam /etc/resolvconf/resolv.conf.d/. Masukkan alamat dan nama domain hanya dalam file-file ini sebagai tindakan sementara, karena mereka benar-benar milik tempat lain, seperti dijelaskan di atas.

Menonaktifkan resolvconf tidak disarankan, tetapi Anda dapat mengganti symlink /etc/resolv.confdengan file biasa.

Untuk informasi lebih lanjut, lihat posting blog Stéphane Graber .

Robie Basak
sumber
4

Jika semua yang ingin Anda lakukan adalah menjaga server DNS Google Anda di resolv.conf, Anda dapat mengedit
/etc/dhcp3/dhclient.confdan menambahkan:

prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;

Satu-satunya perbedaan antara apa yang Anda miliki dan apa yang saya tunjukkan di sini adalah bahwa Anda memiliki kedua server nama pada satu baris, sesuai dengan dokumen yang Anda sebutkan.

Kecuali saya melewatkan sesuatu, dhclient.conf Anda tidak menjadi masalah di sini. Pada titik ini, saya berasumsi bahwa masalah ini berkaitan dengan wvdial.

Ini ada sesuatu yang bisa dicoba, dari ubuntuforums :

gksudo gedit /etc/ppp/peers/wvdial

HAPUS parameter pengguna dan simpan file. Kode:

gksudo gedit /etc/wvdial.conf

tambahkan baris ini:

check DNS = no
auto DNS = no
belacqua
sumber
@ jgbelacqua saya mencobanya dalam garis tombak tetapi tidak berhasil: P
Jakh Saidlikp
@ Jakh Saya berasumsi bahwa memindahkan garis prepend lebih dekat ke atas juga gagal? (Beginilah caranya mengatur milik saya.)
belacqua
@ jgbelacqua ya saya mencobanya juga ya;]
Jakh Saidlikp
@ Jakh - sudahkah Anda mencoba mengedit request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;baris untuk menghapus server nama di sana?
belacqua
@jgbelacqu Jangan sakit coba sekarang dan biarkan Anda tahu
Jakh Saidlikp
4

Cara terbaik untuk menetapkan server nama melalui CLI, tanpa NetworkManger, dengan alamat statis, atau terlepas dari koneksi adalah ini:

Instal paket resolvconf .

Lari

sudo nano /etc/resolvconf/resolv.conf.d/head

(abaikan peringatan menakutkan. /etc/resolv.conf di-autogenerasi, jadi ada peringatan di sana sehingga akan dimasukkan ke /etc/resolv.conf ketika /etc/resolv.conf dibuat.) Di akhir file, Menambahkan

 nameserver <ip_of_nameserver>

Tekan Ctrl xdan jawab ya untuk menyimpan file. Untuk menyelesaikan, regenerasi /etc/resolv.conf agar perubahan diterapkan sekarang:

 sudo resolvconf -u
Azendale
sumber
Harus ditambahkan bahwa umumnya bukan ide yang baik untuk memasukkan alamat server nama statis di resolv.conf. Silakan baca /usr/share/doc/resolvconf/README.gz.
jdthood
0

Anda bisa mengatur domain-name-serversopsi dhclient.conf.

Adam Byrtek
sumber
periksa pastebinnya - sepertinya dia sudah memiliki ini.
belacqua
Terima kasih, saya tidak menyadarinya. Ngomong-ngomong, solusi Anda mungkin benar, jadi pertimbangkan untuk mempostingnya sebagai jawaban dan bukan komentar.
Adam Byrtek
halo @adam, bisakah kamu lebih jelas lagi a noob:] terima kasih
Jakh Saidlikp
0

Saya menyelesaikan masalah yang sama dengan perintah berikut:

echo "nameserver 212.217.0.1" >> /etc/resolvconf/resolv.conf.d/head
ln -s /etc/resolvconf/resolv.conf.d/head /etc/resolv.conf
resolvconf -u
/etc/init.d/networking restart
moha
sumber
1
Anda mungkin telah menyelesaikan masalah dengan cara ini, tetapi ini adalah kesalahan konfigurasi. Anda akhirnya symlinking /etc/resolv.conf ke file statis yang merupakan salah satu file konfigurasi resolvconf. Jika Anda ingin menonaktifkan resolvconf maka akan jauh lebih sederhana hanya dengan menghapus symlink /etc/resolv.conf dan meletakkan file statis di sana.
jdthood
-1

Anda mungkin sudah menginstal paket resolvconf. dalam hal ini, setiap kali sebuah antarmuka muncul, resolv.conf diperbarui. Anda dapat menambahkan entri statis menggunakan file /etc/resolv.conf.tail, lihat halaman manual untuk resolv.conf untuk informasi lebih lanjut.

eFloh
sumber
noo saya tidak menginstal paket itu
Jakh Saidlikp
Program resolvconf memperbarui /etc/resolv.conf, tetapi hanya jika /etc/resolv.conf adalah tautan simbolis ke ../run/resolvconf/resolv.conf. Paket resolvconf diperkenalkan karena begitu banyak program lain yang menginjak /etc/resolv.conf secara independen satu sama lain, mengakibatkan kekacauan. Silakan baca /usr/share/doc/resolvconf/README.gz. Jadi dari fakta bahwa /etc/resolv.conf telah diperbarui, tidak mengikuti (pada bulan Maret 2011 ketika pertanyaan diajukan) bahwa resolvconf telah diinstal. Lebih mungkin pppd sedang menulis ulang file. (Tetapi pada Ubuntu 12.04, resolvconf adalah bagian dari sistem dasar.)
jdthood
-1

Saya memiliki masalah yang sama persis, server DNS yang disediakan penyedia seluler saya agak buruk sehingga saya ingin menggunakan DNS Google. NetworkManager juga melakukan pekerjaan yang sangat buruk dalam menangani koneksi broadband selulerwvdial merupakan suatu keharusan.

Ternyata itu /etc/resolv.confadalah tautan simbolis ubuntu 12.10dan bahkan mungkin 12.04. Inilah yang saya lakukan sudo unlink /etc/resolv.confsetelah ini Anda dapat membuat baru resolv.confdenganvim atau editor pilihan Anda dan menambahkan server nama google atau server nama lain yang Anda inginkan. Simpan itu dan Anda selesai.

Jika Anda takut merusak sesuatu, Anda dapat membuat catatan tentang symlink yang ada dengan melakukan ls -la /etc/resolv.confsebelumnyaunlinking .

Semoga ini bisa membantu.

nikhil
sumber
@Downvoter, peduli untuk berkomentar. Jika jawaban saya benar-benar saran yang buruk saya akan dengan senang hati menghapusnya. Tolong, beri tahu saya apa yang saya lakukan salah. Terima kasih
nikhil