DNS diatur ke systemd's 127.0.0.53 - bagaimana cara mengubah secara permanen?

38

Saya baru saja ditingkatkan ke 17,10. Ketika saya mencoba menelusuri ke situs web, atau melakukan ping ke domain, situs tersebut gagal mengatakan bahwa situs tersebut tidak dapat diselesaikan.

network-adminmenunjukkan konten /etc/resolv.confmenjadinameserver: 127.0.0.53

Jika saya mengubahnya ke 8.8.8.8 atau 208.67.222.222 maka semuanya berfungsi. Sampai saya reboot.

Setelah reboot atau melanjutkan, server nama diatur ulang ke 127.0.0.53.

Bagaimana cara menetapkan server nama secara permanen ke sesuatu yang berfungsi?


Untuk penggemar systemd, jika saya menjalankan systemd-resolve --statussaya mengerti

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Jika saya mengikuti saran di pertanyaan ini - DNS terus mengatur ulang setelah reboot. Ubuntu 17.10 - DNS masih gagal diselesaikan.

Terence Eden
sumber
systemctl stop systemd-resolveddan systemctl mask systemd-resolvedharus melakukan trik :)
Shayan

Jawaban:

28

Anda dapat menginstal paket resolvconf, yang akan memodifikasi cara /etc/resolv.confdibangun pada boot sistem.

sudo apt install resolvconf

Anda kemudian dapat membuat atau memodifikasi file /etc/resolvconf/resolv.conf.d/tail. Jika Anda menempatkan file ini dalam satu baris nameserver 8.8.8.8, baris ini akan ditambahkan pada akhir /run/resolvconf/resolv.confsaat boot. /etc/resolv.confsekarang akan menjadi tautan simbolis ke file ini.

oscar1919
sumber
4
Ini berhasil - terima kasih! Apakah Anda tahu jika ada cara untuk membuat 127.0.0.53 bekerja dengan sendirinya?
Terence Eden
1
Saya cukup baru dalam hal ini. Baru saja mencoba untuk menyingkirkan masalah dns ketika mengaktifkan / menonaktifkan vpn selama beberapa minggu terakhir. Anda bisa mencoba sudo dpkg-reconfigure resolvconf. Saya mencoba ini belakangan, membersihkan file ekor, dan pada awalnya ini tampaknya berhasil.
oscar1919
@TerenceEden jika Anda ingin membuat 127.0.0.53 bekerja dengan sendirinya (sebagaimana mestinya), lihat jawaban saya: askubuntu.com/a/1083843/281191
intelfx
10

The benar solusi akan fix systemd-diselesaikan bukannya mencoba untuk menyembuhkan migrain dengan guillotine a.

Ini adalah alat yang bagus, sungguh, jika digunakan dengan benar.

Menilai dari systemd-resolve --statushasil Anda ...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... alat pengelola jaringan Anda tidak meneruskan konfigurasi DNS per-antarmuka ke sistemd diselesaikan.

NetworkManager versi terbaru, misalnya, akan melakukan ini secara otomatis jika /etc/resolv.confada symlink yang menunjuk ke dalam /run/systemd/resolveatau ke /usr/lib/systemd/resolv.conf. Atau, versi terbaru dari systemd-resolved mencoba untuk kompatibel dengan antarmuka resolvconf historis dengan menginstal resolvconfbiner yang berbicara dengan systemd-resolved.

Saat menggunakan salah satu dari dua solusi ini akan lebih disukai, jika Anda mencari solusi cepat dan kotor, Anda bisa mengkonfigurasi systemd-resolved untuk menggunakan server DNS Anda secara global:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

Kemudian restart systemd-resolved.serviceatau reboot.

intelfx
sumber
Setidaknya bagi saya jawaban ini tidak berfungsi, menggunakan ubuntu 18.04, setelah mengubah entri "DNS", ia tetap menggunakan 127.0.0.53
André M. Faria
1
@ AndréM.Faria mempelajari cara kerja diselesaikan. 127.0.0.53adalah alamat dari resolver caching stub lokal. Ini meneruskan permintaan DNS ke server DNS hulu apa pun yang Anda tentukan.
intelfx
Terkadang Anda tahu sesuatu dan mengabaikannya, ya Anda benar.
André M. Faria
1
Juga baik untuk dicatat di sini, adalah bahwa secara default systemd-resolvedcache respons DNS. Meskipun ini kadang-kadang bermanfaat, namun dapat menyebabkan masalah dalam beberapa situasi. Batalkan komentar pada cache=yesbaris dalam file konfigurasi dalam jawaban dan atur ke no.
Quentin Skousen
apa yang sebenarnya menyebabkan /etc/resolve.conf(atau benar-benar /run/resolvconf/resolv.conf, yang ditunjukkan oleh mantan) diperbarui? akan menyenangkan untuk diketahui untuk pengujian, tanpa dianggap perlu melakukan reboot. yang bisa saya katakan adalah memulai kembali systemd-resolved.servicetampaknya tidak melakukan trik
bbarker
8

