Ubuntu tiene una escucha resuelta por systemd en el puerto 53 de forma predeterminada. Si desea ejecutar su propio servidor DNS, no puede porque el puerto 53 ya está en uso, por lo que recibe un mensaje de error similar a este:"escucha tcp 0.0.0.0:53:enlace:dirección ya en uso". /P>
Este artículo explica cómo evitar que systemd-resolved use el puerto 53 en Ubuntu. Las instrucciones se han probado en Ubuntu 20.04, pero también deberían funcionar en otras versiones de Ubuntu, p. Ubuntu 18.04, el próximo Ubuntu 20.10, así como distribuciones de Linux basadas en Ubuntu como Pop! _OS, Zorin OS, Elementary OS, Linux Mint y pronto. Básicamente, esto funciona en cualquier sistema con systemd versión 232 o posterior.
Para ver si el puerto 53 se usa en su sistema, use:
sudo lsof -i :53
Ejemplo con salida que muestra que systemd-resolved está usando el puerto 53 en un sistema Ubuntu 20.04 estándar:
$ 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)
Si no obtiene ningún resultado, significa que el puerto 53 no está en uso.
Cómo evitar que systemd-resolved use el puerto 53 en Ubuntu
Vale la pena señalar que puede compartir el puerto 53 simplemente descomentándolo DNSStubListener
y configurarlo no
en /etc/systemd/resolved.conf
. Los otros pasos son habilitar un servidor DNS; sin él, su sistema no puede resolver nombres de dominio, por lo que no puede visitar sitios web en el navegador web, etc.
1. Para editar /etc/systemd/resolved.conf
abrir con un editor de texto (como root), p. con el editor de texto de Nano Console:
sudo nano /etc/systemd/resolved.conf
Y descomentar (quitar #
de frente) el DNS=
Línea y el DNSStubListener=
Administración. A continuación, cambie el DNS=
Valor en este archivo para el servidor DNS que desea usar (por ejemplo, 127.0.0.1 para usar un proxy local, 1.1.1.1 para usar el DNS de Cloudflare, etc.) y también cambie el DNSStubListener=
valor de yes
a no
.
Este es el aspecto que debería tener el archivo después de realizar estos cambios (estoy usando 1.1.1.1 como servidor DNS, el DNS de Cloudflare):
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
Para guardar el archivo usando el editor de texto nano, presione Ctrl + x
, luego escribe y
y presiona Enter
.
2. Crea un enlace simbólico para /run/systemd/resolve/resolv.conf
con /etc/resolv.conf
como meta:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Aquí, -s
se utiliza para crear un enlace simbólico y no físico, y -f
se utiliza para eliminar archivos de destino existentes (por lo que elimina /etc/resolv.conf
si está disponible).
3. Reinicie su sistema.
El puerto 53 ahora debería estar libre en su sistema Ubuntu y ya no debería recibir errores como "escuchar tcp 127.0.0.1:53:enlazar:dirección ya en uso".
Puede verificar si el puerto 53 está en uso o no ejecutando sudo lsof -i :53
– Si no se usa el puerto 53, este comando no debería mostrar ningún resultado.
Te puede gustar:
- Cómo borrar la caché de DNS en Linux (para systemd-resolved, BIND, Dnsmasq o nscd)
- Cómo cambiar permanentemente la dirección MAC en Linux
Cómo deshacer los cambios
¿Desea deshacer los cambios realizados siguiendo las instrucciones de este artículo? Esto es lo que tienes que hacer.
1. Empezar a editar /etc/systemd/resolved.conf
abrir con un editor de texto (como root), p. con el editor de texto de Nano Console:
sudo nano /etc/systemd/resolved.conf
Y comentar (añadir #
delante de la línea) DNS=
y DNSStubListener=no
luego guarde el archivo. Para guardar el archivo usando el editor de texto nano, presione Ctrl + x
, luego escribe y
y presiona Enter
.
2 . Elimina ese /etc/resolv.conf
enlace simbólico:
sudo rm /etc/resolv.conf
3 . Reinicie su sistema.