Adalah /etc/resolv.conf
tidak berguna di Ubuntu 12.04 LTS (Precise Pangolin)?
Saya melihat bahwa server DNS informasi yang disimpan di Libraries sekarang. The nmcli
command line tool bisa daftar itu untuk anda.
Jika saya ingin menambahkan satu lagi DNS server, akan menambahkannya ke /etc/resolv.conf
dengan menggunakan resolvconf
paket bantuan?
Jika /etc/resolv.conf
berisi nameserver 127.0.0.1
kemudian menambahkan file /etc/resolvconf/resolv.conf.d/ekor
tidak't benar-benar melakukan sesuatu yang berguna.
Jika anda menggunakan NetworkManager maka anda malah harus kita tambahkan alamat nameserver melalui jaringan indikator: Mengedit Koneksi... | Edit... | Pengaturan IPv4 | Tambahan DNS server.
Jika anda really ingin menambahkan lebih banyak file /etc/resolv.conf
, membuat /etc/resolvconf/resolv.conf.d/ekor
dan menambahkan mereka di sana.
Seperti halnya dengan setiap rilis Ubuntu, it's dianjurkan untuk membaca Ubuntu Catatan Rilis, tersedia di sini:
Desktop dan Infrastruktur Umum bagian berisi link untuk
Saya menemukan pendekatan lain di sini yang melibatkan menambahkan baris seperti berikut /etc/dhcp/dhclient.conf
:
prepend domain-name-servers x.x.x.x, y.y.y.y;
Demikian juga, saya menemukan pendekatan ketiga di sini yang melibatkan menambahkan baris ke /etc/network/interfaces
:
auto eth0
iface eth0 inet static
. . .
dns-nameservers 8.8.8.8 8.8.4.4
Update: Berikut adalah dokumentasi resmi untuk ketiga pendekatan.
Kedengarannya seperti anda berbicara tentang the resolvconf package.
Menginstal resolvconf paket.
Menjalankan
cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig #backup copy, always do this
sudo nano head
Bagian atas dari file adalah peringatan menakutkan. File /etc/resolv.conf adalah software otomatis dari isi dari file ini; peringatan yang ada sehingga akan diletakkan di /etc/resolv.conf ketika /etc/resolv.conf yang dihasilkan. Akhir dari file, add
nameserver <ip_of_nameserver>
Tekan Pilih x dan menjawab ya untuk menyimpan file. Untuk menyelesaikan, regenerasi /etc/resolv.conf agar perubahan diterapkan sekarang:
sudo resolvconf -u
Kemudian memeriksa isi dari /etc/resolv.conf untuk melihat garis anda menambahkan sekarang ada. Selanjutnya, masih akan ada waktu berikutnya anda mesin sepatu atau layanan jaringan anda di-restart, mana yang lebih dulu.
Di bawah ini saya akan menunjukkan kepada anda cara terbaik yang saya temukan sejak saya menjalankan Ubuntu Server edition dan menggunakan ifup daripada NetworkManager.
Sebenarnya bagi saya mereka membuat ini lebih mudah :) dengan menempatkan itu semua ke /etc/network/interfaces file. Konfigurasi yang sama bahwa anda akan menulis untuk resolv.conf sekarang dapat berada di file yang sama seperti adaptor jaringan konfigurasi seperti pada contoh di bawah ini:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 75.75.75.75 75.75.76.76
dns-search local
Saya berharap hal ini membantu anda dan membuatnya lebih mudah seperti itu untuk saya, sekarang kita bisa membuat alamat IP statis dan tambahkan nameserver dan dns domain semua dalam satu file :)
Saya menjalankan Ubuntu Server 12.04. Saya telah membuat perubahan berikut dan reboot server (biasanya hal ini dapat dilakukan dengan hanya membawa antarmuka jaringan, yaitu, ifdown eth0
atau ifup eth0
).
Di file /etc/resolvconf/resolv.conf.d/base
saya menambahkan entri berikut:
nameserver 8.8.8.8
nameserver 8.8.4.4
Saya berharap di atas membantu!
Anda dapat menggunakan NetworkManager seperti yang dinyatakan di Frank's jawaban, tetapi jika anda memilih untuk secara manual mengedit /etc/resolv.conf
, anda bisa melakukannya dengan menghapus it (it's benar-benar symlink) dan kemudian membuat yang baru polos file dengan konten yang anda inginkan. The resolvconf
utilitas hanya pernah menulis ke file /run/resolvconf/resolv.conf
.
Catatan: Ini jawaban untuk yang agak berbeda, pra-penggabungan versi dari Pertanyaan, dengan fokus hanya pada pra-pending yang diinginkan name-server.
Ini bekerja pra-12.04:
Edit /etc/dhcp3/dhclient.conf dan tambahkan :
prepend domain-name-servers 127.0.0.1;`
(Pada kenyataannya, garis ini sudah hadir ; semua yang perlu anda lakukan adalah un-komentar itu.)
resolvconf
adalah sia-sia. I'm pada server Linux dan saya alamat IP adalah statis dan saya DNS server yang statis. Saya tidak perlu resolvconf
atau Libraries.
Tetap sederhana adalah kebijakan saya ketika bekerja pada sebuah server. Kurang kompleksitas, mudah'll adalah untuk mengatur/memperbaiki ketika hal-hal istirahat.
Jadi saya melakukan aptitude purge resolvconf
dan manual yang dibuat yakin /etc/resolv.conf
isn't symlink dan buat sebuah file statis. Hanya dalam kasus sebuah program mencoba untuk mengubah file, yang saya lakukan chattr +i
(kekal) /etc/resolv.conf
sebagai tindakan pencegahan.
Sebagian besar di atas mengasumsikan anda telah murni sistem, tetapi kenyataannya adalah sering bahwa anda telah menginstal berbagai klien dhcp, cacat network manager dalam beberapa versi sebelumnya Ubuntu, dll. Mungkin ada baiknya untuk mengetahui hal-hal berikut. I've telah menggunakan dnsmasq untuk sementara, tapi deinstalled itu. Saat ini sistem saya telah mengikuti isi dari /etc/resolv.conf
(yang merupakan link simbolik ke /run/resolvconf/resolv.conf
pada sistem saya):
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
Itu doesn't peduli seberapa sering aku berlari sudo resolvconf -u
atau sudo dpkg-reconfigure resolvconf
, itu didn't update nameserver untuk orang-orang yang saya set di NetworkManager. Informasi resolvconf tidak menggunakan dari NetworkManager hadir:
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 8.8.8.8
Namun, ternyata untuk menjadi kasus bahwa jika ada beberapa file dalam direktori ini, file ini tidak dapat digunakan sama sekali. Pelakunya adalah file tidak dihapus dengan deinstallation dari dnsmasq:
cat /run/resolvconf/interface/lo.dnsmasq
nameserver 127.0.0.1
Hanya menghapus file ini (dan menjalankan sudo resolvconf -u
sesudahnya) soal dns saya masalah:
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 8.8.4.4
nameserver 8.8.8.8
Saya harap ini membantu orang lain dengan debugging (interaksi yang kompleks di antara semua jenis alat-alat jaringan) juga. Jika anda menggunakan resolvconf
pastikan untuk menjalankan ls /run/resolvconf/interfaces
untuk melihat apa yang's ada.
Anda dapat mengedit koneksi "AUTO ETH0" atau apapun nama yang anda gunakan untuk menghubungkan di NM. Anda dapat melakukan ini dengan mengklik kanan pada NM dan memilih "Edit Koneksi...". Pada tab IPv4 yang dapat anda pilih "Otomatis (DHCP) hanya alamat" seperti "Metode" dan NM akan memungkinkan anda untuk mengatur nameserver address(es) secara manual bahkan alamat yang disampaikan melalui DHCP.
Menambahkan sedikit saya sudah lama daftar, di sini's cara lain (diuji pada 12.04):
Edit /run/resolvconf/interface/NetworkManager
sesuai dengan kebutuhan anda. Berikut ini's contoh:
search foobar.com example.com
nameserver 192.168.1.1
Kemudian, seperti yang dinyatakan untuk sebagian besar contoh-contoh lain, melakukan sudo resolvconf -u
. Sekarang anda akan menemukan resolv.conf
tampak seperti ini:
nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com
Aku masih don't seperti cara itu's dilaksanakan sekarang (sepertinya Ubuntu membutuhkan layanan untuk setiap foo itu membuat), dan akan lebih memilih yang polos resolv.conf
untuk yakin. Tapi pendekatan ini tampaknya kompromi terbaik bagi saya sejauh ini. Ditambahkan "localhost-NS" tidak't menyakiti terlalu banyak.
Bagaimana tentang:
sudo dpkg-reconfigure resolvconf
Sebelum itu, menggunakan Network Manager untuk mengubah alamat DNS dan perubahan Metode untuk
Otomatis (DHPC) adresses hanya
Kemudian jalankan perintah di atas dan reboot. Bahwa apa solusi untuk saya.
Aku tetap ini dengan mengubah urutan sumber-sumber. Aku pindah dns
sumber sebelum mdns
di
/etc/nsswitch.conf
:
hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
Anda dapat menyimpan pengaturan anda dan masih menggunakan caching lokal server dengan cara ini.
vi /etc/network/interfaces
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The primary network interface
allow-hotplug eth0
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0 <<----- change this comment with the #
iface eth0 inet dhcp
Ini adalah pertanyaan yang sangat populer, dengan koleksi standar kemungkinan jawaban, yang, IMO, cukup hacky. Saya selalu punya masalah mendapatkan Ubuntu untuk menghormati pengaturan DNS saya set di NetworkManager -- khususnya pengaturan static DNS server dengan "Otomatis (DHCP) hanya alamat" - dan hari ini saya akhirnya tahu apa yang SEBENARNYA SALAH.
Masalahnya adalah dalam interaksi antara resolvconf dan NetworkManager. resolvconf memiliki file ini disebut /etc/resolvconf/interface-order
. Setidaknya pada sistem saya, NetworkManager isn't file ini di semua (kecuali bahwa itu's ditutupi oleh * kartu liar di akhir). Jadi apa yang terjadi adalah, dhclient's laporan terbaru untuk resolvconf mengambil didahulukan atas sesuatu yang Lain telah katakan.
Dengan demikian, setidaknya dalam kasus saya, jawaban yang sebenarnya adalah untuk menambah
NetworkManager
di atau dekat bagian atas dari /etc/resolvconf/interface-order
.
(Ya, saya tahu banyak orang hanya mengatakan, "uninstall resolvconf", yang tampaknya seperti ide yang buruk dalam dan dari dirinya sendiri, untuk saya. Tapi lebih dari itu, setidaknya wily dan xenial mempertimbangkan resolvconf bagian penting dari sistem [yaitu, ubuntu-minimal tergantung pada hal itu], jadi itu akan sulit untuk menjaga sistem anda secara konsisten, diperbarui negara tanpa resolvconf.)
<menyerang>Atas permintaan saya dapat memberikan lebih banyak detail tentang bagaimana saya tahu ini.</strike> (**EDIT**: ternyata aku tak't melakukannya ketika diminta, maaf. Pada titik ini saya don't ingat jauh lebih detail dari apa yang saya katakan selanjutnya:) singkatnya, saya diganti resolvconf eksekusi dengan shell pembungkus yang dibuang argumen, input, output dan stderr ke file; dan menambahkan set-x untuk resolvconf's update script.(EDIT: I ** bisa mengatakan bahwa apa yang saya maksud dengan bagian pertama adalah bahwa saya menggunakan sudo untuk memindahkan sebenarnya resolvconf executable, yang bisa ditemukan dengan menggunakan perintah yang atau jenis perintah. Kemudian buat sebuah skrip shell yang pada akhirnya hanya mengeksekusi pindah resolvconf, tetapi juga echos argumen untuk beberapa file, dan menggunakan shell pengalihan untuk mengirim stdin, stdout, dan stderr ke berbagai file lainnya. Saya don't ingat di mana "resolvconf's update script" dan't saat ini dengan mudah memeriksa. Saya pikir banyak Linux geeks dapat mencari tahu apa yang saya maksud, mungkin beberapa orang samaria yang baik hati akan memberikan lebih rinci dalam komentar.)
Cara lain adalah untuk menentukan docker spesifik dns server pada:
/etc/docker/daemon.json
Jika anda don't memiliki file tersebut, hanya membuat hal:
{
"dns": ["1.1.1.1", "1.0.0.1"]
}
Untuk mengubah DNS, ikuti petunjuk dalam: https://developers.google.com/speed/public-dns/docs/using
Pergi ke Jaringan
Pilih koneksi yang anda ingin mengkonfigurasi DNS.
Untuk mengubah pengaturan untuk koneksi nirkabel, pilih tab Wireless, kemudian pilih jaringan nirkabel yang sesuai.
Klik panah (kanan), dan di jendela yang muncul, pilih Pengaturan IPv4 atau IPv6 Pengaturan tab.
Jika metode yang dipilih adalah Otomatis (DHCP), membuka dropdown dan pilih Automatic (DHCP) hanya alamat sebaliknya. Jika metode ini diatur ke sesuatu yang lain, jangan mengubahnya.
Di bidang DNS server, masukkan DNS alamat IP, yang dipisahkan oleh koma
/etc/resolv.conf
.nameserver 1.1.1.1 nameserver 1.0.0.1
sudo apt-get install -y resolvconf
/etc/resolvconf/resolv.conf.d/ekor
nameserver 1.1.1.1 nameserver 1.0.0.1
reboot