Saya menggunakan Lubuntu & Kubuntu 18.04. Saya dapat mengatasi masalah DNS dalam 2 langkah:

Langkah pertama: Instal unbounddan atur untuk menggantikannya systemd-resolvedseperti yang ditunjukkan Grégoire C di sini .

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

reboot

Buka sebagai root file /etc/NetworkManager/NetworkManager.conf

( sudo leafpad /etc/NetworkManager/NetworkManager.confdi Lubuntu 18.04 atau di Kubuntu 18.04 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

dan di bawah [main]ini letakkan baris ini:

dns=unbound

reboot lagi

Langkah kedua: Jika setelah reboot masalah masih belum terpecahkan, seperti dalam kasus saya, mulai file manager sebagai root, buka /etc, hapus resolv.confdan buat yang baru resolv.conf. Biarkan kosong dan reboot OS. Dalam kasus saya setelah reboot ini, masalahnya hilang.

Di Kubuntu 18.04 Anda tidak dapat memulai Dolphin sebagai root, jadi Anda dapat pertama-tama pergi ke /etcdan membuka terminal dari sana, lalu ketik sudo sudan tekan Enter untuk menggunakannya sebagai root dan kemudian hapus resolv.confdengan perintah rm resolv.conf. Kemudian Anda dapat membuat file kosong baru di desktop Anda, beri nama resolv.confdan buka terminal dari sana. Gunakan sudo superintah untuk masuk ke mode root untuk terminal dan kemudian salin yang baru resolv.confdari desktop Anda ke /etcdengan perintah cp resolv.conf /etc.

Saya harus menambahkan bahwa saya tidak mencoba melakukan langkah kedua sebelum menginstal unbound, jadi lain kali saya akan melakukannya, hanya untuk melihat apakah itu akan cukup atau tidak.

Калоян Грънчаров
sumber
Mengapa tidak mengedit saja sebagai root dan menghapus konten?
Ballie
@ Ballie Saya sudah mencoba ini pada awalnya, tetapi tidak membantu. Juga yang asli resolv.confdari /etcditampilkan sebagai semacam jalan pintas, yang tidak normal, saya pikir. Inilah sebabnya saya memutuskan untuk menghapusnya dan membuatnya kembali dengan membuat file kosong baru dan menamainya resolv.conf. Dan itu berhasil. Dengan alasan ini saya menulis di atas bahwa lain kali saya harus menginstal ulang OS, saya akan mencoba melakukan ini terlebih dahulu, tanpa melakukan "langkah pertama" - untuk melihat apakah itu sudah cukup. Tapi asli resolv.confdi /etckebutuhan untuk dihapus dan diciptakan pula - tentang ini saya yakin.
Калоян Грънчаров
Saya baru saja menonaktifkan systemd-resolved.service dan menghapus tautan dari resolv.conf dan membuatnya secara manual, dan itu berhasil!
André M. Faria
8

bekerja dalam systemdparadigma menambahkan DNS ke tautan / perangkat

menggunakan ubuntu 17.10+ tambahkan *.networkfile:

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100 dapat berupa angka untuk prioritas, dan itu memerlukan .networkekstensi file):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

Kemudian mulai kembali:

sudo service systemd-networkd restart

Lihat juga:

netplan apply

Kemudian periksa:

systemd-resolve --status wlo1

Dari halaman info info systemd.network:

Selain itu /etc/systemd/network, direktori drop-in ".d" dapat ditempatkan di / lib / systemd / jaringan atau / run / systemd / direktori jaringan . File-file drop-in di / etc diutamakan dari pada yang di / run yang pada gilirannya akan diutamakan daripada yang ada di / lib. File drop-in di bawah salah satu direktori ini diutamakan di atas file netdev utama di mana pun berada. (Tentu saja, karena / run bersifat sementara dan / usr / lib untuk vendor, kemungkinan drop-in tidak boleh digunakan di salah satu dari tempat-tempat itu.)

Pendekatan lain menonaktifkan DNSStubListeneruntuk penggunaan dengan dnsmasq:

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

terkait:

Jonunsch
sumber
Anehnya adalah Anda menyatakan bahwa DNSStubListener = false, tetapi konfigurasi aktual yang dikomentari adalah DNSStubListener = ya, biasanya kebalikan dari nilai "ya" adalah "tidak" dan bukan "salah" yang dalam kasus "salah" biasanya menjadi " benar".
André M. Faria
Jawaban Anda untuk membuat file dengan ekstensi .network tidak berfungsi.
André M. Faria
2

