Bagaimana cara mengatur DNS saya ketika resolv.conf sedang ditimpa?

279

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 dnsmasqdocs mengatakan untuk mengedit /etc/resolv.conf. Saya mencoba memasukkan server nama kustom /etc/resolv.conf.d/base, tetapi perubahan tidak muncul /etc/resolv.confsetelah 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:

  1. Berhasil.
  2. Ini membutuhkan paling sedikit perubahan dan
  3. Itu masih bekerja bersama dengan cache DNS dnsmasq, daripada mem-bypassnya.
Seán Hayes
sumber
Lebih baik jawab pertanyaan Anda daripada memperbarui pertanyaan Anda, saya pikir ... akan lebih mudah untuk menemukan jawaban yang tepat yang Anda berikan untuk masalah Anda
Philippe Gachoud
Tampaknya sebagian besar jawaban berorientasi pada Ubuntu, dan terlalu rumit. Sebuah solusi universal untuk pengguna NetworkManager adalah dengan hanya menambahkan dns=nonedi /etc/NetworkManager/NetworkManager.conf(lihat detail di jawaban saya di bawah).
Skippy le Grand Gourou
Saya pikir jawaban ini menjelaskan mengapa resol.conf ditimpa, maka Anda tahu cara mengkonfigurasinya.
foman

Jawaban:

250

Saya percaya jika Anda ingin mengganti server nama DNS Anda hanya menambahkan baris yang mirip dengan ini di basefile Anda 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

Akhirnya perbarui resolvconf:

$ sudo resolvconf -u

Jika Anda melihat halaman manual untuk resolvconfmenjelaskan 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

Meskipun ada peringatan di bagian atas headfile:

$ 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 dibangun, peringatan pada akhirnya akan masuk ke resolv.conffile yang dihasilkan yang akan digunakan untuk membuat file-file ini. Jadi Anda bisa dengan mudah menambahkan nameserverbaris yang dijelaskan di atas untuk basefile, ke headfile juga.

Referensi

slm
sumber
21
Ubuntu 14.04 - ketika saya meletakkan nameserver ke dalam basedan menjalankan resolvconf -u, nameserver tidak dimasukkan ke dalam resolv.conf - ketika saya memasukkan nameserver ke head
dalamnya
7
Ubuntu 14.04 - Juga harus mengomentari konfigurasi yang diatur dalam/run/resolvconf/interface/NetworkManager
bitsoflogic
3
ketik nslookup google.comdan IP pertama dalam daftar harus menjadi nameserver baru Anda, jika tidak, Anda salah melakukannya
frazras
6
Ubuntu 16.04: Bekerja jika ditambahkan /etc/resolvconf/resolv.conf.d/headhanya, tidak dengan base. Dikonfirmasi dengan nslookup google.com.
Acumenus
3
Awalnya, Anda harus resolvconfmenginstal. Anda dapat menginstalnya dengan melakukan sudo apt-get install resolvconf.
MAChitgarha
79

Saya juga tertarik dengan pertanyaan ini dan saya mencoba solusi yang diusulkan @sim.

Untuk mengujinya, saya masukkan

nameserver 8.8.8.8

di /etc/resolvconf/resolv.conf.d/basedan

nameserver 8.8.4.4

di /etc/resolvconf/resolv.conf.d/head

Kemudian saya memulai kembali jaringan dengan

sudo service network-manager restart

Hasilnya /etc/resolv.confseperti itu

# 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-toolmenyatakan bahwa dnsserver adalah

DNS:             208.67.222.222
DNS:             208.67.220.220

yang mana yang disediakan oleh router saya. Di sisi lain, menggali alamat memberi tahu hal itu

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Jika saya benar, saya menyimpulkan dari semua ini

  1. hanya bagian "head" yang dibaca oleh resolvonf: bagian "base" entah bagaimana dikendalikan oleh dnsmasq
  2. serverns sebenarnya dipaksa untuk 8.8.4.4 terlepas dari server yang disediakan oleh dhcp, TAPI Anda kehilangan caching yang disediakan oleh dnsmasq, karena permintaan selalu dikirim ke 8.8.4.4
  3. dnsmasq masih menggunakan HANYA dnsserver yang disediakan oleh dhcp.

