Errore "port 53 already in use"
Se state installando un server DNS, molto probabilmente verrete accolti da un errore che vi segnala che la porta è già utilizzata. Si tratta di systemd-resolved che la sta utilizzando. Vediamo insieme come liberare la porta 53 per usarla con un altro software.
Se state installando AdGuard Home, creando un Load Balancer DNS con NGINX, oppure state installando un qualsiasi altro programma che vorrebbe usare la porta 53 e vi ritrovate un errore di porta già in utilizzo, l'errore è probabilmente riconducibile a systemd-resolved.
Che cosa è systemd-resolved
systemd-resolved è un client DNS con funzionalità di caching, di default abilitato all'installazione dei sistemi operativi che utilizzano systemd, come Ubuntu, Debian e Fedora.
La sua funzione è quella di fare da tramite tra le applicazioni installate sulla macchina, ed uno o più server DNS in rete.
La definizione corretta di questa funzionalità è che resolved fa da DNS Stub Resolver.
A cosa serve un DNS Stub Resolver
Aprite un qualsiasi browser web ed andate alla homepage di Google.
Il vostro browser dovrà tradurre www.google.com in un indirizzo IP per poterlo raggiungere. A chi inoltra questa richiesta?
Non direttamente al server DNS che avete impostato sulla macchina (il browser non ne è a conoscenza) ma allo stub resolver, cioè 127.0.0.1:53
Dato il suo funzionamento, un DNS Stub Resolver occupa la porta 53 in ascolto sulla macchina.
Come liberare la porta 53
Per liberare la porta ed utilizzarla con un altro software, basta seguire i passaggi seguenti:
Modificate le impostazioni di resolved.
nano /etc/systemd/resolved.confIndicando in DNS l'indirizzo di un altro server DNS (quello del Gateway, magari) e disattivando il parametro DNSStubListener.
DNS=192.168.0.1
DNSStubListener=noCreate un symlink al file.
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.confInfine riavviare il programma che stavate installando e la porta 53 dovrebbe essere libera!
