Ubuntu memiliki sistem mendengarkan yang diselesaikan pada port 53 secara default. Jika Anda ingin menjalankan server DNS Anda sendiri, Anda tidak bisa karena port 53 sudah digunakan, sehingga Anda mendapatkan pesan kesalahan seperti ini:"listen tcp 0.0.0.0:53:bind:address sudah digunakan".
Artikel ini menjelaskan cara mencegah systemd-resolved menggunakan port 53 di Ubuntu. Instruksi telah diuji pada Ubuntu 20.04, tetapi juga harus berfungsi pada versi Ubuntu lainnya, mis. Ubuntu 18.04, Ubuntu 20.10 yang akan datang, serta distribusi Linux berbasis Ubuntu seperti Pop! _OS, Zorin OS, Elementary OS, Linux Mint, dan segera. Pada dasarnya ini bekerja pada sistem apa pun dengan systemd versi 232 atau yang lebih baru.
Untuk melihat apakah port 53 digunakan pada sistem Anda, gunakan:
sudo lsof -i :53
Contoh dengan output yang menunjukkan systemd-resolved menggunakan port 53 pada sistem standar Ubuntu 20.04:
$ sudo lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 610 systemd-resolve 12u IPv4 19377 0t0 UDP localhost:domain
systemd-r 610 systemd-resolve 13u IPv4 19378 0t0 TCP localhost:domain (LISTEN)
Jika Anda tidak mendapatkan output apa pun, berarti port 53 tidak digunakan.
Cara menghentikan systemd-resolved dari menggunakan port 53 di Ubuntu
Perlu dicatat bahwa Anda dapat berbagi port 53 hanya dengan menghapus komentar DNSStubListener
dan atur no
di /etc/systemd/resolved.conf
. Langkah lainnya adalah mengaktifkan server DNS – tanpanya, sistem Anda tidak dapat menyelesaikan nama domain, sehingga Anda tidak dapat mengunjungi situs web di browser web, dll.
1. Untuk mengedit /etc/systemd/resolved.conf
buka dengan editor teks (sebagai root), mis. dengan editor teks Nano Console:
sudo nano /etc/systemd/resolved.conf
Dan batalkan komentar (hapus #
dari depan) DNS=
Baris dan DNSStubListener=
Pengelolaan. Selanjutnya, ubah DNS=
Nilai dalam file ini ke server DNS yang ingin Anda gunakan (misalnya 127.0.0.1 untuk menggunakan proxy lokal, 1.1.1.1 untuk menggunakan DNS Cloudflare dll) dan juga mengubah DNSStubListener=
nilai yes
ke no
.
Seperti inilah tampilan file setelah Anda melakukan perubahan ini (saya menggunakan 1.1.1.1 sebagai server DNS, DNS Cloudflare):
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
Untuk menyimpan file menggunakan editor teks nano, tekan Ctrl + x
, lalu ketik y
dan tekan Enter
.
2. Buat tautan simbolis untuk /run/systemd/resolve/resolv.conf
dengan /etc/resolv.conf
sebagai tujuan:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Di sini, -s
digunakan untuk membuat tautan simbolis dan bukan tautan keras, dan -f
digunakan untuk menghapus file target yang ada (sehingga menghapus /etc/resolv.conf
jika tersedia).
3. Nyalakan ulang sistem Anda.
Port 53 sekarang seharusnya bebas di sistem Ubuntu Anda dan Anda seharusnya tidak lagi menerima kesalahan seperti “listen tcp 127.0.0.1:53:bind:address sudah digunakan”.
Anda dapat memeriksa apakah port 53 sedang digunakan atau tidak dengan menjalankan sudo lsof -i :53
– Jika port 53 tidak digunakan, perintah ini seharusnya tidak menampilkan output apa pun.
Anda mungkin menyukai:
- Cara mengosongkan cache DNS di Linux (untuk systemd-resolved, BIND, Dnsmasq, atau nscd)
- Cara mengubah alamat MAC di Linux secara permanen
Cara membatalkan perubahan
Apakah Anda ingin membatalkan perubahan yang Anda buat dengan mengikuti petunjuk dalam artikel ini? Inilah yang harus Anda lakukan.
1. Mulai mengedit /etc/systemd/resolved.conf
buka dengan editor teks (sebagai root), mis. dengan editor teks Nano Console:
sudo nano /etc/systemd/resolved.conf
Dan beri komentar (tambahkan #
di depan baris) DNS=
dan DNSStubListener=no
lalu simpan filenya. Untuk menyimpan file menggunakan editor teks nano, tekan Ctrl + x
, lalu ketik y
dan tekan Enter
.
2 . Hapus /etc/resolv.conf
itu tautan simbolis:
sudo rm /etc/resolv.conf
3 . Nyalakan ulang sistem Anda.