Semua dalam semua, ini bekerja tetapi saya tidak berpikir itu adalah hasil yang diminta. 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 bahwa cache dnsmasq dipanggil dan nm-tool mengatakan

DNS:             8.8.8.8

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

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220
brad
sumber
4
Jawaban yang jauh lebih baik daripada meretas ke konfigurasi NS. Terutama pilihan untuk menambahkan server di depan yang disediakan dhcp. Sepertinya keseimbangan sempurna untuk menyelesaikan masalah, tanpa membuat yang baru!
Steve Midgley
2
Begitu banyak kejelasan dan pemikiran menjadi jawaban dan bukan hanya perintah.
igaurav
3
Yo Man! "menggantikan server-nama-server 8.8.8.8;" adalah THE THE answer
Jack
Perlu dicatat nm-tool telah diganti dengan nmcli
Fiddy Bux
59

Saya menemukan bahwa Anda dapat mengubah server nama yang dnsmasqmenggunakan dengan menambahkan baris berikut ke /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

Saya tidak punya /etc/dnsmasq.conffile, karena itu diinstal oleh paket dnsmasq, tetapi Ubuntu hanya dilengkapi dengan dnsmasq-base. Saya berlari sudo apt-get install dnsmasq, lalu diedit /etc/dnsmasq.conf, lalu sudo service dnsmasq restartdan sudo service network-manager restart.

Saya berlari sudo tail -n 200 /var/log/sysloguntuk memeriksa syslog saya dan memverifikasi yang dnsmasqmenggunakan server nama yang saya sebutkan:

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
Seán Hayes
sumber
4
Ada alasan mengapa ini ditandai sebagai jawaban terbaik ... karena memang! Terima kasih banyak! Saya akan menambahkan bahwa, setelah semua langkah yang Anda sebutkan, restart jaringan mungkin diperlukan agar semuanya berjalan lancar (itu untuk saya .... sudo service network-manager restart)
Clint Eastwood
3
Pada Ubuntu 14.04 Server kira-kira separuh waktu boot dingin tidak akan menghasilkan konektivitas internet menggunakan URL tetapi Alamat-IP akan berfungsi. Saya menghabiskan banyak waktu tanpa hasil mencoba memperbaikinya, menyerah selama berbulan-bulan, lalu menemukan solusi ini. Saya juga berpikir itu adalah jawaban terbaik.
Nate Lockwood
Sangat menarik bahwa dnsmasq harus diinstal. Ini memang memperbaiki DNS saya dalam situasi normal, tetapi itu benar-benar merusak konfigurasi VPN saya (koneksi VPN sekarang gagal ...)
PlasmaBinturong
22

Untuk situasi IP statis, Ubuntu Server Guide mengatakan untuk mengubah file / etc / network / interfaces, yang mungkin terlihat seperti ini:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

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

Rodolpho
sumber
Ini memang terlihat benar tetapi bagaimana cara saya sekarang membuat resolv.conf ?!
Joel Berger
3
@ JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton
17
  1. Cari 'Koneksi Jaringan'
  2. Buka

                        masukkan deskripsi gambar di sini

  3. Kemudian pilih WiFi atau Ethernet, atau apa pun yang Anda gunakan, dan klik edit. Anda akan mendapatkan ini:

                  masukkan deskripsi gambar di sini

  4. Pilih ipv4 di tab

  5. Pilih alamat hanya dalam metode
  6. Masukkan nama DNS Anda di bawah ini, dan simpan

  7. Kamu sudah selesai

