O Ubuntu tem escuta resolvida pelo sistema na porta 53 por padrão. Caso queira rodar seu próprio servidor DNS, você não pode porque a porta 53 já está em uso, então você obterá um erro semelhante a este: "listen tcp 0.0.0.0:53: bind: address already in use" .
Este artigo explica como impedir que o systemd-resolved use a porta 53 no Ubuntu. As instruções foram testadas no Ubuntu 20.04, mas também devem funcionar em outras versões do Ubuntu, por exemplo, Ubuntu 18.04, o próximo Ubuntu 20.10, bem como distribuições Linux baseadas no Ubuntu como Pop!_OS, Zorin OS, Elementary OS, Linux Mint e assim por diante. Basicamente, isso funciona em qualquer sistema com a versão 232 do systemd ou mais recente.
Para ver se a porta 53 está em uso em seu sistema, use:
sudo lsof -i: 53
Exemplo com saída, mostrando que systemd -olved está usando a porta 53 em um sistema Ubuntu 20.04 padrão:
$ 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)
Caso você não obtenha nenhuma saída, significa que a porta 53 não está em uso.
É importante notar que você pode liberar a porta 53 simplesmente descomentando DNSStubListener
e definindo-o como no
em /etc/systemd/resolved.conf
. As outras etapas são para habilitar um servidor DNS. Sem ele, seu sistema não será capaz de resolver nenhum nome de domínio, então você não poderá visitar sites no navegador da web, etc.
Edite /etc/systemd/resolved.conf
com um editor de texto (como root), por exemplo abra-o com o editor de texto do console Nano:
sudo nano /etc/systemd/resolved.conf
E retire o comentário (remova #
do início da linha) a linha DNS=
e a linha DNSStubListener=
. Em seguida, altere o valor DNS=
neste arquivo para o servidor DNS que você deseja usar (por exemplo, 127.0.0.1 para usar um proxy local, 1.1.1.1 para usar o DNS Cloudflare, etc.) e também altere o valor DNSStubListener=
de sim para não.
É assim que o arquivo deve ficar depois que você fez essas alterações (estou usando 1.1.1.1 como o servidor DNS aqui, que é o DNS Cloudflare):
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
Para salvar o arquivo usando o editor de texto Nano, pressione Ctrl + x, digite y e pressione Enter.
Crie um link simbólico para /run/systemd/resolve/resolv.conf
com /etc/resolv.conf
como destino:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Aqui, -s
é para criar um link simbólico e não físico, e -f
é para remover quaisquer arquivos de destino existentes (portanto, remove /etc/resolv.conf
se existir).
A porta 53 agora deve estar livre em seu sistema Ubuntu, e você não deve mais receber erros como "listen tcp 127.0.0.1:53: bind: endereço já em uso".
Você pode verificar se a porta 53 está em uso ou não executando sudo lsof -i: 53
. Se a porta 53 não estiver em uso, este comando não deve mostrar nenhuma saída.
Você pode gostar:
Deseja desfazer as alterações seguindo as instruções neste artigo? É isto que você deve fazer.
1. Comece editando /etc/systemd/resolved.conf
com um editor de texto (como root), por exemplo abra-o com o editor de texto do console Nano:
sudo nano /etc/systemd/resolved.conf
E comente (adicione # antes da linha) DNS=
e DNSStubListener=no
e salve o arquivo. Para salvar o arquivo usando o editor de texto Nano, pressione Ctrl + x, digite y e pressione Enter.
2. Remova o link simbólico /etc/resolv.conf
:
sudo rm /etc/resolv.conf
3. Reinicie seu sistema.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Ubuntu: How To Free Up Port 53, Used By systemd-resolved