Server DNS saya adalah 192.168.1.152
.
DNS ini disediakan untuk klien oleh DHCP. Klien windows di LAN saya menentukan nama dengan benar menggunakan DNS itu, tetapi VM Ubuntu saya tidak.
VM diatur dengan menjembatani jaringan dan disediakan dengan benar server DNS, tetapi nama host lokal saya tidak diselesaikan oleh nslookup atau browser.
Ini adalah nslookup
salah satu dari domain lokal saya:
# nslookup unraid.local
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find unraid.local: SERVFAIL
Inilah yang harus diselesaikan dengan menggunakan server DNS saya:
# nslookup unraid.local 192.168.1.152
Server: 192.168.1.152
Address: 192.168.1.152#53
Name: unraid.local
Address: 192.168.1.152
/etc/resolv.conf
memiliki server nama yang salah:
# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
Saya menjalankan perintah itu. Di bawah Server DNS, secara membingungkan, ia menentukan server yang benar (dan gateway default saya).
root@ubuntu:~# systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens33)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.152
192.168.1.1
Saya tidak ingin "kode keras" IP server DNS dalam file konfigurasi karena saya tidak akan dapat menyelesaikannya ketika saya mengubah jaringan.
Bagaimana saya bisa mendapatkan resolvconf dan NetworkManager untuk secara otomatis mengatur IP server DHCP /etc/resolv.conf
?
sumber
Bug systemd yang dikenal .
Solusi sementara tanpa perlu mengkonfigurasi ulang jika IP DNS berubah:
sumber
/etc/resolv.conf
berasal dari/run/systemd/resolve/stub-resolv.conf
bollox harus/run/systemd/resolve/resolv.conf
dicatat bahwa/etc/resolv.conf
tidak benar-benar ada dalam kedua kasusping
berhasil?host
dannslookup
atasi nama host secara berbeda dariping
atauwget
. Anda mungkin perlu mencari/etc/nsswitch.conf
solutioin.Saya akhirnya mendapat solusi untuk masalah ini untuk ubuntu 17.10. Secara default, versi ini menggunakan Ubuntu
systemd-resolved
, yang saya harap akan stabil untuk versi berikutnya.Untuk menggunakan custom dns alih-alih cache yang diselesaikan dengan systemd lokal, lakukan hal berikut:
tambahkan server nama baru. Edit file
/etc/systemd/resolved.conf
sebagai sudoer. Di sini saya sudah berkomentar entri DNS dan menempatkan dns saya[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
batalkan symlink sebenarnya ke
/etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo service systemd-resolved restart
sudo systemctl restart networking
Dan sekarang jika Anda menggali nama yang disediakan oleh add dns Anda, Anda akan melihat catatan terselesaikan
dig nexus.default.svc.cluster.mydomain
Langkah terakhir adalah memperbarui urutan resolusi
/etc/nsswitch.conf
, dengan menempatkan dns sebelum mdns4_minimalsumber
Saya menyusun skrip yang bekerja di sekitar masalah Netplan saat ini tidak mendukung kemampuan untuk menggantikan DHCP yang disediakan server DNS dan urutan pencarian domain. Itu menciptakan file Netplan Netplan dan mengkonfigurasi systemd-diselesaikan untuk bekerja seperti yang diharapkan.
sumber
Solusi yang bekerja untuk saya diposting di sini di blog saya
Gunakan nano editor untuk mengedit 2 file ini
Tambahkan server DNS yang ingin Anda gunakan
Kemudian mulai kembali layanan
Pemeriksaan terakhir:
Apakah nslookup
saya hanya menggunakan ini dan itu memperbaiki masalah pada laptop saya di rumah, tetapi beberapa waktu di masa depan ketika saya keluar dari jaringan rumah saya, saya dapat melihat bahwa itu akan menyebabkan masalah, karena server dns primer dan sekunder masih akan menjadi rumah saya server dengan alamat lan mereka.
sumber
/etc/resolv.conf
tidak berfungsi karena file akan ditimpa saatsystemd-resolved
restart. Cukup edit/etc/systemd/resolved.conf
. Lihat jawaban saya di sini: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…Anda
/etc/resolv.conf
bukan masalah.systemd-resolved
hanya default untuk tidak dikonfigurasi, sehingga gagal semua pencarian. Jangan ragu untuk mengomel tentang Tidak Dikonfigurasi vs Default yang Wajar.Tambahkan server nama secara manual ke
systemd-resolved
. (mengedit per komentar Olorin di bawah ini untuk menambahkanmkdir
, jalur yang benar/etc
tidak/lib
, untuk bertahan dari pembaruan sistem)Menambahkan:
Kemudian...
systemd-resolved
pintar, tetapi, karena tidak dikonfigurasi, oleh pengelola paket, itu hanya terlihat bodoh karena pengelola paket tidak percaya pada A Reasonable Default. Kita dapat menempatkan 13 server root internet di sana alias "djb way", atau 10 server opennic: https://pastebin.com/JBfYVVtG atau tiga server opennic tercepat, yang diukur dengan namebench. Plus nameserver ISP, tentu saja. Plus Google, tentu saja.systemd-resolved
bukan masalahnya. Saya masalahnya.sumber
/usr/lib
- itu kemungkinan akan ditimpa pada peningkatan paket. Saya pikir file yang sesuai di suatu tempat/etc/systemd
adalah cara untuk pergi (sudah harus/etc/systemd/resolved.conf
siap untuk diedit oleh admin).Pada sistem saya, saya menemukan symlink buruk:
/etc/resolv.conf
adalah symlink yang menunjuk ke/run/systemd/resolve/stub-resolv.conf
File ini hanya mengandung satu baris:
Akibatnya, pencarian DNS jaringan lokal sering hilang.
Jadi, alih-alih saya berubah
/etc/reolv.conf
untuk menunjuk/run/systemd/resolve/resolv.conf
dan sekarang berfungsi dengan benar.
sumber
Ini aneh tetapi satu-satunya solusi yang bekerja untuk saya di Ubuntu 18.04 adalah yang saya temukan di sini :
Pertama, ubah
/etc/resolv.conf
dengan mengatur server nama yang diinginkan :Atur, misalnya,
Dan kemudian lakukan
Ini melindungi
/etc/resolv.conf
file sehingga tidak ada yang bisa memodifikasinya termasuk pengguna root.sumber
Saya memiliki masalah yang sama. Setiap reboot, tidak ada yang akan menyelesaikan. Saya telah mencopot semuanya dan menginstal ulang sekitar 50 kali. Itu hanya rusak.
jadi perbaikannya adalah .... "cukup terapkan beberapa pengaturan setiap kali Anda mem-boot pc Anda, yang memungkinkan 90% nama host untuk menyelesaikan tetapi pembaruan wget dan apt-get dan pemutakhiran akan gagal secara acak tanpa alasan"
cat /etc/systemd/resolved.conf
Saat menggunakan Ubuntu 17.10 Desktop, Anda harus mengedit satu file yang mengatakan JANGAN EDIT FILE INI BLAH BLAH BLAH
nah itulah HANYA cara kerjanya ~!
Jadi hapus 127.0.0.53 IP sebagai server nama dan masukkan yang lain, google misalnya. Tampaknya alamat IP DNS saya yang sebenarnya juga tidak menyelesaikan nama host (meskipun berfungsi pada 10 mesin dan perangkat lain di rumah), tetapi google berfungsi dengan baik.
sumber