pa1pal
sumber
Saya harus melakukan ini untuk setiap koneksi jaringan. Di masa lalu, Anda dapat mengubah default untuk semua koneksi, yang ingin saya lakukan di sini.
Seán Hayes
2
Aku cinta kamu! pengaturan UI ini menyelamatkan pantat saya dari sudo dan vim mess: '(
Luke
Menggunakan Mint (di Ubuntu 14.04) - tetapi melihat ini dengan KDE juga - untuk beberapa alasan, pengaturan server DNS di GUI Network Manager tidak mempengaruhi pengaturan DNS yang digunakan di terminal
HorusKol
2
Jawaban terbaik. Di Ubuntu 14.04 saya mendapat 2 alamat IP eksternal untuk DNS yang tidak akan mengenali klien di dalam jaringan rumah saya. Meninggalkan Metode pada 'Otomatis (DHCP)' untuk koneksi kabel menambahkan alamat IP router saya ke daftar yang ada. Untuk koneksi nirkabel melalui wlan0, itu tidak berhasil, tetapi Metode pada alamat 'Otomatis (DHCP) saja' mengganti alamat eksternal dengan IP router saya dan kemudian itu berhasil juga. Terapkan perubahan dengan sudo service network-manager restart, tunggu sebentar, verifikasi dengan nmcli d list | grep 'DNS\|IP-IFACE'. Dan ping klien internal Anda dengan nama.
RolfBly
13

Solusi cepat dan kotor yang belum disebutkan adalah pengaturan flag yang tidak dapat diubah pada resolv.conffile setelah mengeditnya.

$ sudo nano /etc/resolv.conf

Tambahkan ini dan simpan:

nameserver 8.8.8.8

Kemudian:

$ sudo chattr +i /etc/resolv.conf

Itu harus melakukan trik. Saya melakukan ini pada sistem saya juga.

YouniS Bensalah
sumber
18
Kapan pun solusi Anda melibatkan chattr, itu sebenarnya bukan solusi.
Jeff Jirsa
1
ini adalah apa yang saya lakukan pada sistem di mana saya perlu mengubah sementara DNS untuk beberapa alasan dan tidak ingin mengubah konfigurasi. Sebagai solusi permanen saya tidak akan merekomendasikannya.
Hochl
3
"solusi cepat dan kotor"
YouniS Bensalah
10
Ini tidak kotor. Program yang merusak konfigurasi lokal karena mereka pikir lebih tahu adalah kotor.
11

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.conflebih 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 dengan chattr +i /etc/resolv.conftetapi 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

cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

Perbarui konfigurasi

sudo resolvconf -u

Nonaktifkan resolvconf

systemctl disable --now resolvconf.service 

2. Layanan Dnsmasq:

File konfigurasi

cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

Perbarui konfigurasi

sudo systemctl restart dnsmasq.service

3. Manajer Jaringan:

File konfigurasi

