Giải phóng port 53 trên server Ubuntu

Port 53 được sử dụng cho các dịch vụ phân giải tên miền. Nếu bạn có ý định vận hành một ứng dụng dạng này (chẳng hạn Pi-Hole) bạn sẽ cần đến nó. Tuy vậy, trên server Ubuntu, port này được chiếm dụng bởi dịch vụ systemd-resolve, nếu bạn cố gắng bind port 53, bạn sẽ nhận được thông báo listen tcp 0.0.0.0:53: bind: address already in use.

Sự hoạt động của systemd-resolve có thể được kiểm chứng bằng câu lệnh sudo lsof -i :53:

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

Cách giải quyết là không có cách nào khác, cần vô hiệu hóa systemd-resolve một cách an toàn.

Cụ thể, bước đầu tiên cần tắt daemon:

sudo systemctl stop systemd-resolved

Sau đó edit tập tin /etc/systemd/resolved.conf , bổ sung khóa DNS=127.0.0.1 hoặc DNS=1.1.1.1, tùy bạn muốn sử dụng DNS server nào; và đặt khóa DNSStubListener thành no:

[Resolve]
DNS=127.0.0.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no

Mồi tập tin này cho systemd-resolve bằng cách tạo một symbolic link tới etc/resolv.conf:

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

Khởi động lại máy tính, chạy thử sudo lsof -i :53, command không cho ra bất cứ output nào, thể hiện rằng port 53 không còn bị chiếm dụng nữa.

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *