Saya yakin jika Anda ingin mengganti server nama DNS, Anda cukup menambahkan baris yang mirip dengan ini di base
Anda file di bawah resolv.conf.d
.
Contoh
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Kemudian masukkan daftar server nama Anda seperti ini:
nameserver 8.8.8.8
nameserver 8.8.4.4
Terakhir perbarui resolvconf
:
$ sudo resolvconf -u
Jika Anda melihat halaman manual untuk resolvconf
itu menjelaskan berbagai file di bawah /etc/resolvconf/resolv.conf.d/
.
/etc/resolvconf/resolv.conf.d/base
File containing basic resolver information. The lines in this
file are included in the resolver configuration file even when no
interfaces are configured.
/etc/resolvconf/resolv.conf.d/head
File to be prepended to the dynamically generated resolver
configuration file. Normally this is just a comment line.
/etc/resolvconf/resolv.conf.d/tail
File to be appended to the dynamically generated resolver
configuration file. To append nothing, make this an empty
file. This file is a good place to put a resolver options line
if one is needed, e.g.,
options inet6
Padahal ada peringatan di bagian atas head
berkas:
$ cat /etc/resolvconf/resolv.conf.d/head
# 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
peringatan ini ada sehingga ketika file-file ini dibuat, peringatan tersebut pada akhirnya akan masuk ke resolv.conf
yang dihasilkan file yang akan digunakan untuk membuat file-file ini. Jadi Anda bisa dengan mudah menambahkan nameserver
baris yang dijelaskan di atas untuk base
file, ke head
file juga.
Referensi
- Pertahankan server nama dns untuk ubuntu 14.04
- Bagaimana cara menambahkan server DNS melalui resolv.conf?
Saya juga tertarik dengan pertanyaan ini dan saya mencoba solusi yang diajukan @sim.
Untuk mengujinya, saya taruh
nameserver 8.8.8.8
di /etc/resolvconf/resolv.conf.d/base
dan
nameserver 8.8.4.4
di /etc/resolvconf/resolv.conf.d/head
Kemudian saya memulai ulang jaringan dengan
sudo service network-manager restart
Hasilnya adalah /etc/resolv.conf
sepertinya
# 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 127.0.1.1
dan nm-tool
menyatakan bahwa dnsserver adalah
DNS: 208.67.222.222
DNS: 208.67.220.220
mana yang disediakan oleh router saya. Di sisi lain, menggali alamat menunjukkan hal itu
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
Jika saya benar, saya menyimpulkan dari semua ini bahwa
- hanya bagian "head" yang dibaca oleh resolvonf:bagian "base" entah bagaimana dikendalikan oleh dnsmasq
- dnsserver sebenarnya dipaksa ke8.8.4.4 terlepas dari server yang disediakan oleh dhcp, TETAPI Anda kehilangan caching yang disediakan oleh dnsmasq, karena permintaan selalu dikirim ke 8.8.4.4
- dnsmasq masih HANYA menggunakan dnsserver yang disediakan oleh dhcp.
Secara keseluruhan, ini berfungsi tetapi menurut saya itu bukan hasil yang diinginkan. Solusi yang lebih dekat menurut saya adalah sebagai berikut. Sunting
sudo vim /etc/dhcp/dhclient.conf
lalu tambahkan
supersede domain-name-servers 8.8.8.8;
Hasilnya adalah sebagai berikut:resolv.conf hanya berisi 127.0.0.1, yang berarti cache dnsmasq dipanggil dan kata nm-tool
DNS: 8.8.8.8
yang artinya jika nama yang dicari tidak ada di cache, maka diminta di 8.8.8.8 dan bukan di server yang disediakan dhcp.
Opsi lain (mungkin lebih baik) adalah menggunakan "prepend" daripada "menggantikan":dengan cara ini, jika nama tidak diselesaikan oleh 8.8.8.8, maka permintaan akan jatuh kembali ke server lain. Faktanya, kata nm-tool
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220
Saya menemukan bahwa Anda dapat mengubah server nama yang dnsmasq
gunakan dengan menambahkan baris berikut ke /etc/dnsmasq.conf
:
server=8.8.8.8
server=8.8.4.4
Saya tidak memiliki /etc/dnsmasq.conf
file, karena diinstal oleh paket dnsmasq, tetapi Ubuntu hanya dilengkapi dengan dnsmasq-base. Saya menjalankan sudo apt-get install dnsmasq
, lalu edit /etc/dnsmasq.conf
, lalu sudo service dnsmasq restart
dan sudo service network-manager restart
.
Saya menjalankan sudo tail -n 200 /var/log/syslog
untuk memeriksa syslog saya dan memverifikasi bahwa dnsmasq
menggunakan server nama yang saya tentukan:
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53