Apakah /etc/resolv.conf
tidak berguna di Ubuntu 12,04 LTS (Precise Pangolin)?
Saya melihat bahwa informasi server DNS disimpan di NetworkManager sekarang. The nmcli
alat baris perintah bisa daftar itu untuk Anda.
Jika saya ingin menambahkan satu lagi server DNS , apakah akan menambahkannya /etc/resolv.conf
dengan menggunakan resolvconf
bantuan paket?
resolv.conf
PnotNP
sumber
sumber
nm-tool
, bukannmcli
.Jawaban:
Jika
/etc/resolv.conf
mengandungnameserver 127.0.0.1
kemudian menambahkan entri ke/etc/resolvconf/resolv.conf.d/tail
tidak akan benar-benar melakukan sesuatu yang bermanfaat.Jika Anda menggunakan NetworkManager maka Anda harus bukannya statis menambahkan alamat nameserver melalui indikator jaringan : Mengedit Koneksi ... | Edit ... | Pengaturan IPv4 | Server DNS tambahan .
Jika Anda benar - benar ingin menambahkan lebih banyak entri
/etc/resolv.conf
, buat/etc/resolvconf/resolv.conf.d/tail
dan tambahkan di sana.Seperti setiap rilis Ubuntu, disarankan untuk membaca Catatan Rilis Ubuntu, tersedia di sini:
Bagian Desktop dan Infrastruktur Umum berisi tautan ke
sumber
/etc/resolvconf/resolv.conf.d/tail
file atau menggunakan Network Manager? Terima kasih.dns-nameservers
ke bagian eth0 Anda di/etc/network/interfaces
./etc/resolvconf/update.d/libc
pada server Ubuntu 14.04.1:# Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
(atur sesuai keinginan/etc/default/resolvconf
, sebagai/etc/resolvconf/update.d/libc
pertunjukan baris 23 & 24Saya menemukan pendekatan lain di sini yang melibatkan penambahan baris seperti di bawah ini ke
/etc/dhcp/dhclient.conf
:Demikian juga, saya menemukan pendekatan ketiga di sini yang melibatkan penambahan baris ke
/etc/network/interfaces
:Pembaruan: Ini adalah dokumentasi resmi untuk pendekatan ketiga.
sumber
third approach
sejauh ini merupakan cara paling sederhana untuk melakukan ini./etc/resolvconf/resolv.conf.d/head
(setelah mengatasi komentar "JANGAN EDIT" yang menyesatkan di sana :))Sepertinya Anda berbicara tentang paket resolvconf.
Instal paket resolvconf .
Lari
Bagian atas file adalah peringatan yang menakutkan. File /etc/resolv.conf di-autogenerasi dari konten file ini; peringatan ada di sana sehingga akan dimasukkan ke /etc/resolv.conf ketika /etc/resolv.conf dibuat. Di akhir file, tambahkan
Tekan Ctrl xdan jawab ya untuk menyimpan file. Untuk menyelesaikan, regenerasi /etc/resolv.conf agar perubahan diterapkan sekarang:
Kemudian periksa isi /etc/resolv.conf untuk melihat baris yang Anda tambahkan sekarang ada di sana. Lebih lanjut, itu masih akan ada di sana saat mesin Anda dinyalakan atau layanan jaringan Anda dihidupkan ulang, mana yang lebih dulu.
sumber
Di bawah ini saya akan menunjukkan kepada Anda cara terbaik yang saya temukan sejak saya menjalankan edisi Ubuntu Server dan menggunakan ifup daripada NetworkManager.
Sebenarnya bagi saya mereka membuat ini lebih mudah :) dengan memasukkan semuanya ke file / etc / network / interfaces. Konfigurasi yang sama yang akan Anda tulis ke resolv.conf sekarang dapat berada di file yang sama dengan konfigurasi adaptor jaringan Anda seperti dalam contoh di bawah ini:
Saya harap ini membantu dan membuatnya lebih mudah seperti bagi saya, sekarang kita dapat membuat alamat IP statis dan menambahkan nameserver dan domain dns semua dalam satu file :)
sumber
Milik saya menjalankan Ubuntu Server 12.04. Saya telah membuat perubahan berikut dan me-reboot server (biasanya ini bisa dilakukan dengan hanya menjatuhkan antarmuka jaringan, yaitu,
ifdown eth0
atauifup eth0
).Dalam file
/etc/resolvconf/resolv.conf.d/base
saya menambahkan entri berikut:Saya harap bantuan di atas!
sumber
Anda dapat menggunakan NetworkManager sebagaimana dinyatakan dalam jawaban Frank, tetapi jika Anda lebih suka mengedit secara manual
/etc/resolv.conf
, Anda dapat melakukannya dengan menghapusnya (itu sebenarnya symlink) dan kemudian membuat file polos baru dengan konten yang Anda inginkan. Theresolvconf
utilitas hanya pernah menulis ke file/run/resolvconf/resolv.conf
.sumber
Catatan: Jawaban ini untuk versi Pertanyaan awal yang agak berbeda, dengan fokus hanya pada pra-pending server nama yang diinginkan.
Ini berfungsi sebelum 12.04:
Edit
/etc/dhcp3/dhclient.conf
dan tambahkan:prepend domain-name-servers 127.0.0.1;
(Sebenarnya, baris ini sudah ada; yang perlu Anda lakukan adalah jangan berkomentar.)
sumber
man dhclient.conf
untuk mengakses halaman manual dhclient. (Ini bukan jawaban untuk pertanyaan Azendale.)resolvconf
tidak berguna. Saya berada di server Linux dan alamat IP saya statis dan server DNS saya statis. Saya tidak perluresolvconf
atau NetworkManager .Menjaga agar tetap sederhana adalah kebijakan saya ketika bekerja di server. Semakin sedikit kerumitan, semakin mudah untuk mengelola / memperbaiki ketika hal-hal rusak.
Jadi saya lakukan
aptitude purge resolvconf
dan secara manual memastikan/etc/resolv.conf
bukan symlink dan baru saja membuat file statis. Kalau-kalau suatu program mencoba untuk mengubah file, saya lakukanchattr +i
( tidak berubah)/etc/resolv.conf
sebagai tindakan pencegahan.sumber
Sebagian besar di atas menganggap Anda memiliki sistem yang masih asli, tetapi kenyataannya sering kali Anda telah menginstal klien dhcp yang berbeda, menonaktifkan manajer jaringan di versi Ubuntu tertentu sebelumnya, dll. Mungkin bermanfaat untuk mengetahui hal berikut. Saya telah menggunakan dnsmasq untuk sementara waktu, tetapi menghapusnya. Saat ini sistem saya memiliki konten berikut
/etc/resolv.conf
(yang merupakan tautan simbolis ke/run/resolvconf/resolv.conf
sistem saya):Tidak masalah seberapa sering saya menjalankan
sudo resolvconf -u
atausudo dpkg-reconfigure resolvconf
, itu tidak memperbarui server nama dengan yang saya atur di NetworkManager. Informasi resolvconf yang digunakan dari NetworkManager hadir:Namun, ternyata menjadi kasus bahwa jika ada beberapa file dalam direktori ini, file ini mungkin tidak digunakan sama sekali. Pelakunya adalah file yang tidak dihapus dengan deinstallation dari dnsmasq:
Hanya menghapus file ini (dan menjalankannya
sudo resolvconf -u
setelah itu) memecahkan masalah dns saya:Saya harap ini membantu orang lain dengan debugging (interaksi kompleks antara semua alat jaringan yang berbeda ini) juga. Jika Anda menggunakan
resolvconf
pastikan untuk larils /run/resolvconf/interfaces
untuk melihat apa yang ada di sana.sumber
/run/resolvconf/interface/
direktori, tetapiNetworkManager
file saya membutuhkan beberapa cinta. Jawaban Anda membantu menyelesaikan masalah ini untuk saya.Saya baru saja menghapus tautan
/etc/resolv.conf
dan membuat file reguler dengan alamat server nama. Ini berfungsi, dan saya tidak melihat alasan untuk menggunakan konstruksi yang agak aneh yang telah dibuat oleh pengembang Ubuntu.sumber
Anda dapat mengedit koneksi "AUTO ETH0" atau apa pun namanya yang Anda gunakan untuk terhubung di NM. Anda dapat melakukan ini dengan mengklik kanan pada NM dan memilih "Edit Koneksi ...". Pada tab IPv4 Anda dapat memilih "Otomatis (DHCP) hanya" sebagai "Metode" dan NM akan memungkinkan Anda untuk mengatur alamat server nama secara manual bahkan alamat dikirim melalui DHCP.
sumber
Menambahkan bit saya ke daftar yang sudah lama, inilah cara lain (diuji pada 12.04):
Sunting
/run/resolvconf/interface/NetworkManager
agar sesuai dengan kebutuhan Anda. Ini sebuah contoh:Kemudian, sebagaimana dinyatakan untuk sebagian besar contoh lainnya, lakukan a
sudo resolvconf -u
. Sekarang Anda akan menemukanresolv.conf
penampilan Anda seperti ini:Saya masih tidak suka cara itu diterapkan sekarang (tampaknya Ubuntu membutuhkan layanan untuk setiap foo yang dibuatnya), dan pasti lebih memilih yang jelas
resolv.conf
. Namun pendekatan ini tampaknya merupakan kompromi terbaik bagi saya sejauh ini. "Localhost-NS" yang ditambahkan seharusnya tidak terlalu menyakitkan.sumber
Saya memperbaikinya dengan mengubah urutan sumber. Saya memindahkan
dns
sumber sebelumnyamdns
di/etc/nsswitch.conf
:Anda dapat menyimpan pengaturan Anda dan masih menggunakan server caching lokal dengan cara ini.
sumber
Bagaimana tentang:
Sebelum itu, gunakan Network Manager untuk mengubah alamat DNS dan ubah Metode ke
Kemudian jalankan perintah di atas dan reboot. Itu solusi bagi saya.
sumber
sumber
Ini adalah pertanyaan yang sangat populer, dengan sekumpulan jawaban standar yang mungkin, yang semuanya, IMO, cukup simpel. I untuk satu selalu memiliki masalah untuk mendapatkan Ubuntu untuk menghormati pengaturan DNS yang saya atur di NetworkManager - khususnya pengaturan server DNS statis dengan "Otomatis (DHCP) hanya alamat" - dan hari ini saya akhirnya menemukan apa yang SANGAT SALAH.
Masalahnya adalah dalam interaksi antara resolvconf dan NetworkManager. resolvconf membuat file ini dipanggil
/etc/resolvconf/interface-order
. Setidaknya pada sistem saya, NetworkManager sama sekali tidak ada dalam file ini (kecuali bahwa itu ditutupi oleh * wild card di akhir). Jadi yang terjadi adalah, laporan terbaru dhclient ke resolvconf lebih diutamakan daripada apa yang dikatakan NetworkManager.Jadi, setidaknya dalam kasus saya, jawaban sebenarnya adalah menambahkan
di atau dekat bagian atas
/etc/resolvconf/interface-order
.(Ya, saya tahu banyak orang hanya mengatakan "uninstall resolvconf", yang sepertinya merupakan ide yang buruk, bagi saya. Tetapi lebih dari itu, setidaknya cerdik dan ramah menganggap resolvconf bagian penting dari sistem [yaitu, ubuntu -minimal tergantung padanya], jadi akan sulit untuk menjaga sistem Anda dalam keadaan yang konsisten dan diperbarui tanpa resolvconf.)
Atas permintaan saya dapat memberikan detail lebih lanjut tentang bagaimana saya menemukan ini.( EDIT : ternyata saya tidak melakukannya ketika diminta, maaf. Pada titik ini saya tidak ingat lebih detail dari apa yang saya katakan selanjutnya :) Singkatnya, saya mengganti resolvconf yang dapat dieksekusi dengan pembungkus shell di sekitarnya yang membuang argumen, input, output dan stderr ke file; dan menambahkan set -x ke skrip pembaruan resolvconf.( EDIT : Saya dapat mengatakan bahwa apa yang saya maksud dengan bagian pertama adalah bahwa saya menggunakan sudo untuk memindahkan resolvconf aktual yang dapat dieksekusi, yang dapat ditemukan menggunakan perintah yang mana atau jenis perintah. Kemudian buat skrip shell yang pada akhirnya hanya menjalankan perintah yang dipindahkan resolvconf, tetapi juga menggemakan argumen ke beberapa file, dan menggunakan pengalihan shell untuk mengirim stdin, stdout, dan stderr ke berbagai file lainnya. Saya tidak ingat di mana "skrip pembaruan resolvconf" adalah dan saat ini tidak dapat dengan mudah memeriksa. banyak Geeks Linux yang bisa mengerti apa yang saya maksud; mungkin beberapa samaritan yang baik akan memberikan lebih detail dalam komentar.)
sumber
Cara lain adalah mendefinisikan server dns server khusus di:
Jika Anda tidak memiliki file seperti itu, buat saja:
Sumber: https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Juga, lihat: https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
sumber
Untuk mengubah DNS, ikuti instruksi di: https://developers.google.com/speed/public-dns/docs/using
Pergi ke Jaringan
Pilih koneksi yang Anda inginkan untuk mengkonfigurasi DNS.
Untuk mengubah pengaturan koneksi nirkabel, pilih tab Wireless, lalu pilih jaringan nirkabel yang sesuai.
Klik panah (kanan), dan di jendela yang muncul, pilih tab Pengaturan IPv4 atau Pengaturan IPv6.
Jika metode yang dipilih adalah Otomatis (DHCP), buka dropdown dan pilih alamat Otomatis (DHCP) saja. Jika metode ini diatur ke sesuatu yang lain, jangan mengubahnya.
Di bidang Server DNS, masukkan alamat IP DNS, dipisahkan dengan koma
sumber
0.Tambahkan DNS sementara. Edit /etc/resolv.conf.
1. Instal atau perbarui resolvconf.
2. Tambahkan nameserver Anda ke /etc/resolvconf/resolv.conf.d/tail
3. Boot ulang mesin Anda.
sumber