Bekerja dengan Ubuntu 18.04 Server LTS. Saya mencoba menemukan cara untuk memeriksa IP DNS yang sebenarnya digunakan ketika diatur melalui DHCP. Resolv.conf hanya akan menunjuk ke 127.0.0.53 sekarang. Folder /etc/systemd/network kosong. Output NSLOOKUP juga selalu merujuk ke IP internal 127.0.0.0.53. Sepertinya semua trik lama tidak berfungsi.
Dokumentasi Ubuntu belum diperbarui karena masih terlihat seperti bantuan untuk 16.04 yang merujuk pada eth0, ifup dan ifdown yang semuanya sudah tidak digunakan lagi pada 18: https://help.ubuntu.com/lts/serverguide/network-configuration.html
Saya sudah mencoba mengatur pengaturan adaptor statis dengan Netplan melalui .yaml khusus. Pengaturannya berfungsi dengan baik tetapi saya tidak dapat menemukan IP DNS yang saya atur di mana pun. Saya berharap akan konsisten antara DHCP dan pengaturan statis tetapi saya tidak yakin di mana mencarinya sekarang.
Saya akan puas dengan panggilan pustaka C atau metode CLI bash pada saat ini. Apakah ada yang punya cara untuk memeriksa ini di Server 18.04?
Saya menemukan yang berikut ini menunjukkan server DNS saya berdasarkan adaptor menjelang akhir output:
systemd-resolve --status
Ini berisi daftar di bawah 'DNS Servers' yang disusun berdasarkan Link. Saya pikir ini telah berubah dari versi sebelumnya dengan Ubuntu. Ini akan membutuhkan sedikit pekerjaan penguraian teks tetapi ini memberikan apa yang saya cari.
Cara lainnya adalah:
cat /run/systemd/resolve/resolv.conf
File tersebut dihasilkan secara dinamis oleh systemd-resolved, tetapi berisi server DNS yang sebenarnya, bukan 127.0.0.53.
Bahkan, jika Anda ingin menjadikannya default untuk /etc/resolv.conf
, Anda cukup membuat symlink untuk itu. (/etc/resolv.conf
adalah symlink yang menunjuk ke /run/systemd/resolve/stub-resolv.conf
secara default):
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Contoh /run/systemd/resolve/resolv.conf
:
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 10.1.2.3
search host.domain.com
Untuk info lebih lanjut:
http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html
Saya juga terkejut dengan hal ini. Saya menjalankan Ubuntu 16.04 LTS dan melihat sesuatu yang serupa.
Jika Anda mengeluarkan
dig www.google.ca +trace | grep 'Received'
Host pertama dalam respons adalah yang melakukan pencarian untuk server Anda.
$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 127.0.1.1#53(127.0.1.1) in 19 ms
;; Received 42 bytes from 199.7.91.13#53(d.root-servers.net) in 32 ms
Ini berarti bahwa kotak ini melakukan pencarian dns sendiri secara langsung ke root server dan mengikuti jalur secara rekursif untuk mendapatkan pencarian dns saya.
Ditemukan masalahnya adalah bahwa dnsmasq diaktifkan. Untuk menonaktifkannya lakukan sebagai berikut.
edit file NetworkManager.conf
sudo gedit /etc/NetworkManager/NetworkManager.conf
komentari baris dnsmasq
#dns=dnsmasq
memulai ulang layanan network-manager
sudo /etc/init.d/network-manager restart
kemudian verifikasi bahwa ia menggunakan dns-server yang ditetapkan melalui dhcp
$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 192.168.30.1#53(192.168.30.1) in 18 ms
;; Received 42 bytes from 198.41.0.4#53(a.root-servers.net) in 32 ms