Ini adalah bagaimana saya mengubah catatan dns saya pada konfigurasi antarmuka.

$ vi /etc/netplan/50-cloud-init.yaml

Ubah alamat server nama, sebelumnya itu 0,4 lalu saya ubah ke .3:

...
            nameservers:
                addresses:
                - 192.168.1.3
...

Simpan konfigurasi dan kemudian terapkan konfigurasi:

$ sudo netplan apply

Setelah itu restart layanan resolvectl.

$ sudo systemctl restart systemd-resolved.service

Sebagai catatan: Saya melakukan reboot server dan perubahan yang saya buat masih utuh. Saya menggunakan resolvctl dnsperintah untuk memverifikasi catatan dns.

kapten
sumber
Ini sebenarnya jawaban yang benar. Saya terkejut itu bukan yang diterima.
Toumal
0

Punya beberapa masalah dengan NordVPN jadi memutuskan untuk menambah ini.

Temuan:
NordVPN menetapkan /run/systemd/resolve/resolv.confpengaturan DNS saat menghubungkan.
NordVPN menghapus semua pengaturan DNS dari /run/systemd/resolve/resolv.confsaat memutuskan sambungan.
Ini menyebabkan server DNS tidak lagi berfungsi (karena tidak ada satu set).

Sistem membutuhkan reboot untuk mengembalikannya ke apa saja. Restart standar layanan ( sudo systemctl restart systemd-resolved.service) tidak berfungsi.

Solusi untuk mengatasi ini:

sudo apt install resolvconf

Pergilah ke /etc/resolvconf/resolv.conf.d/

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

Tambahkan server nama

nameserver 1.1.1.1
nameserver 1.0.0.1

Periksa tempat-tempat berikut untuk server nama yang bisa diatur:

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Uji server DNS mana yang digunakan:

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53
Eirik Rimehaug
sumber
0

Mungkin agak terlambat, tapi saya mengalami masalah ini. Saya memang harus mengakui bahwa saya telah secara manual mengkonfigurasi pengaturan jaringan saya melalui cli sebelumnya dan bukan melalui networkmanager inbuilt. Saya menjalankan ubuntu 18.04.

Jadi setelah saya menonaktifkan dan kemudian mengaktifkan kembali systemd.resolved.service, perilaku tidak menentu ini secara acak kehilangan konfigurasi DNS saya diselesaikan untuk saya.

systemctl disable systemd.resolved.service
reboot

setelah reboot:

systemctl enable systemd.resolved.service
reboot

Saya adalah pengguna Linux yang relatif baru sehingga harus ada seseorang yang dapat menjelaskan bagaimana dan mengapa ini bisa bekerja untuk saya, tetapi sepertinya layak untuk disebutkan jika dapat membantu orang lain.

Sjoerd
sumber
Sry mengecewakan, tetapi pasti ada sesuatu yang Anda lakukan di antaranya yang benar-benar memperbaiki masalah. Operasi yang Anda sarankan di sini hanya dapat meninggalkan sistem seperti semula.
tishma
-1

Saat menggunakan resolusi nama dhcp berfungsi seperti yang diharapkan di Ubuntu. Masalahnya dimulai ketika Anda ingin menjadi statis. cat /etc/resolv.confakan menunjukkan bahwa Anda adalah 127.0.0.53 dan bukan yang Anda miliki dalam /etc/netplan/.yamlfile. Untuk memperbaikinya, Anda perlu menghapus /etc/resolve.conftautan dan membuat yang baru menunjuk/run/resolve/resolve.conf

Mikael Ljung
sumber
Tolong, edit jawaban Anda dan perbaiki beberapa format ...
Yufenyuy Veyeh Dider
-2

Ini membutuhkan beberapa bermain-main dengan. Setelah saya memperbarui pengaturan, saya reboot. Menggunakan:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

Ketika Mengomentari "permintaan" untuk

# domain-name, domain-name-servers, domain-search, host-name,

Tambahkan baris ini ke /etc/dhcp/dhclient.conf:

 supersede domain-name "cwillenterprise.com";

Edit file konfigurasi dan tambahkan entri. Tambahan tidak akan menggantikan.

Tambahkan entri ke /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

Jalankan untuk mengimplementasikan perubahan

resolvconf -u
ogkiller
sumber
1
Selamat Datang di Tanya Ubuntu ! Harap edit jawaban Anda untuk menggunakan pemformatan kode untuk kode yang harus dimasukkan dalam file atau terminal. Jangan menambahkan #"komentar" ke kode - itu berarti tajuk dalam penurunan harga. Harap selalu periksa pratinjau posting Anda sebelum mengirimnya.
Melebius