Sebagian besar info yang saya lihat online mengatakan untuk mengedit /etc/resolv.conf
, tetapi setiap perubahan yang saya lakukan di sana baru saja diganti.
$ 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.1.1
Tampaknya 127.0.1.1 adalah turunan lokal dari dnsmasq
. The dnsmasq
docs mengatakan untuk mengedit /etc/resolv.conf
. Saya mencoba memasukkan server nama kustom /etc/resolv.conf.d/base
, tetapi perubahan tidak muncul /etc/resolv.conf
setelah berjalan sudo resolvconf -u
.
FYI, saya tidak ingin mengubah DNS pada basis per koneksi, saya ingin mengatur pengaturan DNS default untuk digunakan untuk semua koneksi saat tidak ditentukan.
MEMPERBARUI:
Saya menjawab pertanyaan ini sendiri: https://unix.stackexchange.com/a/163506/67024
Saya pikir itu solusi terbaik karena:
- Berhasil.
- Ini membutuhkan paling sedikit perubahan dan
- Itu masih bekerja bersama dengan cache DNS dnsmasq, daripada mem-bypassnya.
dns=none
di/etc/NetworkManager/NetworkManager.conf
(lihat detail di jawaban saya di bawah).Jawaban:
Saya percaya jika Anda ingin mengganti server nama DNS Anda hanya menambahkan baris yang mirip dengan ini di
base
file Anda di bawahresolv.conf.d
.Contoh
Kemudian masukkan daftar server nama Anda seperti ini:
Akhirnya perbarui
resolvconf
:Jika Anda melihat halaman manual untuk
resolvconf
menjelaskan berbagai file di bawah/etc/resolvconf/resolv.conf.d/
.Meskipun ada peringatan di bagian atas
head
file:peringatan ini ada sehingga ketika file-file ini dibangun, peringatan pada akhirnya akan masuk ke
resolv.conf
file yang dihasilkan yang akan digunakan untuk membuat file-file ini. Jadi Anda bisa dengan mudah menambahkannameserver
baris yang dijelaskan di atas untukbase
file, kehead
file juga.Referensi
sumber
base
dan menjalankanresolvconf -u
, nameserver tidak dimasukkan ke dalam resolv.conf - ketika saya memasukkan nameserver kehead
/run/resolvconf/interface/NetworkManager
nslookup google.com
dan IP pertama dalam daftar harus menjadi nameserver baru Anda, jika tidak, Anda salah melakukannya/etc/resolvconf/resolv.conf.d/head
hanya, tidak denganbase
. Dikonfirmasi dengannslookup google.com
.resolvconf
menginstal. Anda dapat menginstalnya dengan melakukansudo apt-get install resolvconf
.Saya juga tertarik dengan pertanyaan ini dan saya mencoba solusi yang diusulkan @sim.
Untuk mengujinya, saya masukkan
di
/etc/resolvconf/resolv.conf.d/base
dandi
/etc/resolvconf/resolv.conf.d/head
Kemudian saya memulai kembali jaringan dengan
Hasilnya
/etc/resolv.conf
seperti itudan
nm-tool
menyatakan bahwa dnsserver adalahyang mana yang disediakan oleh router saya. Di sisi lain, menggali alamat memberi tahu hal itu
Jika saya benar, saya menyimpulkan dari semua ini
Semua dalam semua, ini bekerja tetapi saya tidak berpikir itu adalah hasil yang diminta. Solusi yang lebih dekat menurut saya adalah sebagai berikut. Sunting
lalu tambahkan
Hasilnya adalah sebagai berikut: resolv.conf hanya berisi 127.0.0.1, yang berarti bahwa cache dnsmasq dipanggil dan nm-tool mengatakan
yang berarti bahwa jika nama yang dicari tidak ada dalam cache, maka akan diminta pada 8.8.8.8 dan tidak di server yang disediakan oleh dhcp.
Pilihan lain (mungkin lebih baik) adalah menggunakan "prepend" daripada "menggantikan": dengan cara ini, jika nama tidak diselesaikan oleh 8.8.8.8, maka permintaan jatuh kembali ke server lain. Bahkan, kata nm-tool
sumber
Saya menemukan bahwa Anda dapat mengubah server nama yang
dnsmasq
menggunakan dengan menambahkan baris berikut ke/etc/dnsmasq.conf
:Saya tidak punya
/etc/dnsmasq.conf
file, karena itu diinstal oleh paket dnsmasq, tetapi Ubuntu hanya dilengkapi dengan dnsmasq-base. Saya berlarisudo apt-get install dnsmasq
, lalu diedit/etc/dnsmasq.conf
, lalusudo service dnsmasq restart
dansudo service network-manager restart
.Saya berlari
sudo tail -n 200 /var/log/syslog
untuk memeriksa syslog saya dan memverifikasi yangdnsmasq
menggunakan server nama yang saya sebutkan:sumber
sudo service network-manager restart
)Untuk situasi IP statis, Ubuntu Server Guide mengatakan untuk mengubah file / etc / network / interfaces, yang mungkin terlihat seperti ini:
Anda mengubah IP 192.168.3.45 192.168.8.10 untuk yang Anda inginkan, seperti 8.8.8.8
https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Halaman 38
sumber
ifdown eth0; ifup eth0
.Buka
Kemudian pilih WiFi atau Ethernet, atau apa pun yang Anda gunakan, dan klik edit. Anda akan mendapatkan ini:
Pilih ipv4 di tab
Masukkan nama DNS Anda di bawah ini, dan simpan
Kamu sudah selesai
sumber
sudo service network-manager restart
, tunggu sebentar, verifikasi dengannmcli d list | grep 'DNS\|IP-IFACE'
. Dan ping klien internal Anda dengan nama.Solusi cepat dan kotor yang belum disebutkan adalah pengaturan flag yang tidak dapat diubah pada
resolv.conf
file setelah mengeditnya.Tambahkan ini dan simpan:
Kemudian:
Itu harus melakukan trik. Saya melakukan ini pada sistem saya juga.
sumber
DNS Config Di Linux
Penggunaan DNS di linux dilakukan melalui serangkaian rutin di pustaka C yang menyediakan akses ke Sistem Nama Domain Internet (DNS). File konfigurasi resolver (
resolv.conf
) berisi informasi yang dibaca oleh resolver secara rutin saat pertama kali dipanggil oleh suatu proses. Singkatnya setiap proses yang meminta DNS akan membaca/etc/resolv.conf
lebih dari pustaka. NSS berlapis di atas ini, dan dikonfigurasikan oleh/etc/nsswitch.conf
.Linux DNS config terletak di file
/etc/resolv.conf
TETAPI ada sejumlah program / layanan yang ingin secara otomatis mengelola dan menangani file konfigurasi DNS di/etc/resolv.conf
. Dalam beberapa situasi Anda mungkin ingin mengelola file ini sendiri. Setiap program / layanan yang mengelola DNS memiliki file konfigurasi sendiri seperti/etc/dnsmasq.conf
(untuk layanan dnsmasq) dan menambahkan konfigurasi DNS saat perubahan koneksi dan / atau pada peristiwa lain ... solusi cepat adalah dengan mengunci file konfigurasi DNS denganchattr +i /etc/resolv.conf
tetapi ini tidak dianjurkan dalam kasus tertentu, solusi yang lebih baik adalah mengatur dengan benar semua program / layanan menggunakan DNS like (dnsmasq / network-manager / resolvconf / etc.)Mendapatkan Kembali Kontrol DNS
Berikut ini adalah daftar lengkap pengaturan untuk mendapatkan kembali kontrol resolv.conf dan menghindari ditimpa ( cara menonaktifkan / pengaturan DNS dari lokasi lain selain resolv.conf ) perhatikan bahwa resolvconf adalah program independen dari resolv.conf, juga tergantung pada sistem / konfigurasi Anda, Anda mungkin tidak memiliki satu atau banyak program yang terdaftar di sini.
1. Resolvconf:
File konfigurasi
Perbarui konfigurasi
Nonaktifkan resolvconf
2. Layanan Dnsmasq:
File konfigurasi
Perbarui konfigurasi
3. Manajer Jaringan:
File konfigurasi
Nonaktifkan DNS
Aktifkan DNS
Gunakan layanan yang diselesaikan
Gunakan resolvconf
Perbarui konfigurasi
4. Antarmuka Jaringan:
File konfigurasi
Perbarui Konfigurasi
5. Klien DHCP:
File konfigurasi
Perbarui Konfigurasi
6. Layanan Rdnssd:
Nonaktifkan rdnssd
7. Layanan Terselesaikan:
Nonaktifkan terselesaikan
8. Netconfig:
File konfigurasi
Nonaktifkan netconfig
Perbarui Konfigurasi
Pengaturan Server DNS
Contoh
/etc/resolv.conf
konfigurasisumber
Masalah saya agak berbeda, saya ingin mengganti server DNS router saya. Saya menemukan tautan ini dari Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers
Dikatakan: Jika Anda ingin mengganti pengaturan DNS yang disediakan untuk Anda oleh server DHCP, buka
dan tambahkan baris berikut:
mengganti
<dns_ip_address*>
item dengan konten yang tepat.sumber
dhcp3
folder itu? Saya punya Xubuntu 17.10, sudahkah pindah ke/etc/dhcp
sederhana?Mungkin saya kehilangan sesuatu, tetapi menurut petunjuk konfigurasi di https://help.ubuntu.com/14.04/serverguide/network-configuration.html yang Anda lakukan hanyalah memperbarui yang berikut ini. Saya tidak menjalankan proxy - hanya mesin di belakang firewall dan DNS lokal (contohnya menunjukkan Google, tetapi mengaturnya untuk apa pun yang Anda butuhkan).
Default:
DIPERBARUI:
Reboot, jika Anda bisa.
sumber
Coba tambahkan
dns-nameservers XXX.XXX.XXX.X
ke/etc/networking/interfaces
file Anda .sumber
Beberapa jawaban di sini berfungsi dengan baik. Namun saya tidak senang dengan kenyataan saya harus secara manual melalui file konfigurasi hanya untuk mengatur "tepat"
DNS
yang saya sudah saya menerima lebihDHCP
denganNetworkManager
.Saya melakukan sedikit penggalian dan memperhatikan bahwa
/etc/resolv.conf
file tersebut sebenarnya sebuah tautan dan itu menunjuk ke/run/systemd/resolve/stub-resolv.conf
. Setelah beberapa percobaan, muncul/run/systemd/resolve/
direktori yang berisi file lain bernamaresolv.conf
yang sudah berisi pengaturan yang Anda terimaDHCP
. Jadi, alih-alih harus secara manual menimpa / membuat file konfigurasi/etc/
, Anda dapat dengan mudah menautkan kembali/etc/resolv.conf
ke/run/systemd/resolve/resolv.conf
file dan semua akan baik-baik saja:Anda sekarang seharusnya dapat mengedit pengaturan bahkan dari Network Manager di Gnome. :)
Tidak yakin apakah ini akan berfungsi pada ubuntu lama tetapi itu pada Ubuntu 17.10.
sumber
systemd-resolve --flush-cache
file tertaut asli terputus rupanya, jawaban di atas mengembalikan fungsi asliEDIT MEI 6,2016
Saya telah menulis skrip untuk memperbarui semua pengaturan untuk koneksi sistem dalam
/etc/Network-Manager/system-connections/
direktori. GUI yang Anda gunakan untuk mengedit koneksi individual, mengedit file tertentu di direktori itu. Script memperbarui semua file - itu hanya mencari mereka yang tidak memiliki set dns dengan grep dan set dengan awk.Karena mengakses file-file itu memerlukan
sudo
akses, jalankan skrip ini dengansudo
dan kemudian - restart manajer jaringanScript beraksi:
POST ASLI Beberapa pengguna di sini menunjukkan bahwa entah bagaimana DNS dikendalikan oleh
dnsmasq
. Itu memang benar. Saya telah menghadapi masalah yang agak lebih kecil, di mana tidak peduli bagaimana saya mengubahnyahead
ataubody
masuk/etc/resolvconf/resolv.conf.d
, komputer saya tidak dapat mengakses dengan nama domain - hanya bekerja dengan alamat IP.Apa yang saya lakukan adalah mengedit
/etc/NetworkManager/NetworkManager.conf
file. Awalnya, katanyadns=dnsmasq
tapi aku berubah ke:dns=208.67.222.222
. Meskipun dengan cara ini,nm-tool
tidak menyebutkan 208.67.222.222, saya masih bisa menggunakan nama domain, bukan hanya alamat IP.Begini tampilannya
NetworkManager.conf
file saya sekarang:CATATAN: Untuk detail lebih lanjut tentang masalah saya dan solusi ini, lihat posting saya di askubuntu.com .
PEMBARUAN # 1
Setelah pulang dari universitas hari ini, saya menemukan bahwa saya tidak dapat terhubung ke WiFi rumah saya. Saya sudah baca-up sedikit
man NetworkManager.conf
dan ternyatadns=
di dalam[main]
sebenarnya adalah baris untuk plug-in, jadi barisdns=dnsmasq
sebenarnya menambahkan plugin dnsmasq ke NetworkManager, rupanya.Jadi solusi saya masih bekerja, tidak seperti yang saya harapkan. Berikut kutipan dari halaman manual:
Jadi dengan pengaturan
dns=208.67.222.222
saya mungkin pada dasarnya mencegah NetworkManager menggunakan plugin itu, yang kalau tidak akan menggunakan server DNS lokal (yang tampaknya tidak berfungsi).sumber
Ada dua metode
Metode 1
Server DNS untuk digunakan dapat diubah dengan memperbarui
head
file di bawahresolv.conf.d
dan kemudian jalankan
Di atas akan menghasilkan
resolv.conf
file generik di/etc
direktori. Semua permintaan penyelesaian Anda akan dikirim ke server nama yang disebutkan di atas. Terpecahkan.Namun ada implikasi untuk ini. Saat menggunakan
resolvconf
untuk secara langsung menanyakan1.1.1.1
resolusi alamat, kekuatan caching yang disediakan oleh dnsmasq hilang. Setiap permintaan akan dituju1.1.1.1
Metode 2
Jika Anda tidak ingin hal di atas terjadi dan menggunakan dnsmasq untuk resolusi DNS lihat jawaban ini . Jawabannya hanya dijelaskan di sini.
Tambahkan konten berikut dalam
/etc/dnsmasq.conf
file.Kemudian restart layanan dnsmasq
Segalanya akan bekerja dengan baik. Terpecahkan.
sumber
Cara mudah untuk mengubah DNS:
Jika masalah muncul, instal
nano
:kemudian ..
dns-nameservers
dns-nameservers 199.85.126.10 199.85.127.10
Saya harap ini adalah cara terbaik, saya melakukannya seperti ini di VPS.
sumber
pada root:
dns=dnsmasq
pada/etc/NetworkManager/NetworkManager.conf
supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;
di akhir/etc/dhcp/dhclient.conf
sudo service network-manager restart
Berikut ini membuat perubahan yang ditunjukkan di atas:
Tunggu 7/10 detik untuk menyelesaikan proses restart, periksa konfigurasi Anda dengan "nslookup nist.gov". Berfungsi dengan baik di Ubuntu LTS 14.04.
sumber
NB: Seperti kebanyakan jawaban, yang ini mengasumsikan penggunaan NetworkManager. Namun tidak seperti kebanyakan jawaban lain, itu tidak menganggap penggunaan
resolvconf
,dhclient
atau apa pun - berhati-hatilah bahwa mereka dapat mengambil alih, (lihat pembaruan).Mengingat jumlah pandangan dari pertanyaan ini cukup luar biasa bahwa ini solusi 8 karakter ini belum diposting: menurut
man NetworkManager.conf
,Karena itu tambahkan
di
[main]
bagian/etc/NetworkManager/NetworkManager.conf
kemudian restart NetworkManager dan itu tidak akan berubah/etc/resolv.conf
lagi.Perhatikan bahwa pengaturan
rc-manager=unmanaged
harus sama dengandns=none
, dan pengaturan iturc-manager=symlink
bersamaan dengan memiliki/etc/resolv.conf
sebagai tautan simbolis mungkin merupakan ide yang lebih baik (baca halaman manual yang disebutkan di atas).Perbarui:
Setelah NetworkManager berhenti menimpa
/etc/resolv.conf
, saya pikirdhcpcd
sudah diganti/etc/resolv.conf
dengan file kosong yang tidak berguna saat boot. Halamandhcpcd.conf
membantu, cukup untuk menambahdi Anda
dhcpcd.conf
(milik saya di/etc/dhcpcd.conf
).sumber
Di server Linux centos7 saya, cara terbaik saya bisa mengubah opsi ini adalah menggunakan
perintah yang tidak disarankan dalam jawaban apa pun di sini. Anda dapat mengedit nameserver di alat ini dan ketika Anda mengubah opsi networkmanager dari utilitas ini, mereka akan secara otomatis diterapkannmtui
/etc/resolv.conf
setelah reboot. Di sini Anda dapat menemukan informasi lebih lanjut .sumber