Ubuntu:如何釋放systemd-resolved使用的端口53

默認情況下,Ubuntu已在端口53上進行了systemd解析的偵聽。如果您運行自己的DNS服務器,則因為端口53已被使用而無法執行。因此,發生以下錯誤。 “監聽tcp 0.0.0.0:53:bind:地址已在使用中”本文介紹如何防止systemd-resolved在Ubuntu上使用端口53。該過程已在Ubuntu 20.04上進行了測試,但也應在其他Ubuntu版本上也可以使用。 Ubuntu 18.04,下一個Ubuntu 20.10和Pop! _OS,Zorin OS,Elementary OS,Linux Mint和其他基於Ubuntu的Linux發行版。基本上,這適用於系統版本232及更高版本的所有系統。

要查看系統是否使用端口53,請使用以下命令:

sudo lsof -i :53

輸出示例顯示在默認Ubuntu 20.04系統上使用端口53解析的systemd:

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

如果未獲得任何輸出,則表示未使用端口53。

如何防止systemd-resolved在Ubuntu上使用端口53

值得注意的是,您只需取消注釋即可釋放端口53 DNSStubListener 而且它 no/etc/systemd/resolved.conf..其他步驟用於啟用DNS服務器。沒有DNS服務器,系統將無法解析域名,並且您將無法使用網絡瀏覽器訪問您的網站。編輯 /etc/systemd/resolved.conf 使用文本編輯器(以根用戶身份)將其打開,例如在Nano控制台文本編輯器中。

sudo nano /etc/systemd/resolved.conf

然後取消注釋(刪除 # 從行的開頭) DNS= 線和 DNSStubListener= 線。下一個, DNS= 將此文件中的值設置為DNS服務器(例如,如果使用本地代理,則為127.0.0.1,如果使用Cloudflare DNS,則為1.1.1.1)。還有 DNSStubListener= 來自的價值 yesno..
進行這些更改後,文件的外觀如下所示(我使用1.1.1.1作為DNS服務器,即Cloudflare DNS):

[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes

要使用Nano文本編輯器保存文件, Ctrl + x然後輸入 y 然後按 Enter.2。的符號鏈接 /run/systemd/resolve/resolv.conf 什麼時候 /etc/resolv.conf 作為目的地:

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

這裡, -s 要創建符號鏈接而不是硬鏈接, -f 這旨在刪除現有的目標文件(因此 /etc/resolv.conf 如果存在)3。重新啟動系統。
這將釋放Ubuntu系統上的端口53,並且您將不再收到諸如“監聽tcp 127.0.0.1:53:bind:地址已在使用”之類的錯誤。
您可以通過運行以下命令來檢查端口53是否正在使用 sudo lsof -i :53 -如果未使用端口53,此命令將不顯示任何輸出。
如果你喜歡:

  • 如何在Linux上刷新DNS緩存(對於systemd-resolved,BIND,Dnsmasq或nscd)
  • 如何在Linux中永久更改MAC地址

如何還原變更

您要撤消按照本文中的說明進行的更改嗎?這是您要做的事情:1。從編輯開始 /etc/systemd/resolved.conf 使用文本編輯器(以根用戶身份)將其打開,例如在Nano控制台文本編輯器中。

sudo nano /etc/systemd/resolved.conf

並注釋掉(添加 # 前行) DNS=DNSStubListener=no,保存文件。要使用Nano文本編輯器保存文件, Ctrl + x然後輸入 y 然後按 Enter.2。去掉 /etc/resolv.conf 符號鏈接:

sudo rm /etc/resolv.conf

3.重新啟動系統。

Sidebar