/etc/NetworkManager/*

Nonaktifkan DNS

$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

Aktifkan DNS

$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

Gunakan layanan yang diselesaikan

$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

Gunakan resolvconf

$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

Perbarui konfigurasi

systemctl restart NetworkManager.service

4. Antarmuka Jaringan:

File konfigurasi

$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Perbarui Konfigurasi

reboot

5. Klien DHCP:

File konfigurasi

$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

Perbarui Konfigurasi

reboot

6. Layanan Rdnssd:

Nonaktifkan rdnssd

systemctl disable --now rdnssd.service

7. Layanan Terselesaikan:

Nonaktifkan terselesaikan

systemctl disable --now systemd-resolved.service

8. Netconfig:

File konfigurasi

/etc/sysconfig/network/config

Nonaktifkan netconfig

cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

Perbarui Konfigurasi

reboot

Pengaturan Server DNS

Contoh /etc/resolv.confkonfigurasi

#Cloudflare
nameserver 1.0.0.1

#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4

#Cloudflare 
#nameserver 1.1.1.1

#Classic Config
#nameserver 192.168.1.1
#search lan
intika
sumber
10

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

/etc/dhcp3/dhclient.conf

dan tambahkan baris berikut:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

mengganti <dns_ip_address*>item dengan konten yang tepat.

Ryan
sumber
Ini adalah jawaban yang memecahkan masalah saya.
Michael
Sempurna. Hanya menambahkan bahwa Anda harus memulai kembali layanan jaringan sudo untuk mengaktifkan perubahan.
Nick Triantafillou
Bagaimana jika kita tidak memiliki dhcp3folder itu? Saya punya Xubuntu 17.10, sudahkah pindah ke /etc/dhcpsederhana?
PlasmaBinturong
4

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).

nano /etc/network/interfaces

Default:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
auto eth0
iface eth0 inet dhcp

DIPERBARUI:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
#iface eth0 inet dhcp
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x

#nameservers
# you may not need dns-search
# I use it because I'm running this on a Windows network 
# so its useful to have
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Reboot, jika Anda bisa.

TooIgnorantToNotBeAnonymous
sumber
3

Coba tambahkan dns-nameservers XXX.XXX.XXX.Xke /etc/networking/interfacesfile Anda .

Mike
sumber
Tinggalkan komentar saat Anda downvote, tolong. Ini adalah metode yang diberikan dalam manual , halaman 38.
Zook
1
Manual yang tidak disebutkan menunjukkan semua IP pada satu baris. Jawaban ini sepertinya menyarankan untuk menambahkan baris. Dan mengapa angka terakhir hanya satu X lebar? Saya pikir sebagian besar adalah tulisan gaya obrolan pendek yang sangat informal dan tidak pasti yang mengumpulkan downvotes, @Zook.
Cees Timmerman
2

Beberapa jawaban di sini berfungsi dengan baik. Namun saya tidak senang dengan kenyataan saya harus secara manual melalui file konfigurasi hanya untuk mengatur "tepat" DNSyang saya sudah saya menerima lebih DHCPdengan NetworkManager.

Saya melakukan sedikit penggalian dan memperhatikan bahwa /etc/resolv.conffile 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 bernama resolv.confyang sudah berisi pengaturan yang Anda terima DHCP. Jadi, alih-alih harus secara manual menimpa / membuat file konfigurasi /etc/, Anda dapat dengan mudah menautkan kembali /etc/resolv.confke /run/systemd/resolve/resolv.conffile dan semua akan baik-baik saja:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

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.

tftd
sumber
ketika kami menjalankan systemd-resolve --flush-cachefile tertaut asli terputus rupanya, jawaban di atas mengembalikan fungsi asli
hafizhanindito
1

EDIT 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 sudoakses, jalankan skrip ini dengan sudodan kemudian - restart manajer jaringan

#!/bin/bash
# Author: Serg Kolo
# Date: May 6, 2015
# Description: this script checks all settings for connections in 
# /etc/NetworkManager/system-connections/ , and if there's no custom
# dns set , this script sets it;
# NOTE: run sudo service network-manager restart after running this script

set -x

for file in /etc/NetworkManager/system-connections/* ; do
        grep 'dns=208.67.220.220;' "$file"  || ( awk '{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220.
220;\nignore-auto-dns=true"}}' "$file" > .tmpfile && ( cat .tmpfile > "$file") )
done

Script beraksi:

masukkan deskripsi gambar di sini

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 mengubahnya headatau bodymasuk /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.conffile. Awalnya, katanya dns=dnsmasqtapi aku berubah ke: dns=208.67.222.222. Meskipun dengan cara ini, nm-tooltidak menyebutkan 208.67.222.222, saya masih bisa menggunakan nama domain, bukan hanya alamat IP.

Begini tampilannya NetworkManager.conffile saya sekarang:

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222

[ifupdown]
managed=false

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.confdan ternyata dns=di dalam [main]sebenarnya adalah baris untuk plug-in, jadi baris dns=dnsmasqsebenarnya menambahkan plugin dnsmasq ke NetworkManager, rupanya.

Jadi solusi saya masih bekerja, tidak seperti yang saya harapkan. Berikut kutipan dari halaman manual:

dns=plugin1,plugin2, ... List DNS plugin names separated by ','. 

Plugin DNS digunakan untuk menyediakan fungsionalitas nameserver caching lokal (yang mempercepat permintaan DNS) dan untuk mendorong data DNS ke aplikasi yang menggunakannya.

Jadi dengan pengaturan dns=208.67.222.222saya mungkin pada dasarnya mencegah NetworkManager menggunakan plugin itu, yang kalau tidak akan menggunakan server DNS lokal (yang tampaknya tidak berfungsi).

Sergiy Kolodyazhnyy
sumber
1

Ada dua metode

Metode 1

Server DNS untuk digunakan dapat diubah dengan memperbarui headfile di bawahresolv.conf.d

$ echo 'nameserver 1.1.1.1' | sudo tee /etc/resolvconf/resolv.conf.d/base

dan kemudian jalankan

$ sudo resolvconf -u

Di atas akan menghasilkan resolv.conffile generik di /etcdirektori. Semua permintaan penyelesaian Anda akan dikirim ke server nama yang disebutkan di atas. Terpecahkan.

Namun ada implikasi untuk ini. Saat menggunakan resolvconfuntuk secara langsung menanyakan 1.1.1.1resolusi 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.conffile.

server = 1.1.1.1

Kemudian restart layanan dnsmasq

$ sudo systemctl restart dnsmasq.service

Segalanya akan bekerja dengan baik. Terpecahkan.

Pragathees
sumber
0

Cara mudah untuk mengubah DNS:

$ sudo nano /etc/network/interfaces

Jika masalah muncul, instal nano:

$ sudo apt-get install nano -y

kemudian ..

  1. temukan ini: dns-nameservers
  2. jika Anda tidak menemukannya ketik saja di sana
  3. Saya melakukan milik saya seperti ini: dns-nameservers 199.85.126.10 199.85.127.10

Saya harap ini adalah cara terbaik, saya melakukannya seperti ini di VPS.

Saif Salim
sumber
0

pada root:

  1. komentar dns=dnsmasqpada/etc/NetworkManager/NetworkManager.conf
  2. tambahkan 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
  3. sudo service network-manager restart

Berikut ini membuat perubahan yang ditunjukkan di atas:

$ sudo sed -i 's/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/' \
   /etc/NetworkManager/NetworkManager.conf

$ echo '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;' | \
   sudo tee --append /etc/dhcp/dhclient.conf

$ sudo service network-manager restart

Tunggu 7/10 detik untuk menyelesaikan proses restart, periksa konfigurasi Anda dengan "nslookup nist.gov". Berfungsi dengan baik di Ubuntu LTS 14.04.

Sebastien Willemijns
sumber
0

NB: Seperti kebanyakan jawaban, yang ini mengasumsikan penggunaan NetworkManager. Namun tidak seperti kebanyakan jawaban lain, itu tidak menganggap penggunaanresolvconf , dhclientatau 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,

dns: [...] tidak ada: NetworkManager tidak akan mengubah resolv.conf. Ini menyiratkan rc-manager tidak dikelola

Karena itu tambahkan

dns=none

di [main]bagian/etc/NetworkManager/NetworkManager.conf kemudian restart NetworkManager dan itu tidak akan berubah /etc/resolv.conflagi.

Perhatikan bahwa pengaturan rc-manager=unmanagedharus sama dengan dns=none, dan pengaturan iturc-manager=symlink bersamaan dengan memiliki /etc/resolv.confsebagai tautan simbolis mungkin merupakan ide yang lebih baik (baca halaman manual yang disebutkan di atas).

Perbarui:

Setelah NetworkManager berhenti menimpa /etc/resolv.conf, saya pikir dhcpcdsudah diganti /etc/resolv.confdengan file kosong yang tidak berguna saat boot. Halaman dhcpcd.confmembantu, cukup untuk menambah

nohook resolv.conf

di Anda dhcpcd.conf(milik saya di /etc/dhcpcd.conf).

Skippy le Grand Gourou
sumber
0

Di server Linux centos7 saya, cara terbaik saya bisa mengubah opsi ini adalah menggunakan

nmtui

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 diterapkan /etc/resolv.confsetelah reboot. Di sini Anda dapat menemukan informasi lebih lanjut .

Mojtaba Rezaeian
sumber