Ubuntu ha risolto il sistema di ascolto sulla porta 53 per impostazione predefinita. Se si desidera eseguire il proprio server DNS, non è possibile perché la porta 53 è già in uso, quindi viene visualizzato un messaggio di errore simile a questo:“listen tcp 0.0.0.0:53:bind:indirizzo già in uso “.
Questo articolo spiega come impedire a systemd-resolved di utilizzare la porta 53 su Ubuntu. Le istruzioni sono state testate su Ubuntu 20.04, ma dovrebbero funzionare anche su altre versioni di Ubuntu, ad es. Ubuntu 18.04, l'imminente Ubuntu 20.10, così come le distribuzioni Linux basate su Ubuntu come Pop! _OS, SO Zorin, SO elementare, Linux Mint e presto. Fondamentalmente funziona su qualsiasi sistema con versione systemd 232 o successiva.
Per vedere se la porta 53 è utilizzata sul tuo sistema, usa:
sudo lsof -i :53
Esempio con output che mostra che la risoluzione di sistema utilizza la porta 53 su un sistema Ubuntu 20.04 standard:
$ 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)
Se non ottieni alcun output, significa che la porta 53 non è in uso.
Come impedire a systemd-resolved di utilizzare la porta 53 su Ubuntu
Vale la pena notare che puoi condividere la porta 53 semplicemente decommentandola DNSStubListener
e impostalo no
in /etc/systemd/resolved.conf
. Gli altri passaggi sono abilitare un server DNS:senza di esso, il tuo sistema non può risolvere i nomi di dominio, quindi non puoi visitare i siti Web nel browser Web, ecc.
1. Per modificare /etc/systemd/resolved.conf
aprire con un editor di testo (come root), ad es. con l'editor di testo di Nano Console:
sudo nano /etc/systemd/resolved.conf
E decommenta (rimuovi #
dalla parte anteriore) il DNS=
Riga e il DNSStubListener=
Gestione. Quindi, cambia il DNS=
Dai un valore in questo file al server DNS che desideri utilizzare (ad es. 127.0.0.1 per utilizzare un proxy locale, 1.1.1.1 per utilizzare il DNS Cloudflare ecc.) e cambia anche DNSStubListener=
valore di yes
a no
.
Ecco come dovrebbe apparire il file dopo aver apportato queste modifiche (sto usando 1.1.1.1 come server DNS, il DNS di Cloudflare):
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
Per salvare il file utilizzando l'editor di testo nano, premi Ctrl + x
, quindi digita y
e premi Enter
.
2. Crea un collegamento simbolico per /run/systemd/resolve/resolv.conf
con /etc/resolv.conf
come obiettivo:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Qui, -s
viene utilizzato per creare un collegamento simbolico e non fisico e -f
viene utilizzato per rimuovere i file di destinazione esistenti (quindi rimuove /etc/resolv.conf
se disponibile).
3. Riavvia il sistema.
La porta 53 ora dovrebbe essere libera sul tuo sistema Ubuntu e non dovresti più ricevere errori come "listen tcp 127.0.0.1:53:bind:indirizzo già in uso".
Puoi verificare se la porta 53 è in uso o meno eseguendo sudo lsof -i :53
– Se la porta 53 non viene utilizzata, questo comando non dovrebbe mostrare alcun output.
Potrebbe piacerti:
- Come svuotare la cache DNS su Linux (per systemd-resolved, BIND, Dnsmasq o nscd)
- Come modificare in modo permanente l'indirizzo MAC su Linux
Come annullare le modifiche
Vuoi annullare le modifiche apportate seguendo le indicazioni in questo articolo? Questo è quello che devi fare.
1. Inizia a modificare /etc/systemd/resolved.conf
aprire con un editor di testo (come root), ad es. con l'editor di testo di Nano Console:
sudo nano /etc/systemd/resolved.conf
E commenta (aggiungi #
davanti alla riga) DNS=
e DNSStubListener=no
quindi salva il file. Per salvare il file utilizzando l'editor di testo nano, premi Ctrl + x
, quindi digita y
e premi Enter
.
2 . Rimuovi quel /etc/resolv.conf
collegamento simbolico:
sudo rm /etc/resolv.conf
3 . Riavvia il sistema.