Iniciar sesión
Iniciar sesión

Guía completa del comando nslookup en Linux y Windows

Guía completa del comando nslookup en Linux y Windows
Shahid Ali
Redactor técnico
Redes Administración de DNS
24.10.2025
Reading time: 5 min

El comando nslookup es una herramienta ampliamente utilizada para consultar registros del Sistema de Nombres de Dominio (DNS). Ayuda a los administradores de red a solucionar problemas relacionados con el DNS, permitiéndoles realizar una variedad de consultas, desde encontrar direcciones IP asociadas a nombres de dominio hasta consultar servidores DNS específicos. Este tutorial le guiará a través de los conceptos básicos del uso de nslookup tanto en Linux como en Windows.

En este tutorial aprenderá:

  • Sintaxis básica y opciones de nslookup

  • Cómo realizar consultas DNS simples

  • Cómo obtener registros de intercambio de correo (MX)

  • Cómo realizar consultas DNS inversas

  • Cómo consultar servidores DNS específicos

  • Cómo usar el modo no interactivo

Al final de este tutorial, conocerá los comandos más comunes y útiles de nslookup para una resolución eficaz de problemas de DNS.

Sintaxis básica y opciones de nslookup

La sintaxis básica del comando nslookup es sencilla:

nslookup [opciones] [dominio]

A continuación se muestra un desglose de las opciones más comunes:

  • Sin parámetros: abre el modo interactivo, donde puede introducir varias consultas.

  • [dominio]: realiza una consulta DNS para el nombre de dominio especificado.

  • -type=[tipo_de_registro]: especifica el tipo de registro DNS a consultar (por ejemplo, A, MX, AAAA, etc.).

  • [servidor]: especifica un servidor DNS para la consulta en lugar del servidor predeterminado del sistema.

Ejemplo:

nslookup example.com

Este comando realiza una consulta DNS para "example.com" utilizando su servidor DNS predeterminado.

Opciones comunes de nslookup

  • -query=A: consulta la dirección IP (tipo de registro predeterminado)
  • -query=MX: obtiene registros de intercambio de correo
  • -query=AAAA: consulta direcciones IPv6
  • -timeout=[segundos]: establece un tiempo de espera para la respuesta
  • -debug: muestra información detallada sobre el proceso de consulta

Cómo realizar una consulta DNS simple

Uno de los usos más comunes de nslookup es resolver nombres de dominio en direcciones IP.

Guía paso a paso para realizar una consulta DNS simple:

  1. Abra la terminal o el símbolo del sistema.

  2. Escriba el comando nslookup seguido del nombre de dominio:

nslookup google.com

Salida:
Image1

En este ejemplo, el servidor DNS en 8.8.8.8 (el servidor DNS público de Google) devolvió la dirección IP 142.250.65.238 para google.com.

Usar nslookup para obtener registros MX

Los registros de intercambio de correo (MX) de un dominio indican qué servidores de correo son responsables de recibir correos electrónicos en nombre de ese dominio. Para obtener los registros MX usando nslookup:

Use la opción -type=MX para especificar que desea obtener registros MX.

    nslookup -query=MX gmail.com

Image3

La salida mostrará los registros MX, incluidos los servidores de correo y sus prioridades:

Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
gmail.com	mail exchanger = 20 alt2.gmail-smtp-in.l.google.com..
gmail.com	mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.

En este caso, los servidores de correo para gmail.com se enumeran junto con sus prioridades. Cuanto menor sea el número, mayor será la prioridad.

Realizar consultas DNS inversas

Una consulta DNS inversa traduce una dirección IP a su nombre de dominio asociado. Esto es útil para identificar el dominio que corresponde a una dirección IP determinada.

Para realizar una consulta DNS inversa, introduzca la dirección IP en el comando nslookup:

nslookup 142.250.65.238

La salida mostrará el nombre de dominio asociado con la IP:

Image2

Non-authoritative answer:
238.65.250.142.in-addr.arpa     name = lga25s73-in-f14.1e100.net.

En este ejemplo, la IP 142.250.65.238 se resuelve en lga25s73-in-f14.1e100.net, que forma parte de la infraestructura de Google.

Consultar servidores DNS específicos

De forma predeterminada, nslookup utiliza el servidor DNS configurado en el sistema para realizar consultas. Sin embargo, puede especificar un servidor DNS diferente si es necesario.

Para consultar un servidor DNS específico, agregue la dirección IP del servidor al comando:

nslookup example.com 1.1.1.1

Image5

El comando consultará el servidor DNS 1.1.1.1 (DNS de Cloudflare) para el dominio example.com:

Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
Name:		example.com
Address:	93.184.215.14

Esto le permite probar la resolución DNS desde diferentes servidores.

Usar el modo no interactivo en nslookup

En el modo no interactivo, puede ejecutar varias consultas sin ingresar al entorno interactivo de nslookup. Esto es útil para crear scripts o automatizar tareas.

Para usar nslookup de manera no interactiva, simplemente indique el nombre de dominio y opcionalmente el servidor en un solo comando:

nslookup example.com 8.8.8.8

Image4

La respuesta se imprimirá directamente, sin entrar en el entorno interactivo:

Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:		example.com
Address:	93.184.215.14

Este método es eficiente cuando necesita consultar registros DNS rápidamente sin interacción adicional.

Conclusión

El comando nslookup es una herramienta poderosa y flexible para realizar consultas DNS. Ya sea que esté resolviendo dominios, obteniendo registros MX o realizando búsquedas inversas, nslookup es un comando esencial para los administradores de red. Al dominar sus opciones y sintaxis, podrá usar nslookup de manera efectiva tanto en sistemas Linux como en Windows.

En resumen, en este tutorial hemos visto:

  • Cómo realizar consultas DNS simples

  • Cómo obtener registros MX

  • Cómo realizar consultas DNS inversas

  • Cómo consultar servidores DNS específicos

  • Cómo usar el modo no interactivo

Redes Administración de DNS
24.10.2025
Reading time: 5 min

Similares

Administración de DNS

Configuración de DNS para IPv6: Tutorial paso a paso

Internet está migrando gradualmente a IPv6, y cada vez más sitios web, aplicaciones y dispositivos lo adoptan. Pero tener una dirección IPv6 por sí sola no es suficiente. Para que todo funcione correctamente, es necesario configurar el DNS adecuadamente, tanto del lado del servidor como en su propia computadora. Sin DNS, ninguna conexión funcionará: el navegador simplemente no sabrá a dónde enviar la solicitud. Esto es especialmente crítico en IPv6. Si olvida establecer los registros DNS necesarios, su sitio se volverá invisible para muchos usuarios, e incluso el contenido que antes se abría correctamente podría dejar de funcionar en los dispositivos de los clientes. Cómo verificar si su proveedor de Internet admite IPv6 Esta guía es relevante solo si su proveedor de Internet admite IPv6. Sistema operativo basado en Linux Ejecute el siguiente comando: ip -6 addr show Si ve direcciones de interfaz que comienzan con 2xxx: o 3xxx:, su proveedor admite IPv6. macOS Use el comando: ifconfig Si su proveedor asigna una dirección IPv6, se verá algo como esto: Windows Abra el símbolo del sistema presionando Win + R y luego escriba cmd. Ingrese el siguiente comando: ipconfig Debería ver una salida como esta: Qué es DNS para IPv6 y por qué es importante El DNS es como la libreta de direcciones de Internet. Cuando un usuario escribe la dirección de un sitio web, el navegador no sabe a dónde ir: necesita una dirección IP. El DNS traduce direcciones legibles por humanos a direcciones IP numéricas que los dispositivos y redes pueden usar. Debe configurar DNS para IPv6 en dos lugares: 1. En el servidor (donde se aloja su sitio o servicio) Esto permite que los navegadores encuentren su sitio a través de IPv6. Si la zona DNS de su dominio no contiene un registro AAAA con la dirección IPv6 del servidor, los navegadores ni siquiera sabrán que pueden usar el nuevo protocolo para acceder a su sitio. Como resultado, el sitio puede cargar lentamente o no funcionar en absoluto para los usuarios con acceso solo a IPv6. 2. En el lado del cliente (su computadora o enrutador) Su computadora también necesita saber qué servidor DNS usar para resolver las direcciones de los sitios en formato IPv6. Si su computadora o enrutador no tiene acceso a un servidor DNS que admita IPv6, no podrá abrir el sitio, incluso si su proveedor de Internet admite IPv6. Debe configurar el DNS para IPv6 para que Internet funcione rápidamente, de forma confiable y sin interrupciones con el nuevo protocolo. Sin una configuración adecuada, IPv6 podría estar disponible, pero no operativo. Los mejores servidores DNS públicos para IPv6 Para garantizar un rendimiento estable y rápido, su dispositivo debe saber a qué servidor DNS consultar. Generalmente, el enrutador se encarga de esto: recibe la configuración de su proveedor de Internet y la distribuye en la red. Pero si su proveedor no admite IPv6 o su DNS es inestable, puede especificar manualmente servidores DNS públicos que admitan IPv6. Estas son direcciones gratuitas y confiables accesibles desde cualquier parte del mundo: Nombre Dirección IPv6 DNS primaria Dirección IPv6 DNS secundaria Google DNS 2001:4860:4860::8888 2001:4860:4860::8844 Cloudflare 2606:4700:4700::1111 2606:4700:4700::1001 Quad9 2620:fe::fe 2620:fe::9 OpenDNS 2620:119:35::35 2620:119:53::53 Todos estos servicios: admiten IPv6 sin configuración adicional, responden rápidamente a las consultas en todo el mundo, protegen contra sitios falsos y maliciosos (especialmente Quad9 y OpenDNS). Cuándo debe configurar el DNS manualmente Siga las siguientes instrucciones si se cumple alguna de las condiciones: Su dispositivo no recibe automáticamente la configuración del servidor DNS. Su proveedor de Internet no admite IPv6 a nivel de DNS. Los sitios web cargan lentamente o muestran el error "Dirección no encontrada". Las siguientes secciones explican cómo configurar manualmente los servidores DNS. Solo le tomará unos minutos y proporcionará una conexión a Internet estable y sin errores. Configuración de DNS IPv6 en Windows Si tiene acceso a Internet pero los sitios web no cargan, es posible que Windows no sepa qué servidor DNS usar para IPv6. Puede corregirlo fácilmente configurando manualmente las direcciones correctas. Este método funciona tanto para Windows 10 como para Windows 11, ya que la interfaz es casi idéntica. Abra las conexiones de red: presione Win + R, escriba ncpa.cpl y presione Enter. Se abrirá una ventana con todas las conexiones (Ethernet, Wi-Fi, etc.). Busque su conexión activa. Generalmente se llama “Conexión de área local” o “Red inalámbrica”. Haga clic derecho sobre ella → seleccione Propiedades. Seleccione Protocolo de Internet versión 6 (TCP/IPv6). En la lista de componentes, busque esta línea y haga clic en el botón Propiedades. Ingrese los servidores DNS manualmente: Marque Usar las siguientes direcciones de servidor DNS. Escriba: Preferido: 2001:4860:4860::8888 Alternativo: 2001:4860:4860::8844 Guarde los cambios haciendo clic en Aceptar → Aceptar y cierre la ventana. Windows ahora usará los servidores DNS especificados para las conexiones IPv6. Configuración de DNS IPv6 en Linux La configuración de DNS en Linux depende de la edición que esté utilizando (escritorio o servidor) y de la herramienta de administración de red (NetworkManager, systemd-networkd o configuración manual). Para asegurarse de que todo funcione correctamente con IPv6, debe determinar qué componente gestiona la red y el DNS en su sistema y luego elegir el método de configuración adecuado. Cómo saber qué usa su distribución Abra una terminal y ejecute: nmcli device Si el comando devuelve una lista de interfaces y sus estados, está usando NetworkManager. Si nmcli no está instalado, pruebe: networkctl Si ve interfaces con el estado routable o configured, está usando systemd-networkd. Ubuntu Desktop, Fedora, Manjaro — usando NetworkManager Si utiliza un entorno gráfico (GNOME, KDE, Xfce) y ve un ícono de red en el panel, lo más probable es que esté usando NetworkManager. A través de la interfaz gráfica: Vaya a Configuración → Red → Seleccione la conexión activa → IPv6. En la sección DNS: Cambie el modo a “Manual” o “Avanzado”. Ingrese las direcciones DNS, por ejemplo: 2001:4860:4860::8888 y 2001:4860:4860::8844. Guarde y reinicie la conexión. A través de la terminal: nmcli connection modify eth0 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844" nmcli connection modify eth0 ipv6.ignore-auto-dns yes nmcli connection up eth0 Reemplace eth0 por el nombre real de su interfaz (verifíquelo ejecutando nmcli device). Ubuntu Server (18.04+, 20.04+, 22.04+) — usando Netplan En las ediciones de servidor de Ubuntu, Netplan se utiliza para generar configuraciones para systemd-networkd. Abra el archivo de configuración, por ejemplo: sudo nano /etc/netplan/01-netcfg.yaml Agregue las direcciones IPv6 en la sección nameservers. Asegúrese de seguir estrictamente el formato YAML — use solo espacios, no tabulaciones. Generalmente, las sangrías son múltiplos de 4 espacios. En el campo addresses, inserte la dirección IPv6 con /64. En el campo gateway6, inserte la puerta de enlace — elimine el último grupo de su dirección IPv6 y reemplácelo por 1 para obtener la dirección del gateway. network: version: 2 ethernets: eth0: dhcp4: true dhcp4-overrides: use-dns: false dhcp6: false addresses: - 2001:0db8:a::0370/64 gateway6: 2001:0db8:a::1       match: macaddress: <inserte la dirección MAC de su máquina> nameservers: addresses: - 2001:4860:4860::8888 - 2001:4860:4860::8844 Aplicar los cambios: sudo netplan apply Después de aplicar los cambios, verifique que los servidores DNS correctos estén en uso. Si el campo DNS Servers muestra servidores incorrectos, es probable que estén siendo entregados automáticamente por DHCP. Desactive esto de la siguiente manera: Asegure los permisos correctos del archivo YAML: sudo chmod 600 /etc/netplan/01-netcfg.yaml Elimine el antiguo resolv.conf y cree un enlace simbólico: sudo rm -f /etc/resolv.conf sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf Si obtiene el error “Unable to resolve host”, agregue el nombre de host a /etc/hosts: HOSTNAME=$(hostname) sudo sed -i "/127.0.1.1/d" /etc/hosts echo "127.0.1.1 $HOSTNAME" | sudo tee -a /etc/hosts Habilite systemd-resolved (si aún no está activo): sudo systemctl enable systemd-resolved --now Aplique la configuración y reinicie los servicios: sudo netplan apply sudo systemctl restart systemd-networkd sudo systemctl restart systemd-resolved Verifique nuevamente el resultado: resolvectl status resolvectl dns En este punto, el DNS basado en DHCP debería estar completamente deshabilitado. Sistemas modernos con systemd-resolved Si su sistema usa systemd-resolved directamente (por ejemplo, Arch Linux o Ubuntu con systemd), puede definir el DNS mediante el archivo de configuración. Abra el archivo de configuración: sudo nano /etc/systemd/resolved.conf Agregue las siguientes líneas: [Resolve] DNS=2001:4860:4860::8888 2001:4860:4860::8844 FallbackDNS=2606:4700:4700::1111 Reinicie el servicio: sudo systemctl restart systemd-resolved Configuración manual mediante resolv.conf — si nada más funciona A veces, es más sencillo realizar cambios directamente en /etc/resolv.conf, especialmente en sistemas mínimos o contenedores. Abra el archivo: sudo nano /etc/resolv.conf Agregue las líneas: nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844 Tenga en cuenta que el sistema suele sobrescribir este archivo. Para conservar la configuración: sudo chattr +i /etc/resolv.conf Configurar DNS IPv6 en un enrutador Si ya ha configurado el DNS IPv6 en su servidor y PC, pero el sitio aún no se abre mediante el nuevo protocolo, verifique la configuración de su enrutador. El enrutador distribuye Internet e indica a los dispositivos a dónde enviar las consultas DNS. Si no se establecen servidores DNS compatibles con IPv6 en el enrutador, sus dispositivos domésticos podrían seguir usando el protocolo antiguo, incluso si el proveedor ya migró a IPv6. Dónde encontrar la configuración de DNS IPv6 Depende del modelo, pero la ruta típica es: Configuración del enrutador → Internet / WAN → IPv6 → DNS. Si hay una pestaña separada de DNS, vaya a ella. Algunos modelos ocultan estos parámetros en secciones Avanzadas. Ejemplo: enrutador TP-Link Acceda a la interfaz del enrutador: 192.168.0.1 o tplinkwifi.net Ingrese su usuario y contraseña Vaya a Avanzado → IPv6 Habilite IPv6 — normalmente está desactivado por defecto En la configuración de la conexión WAN, marque Configurar el servidor DNS manualmente Ingrese sus direcciones DNS IPv6 seleccionadas, por ejemplo: 2001:4860:4860::8888 2001:4860:4860::8844 Guarde los cambios y reinicie el enrutador. Ejemplo: enrutador Keenetic Vaya a my.keenetic.net En el menú, seleccione Internet → Conexión Abra la pestaña Servidores DNS Marque Manual Ingrese direcciones IPv6 (por ejemplo, Google DNS) Aplique los cambios y reinicie el enrutador Qué hacer si el DNS no acepta IPv6 Verifique si su enrutador admite IPv6 (no todos los modelos antiguos lo hacen). Asegúrese de que su proveedor haya asignado una dirección IPv6 global (y no solo fe80::). Intente actualizar el firmware del enrutador — a menudo resuelve el problema. Cómo probar DNS sobre IPv6 Probar DNS sobre IPv6 es fácil — tanto en el navegador como en la terminal. Solo toma unos minutos y ayuda a identificar rápidamente dónde está el problema: en el DNS, la red o en el propio IPv6. En el navegador El método más simple es abrir un sitio de prueba: test-ipv6.com La página mostrará: Si existe conexión IPv6. Qué protocolo se usa por defecto (IPv4 o IPv6). Si DNS sobre IPv6 está funcionando. Si los sitios populares tienen registros AAAA. Si todo está en verde, funciona correctamente. Si hay un error, el sitio indicará cuál es el problema. En la terminal (Linux, macOS) Verifique el registro DNS AAAA: dig AAAA google.com Si la respuesta incluye una dirección IPv6 (por ejemplo, 2a00:1450:4009::200e), entonces DNS sobre IPv6 está funcionando. Compruebe qué servidores DNS se están usando: resolvectl status Esto muestra las interfaces activas y los servidores DNS (incluidos los de IPv6). Verifique si el tráfico pasa por IPv6: ping6 google.com O bien: curl -6 https://ifconfig.co Si el comando se ejecuta y muestra una dirección IPv6, la conectividad IPv6 está activa. Resolución de problemas comunes A continuación, encontrará una tabla de referencia para solucionar problemas frecuentes al configurar DNS IPv6: Síntoma Problema Solución Los sitios abren, pero lentamente. ping6 funciona, pero ping es más rápido. El navegador intenta IPv6 primero y luego vuelve a IPv4. El servidor DNS responde demasiado lento. A menudo, el DNS predeterminado del ISP es el culpable. Cambie a un DNS público rápido. Consulte “Configuración de DNS IPv6 en Windows” o “Configuración de DNS IPv6 en Linux”. ping6 google.com → “Name or service not known” El cliente DNS no recibe respuestas IPv6: direcciones de servidor incorrectas o IPv6 deshabilitado en la interfaz. Verifique si IPv6 está activo con ip -6 addr. Asegúrese de que resolvectl status muestre un DNS IPv6. Si no, configúrelo manualmente (vea las guías de Windows o Linux). Internet deja de funcionar después de netplan apply. Error de sintaxis en el archivo YAML o falta la puerta de enlace. Pruebe el archivo con netplan try. Si hay errores, revierta y aplique nuevamente con cuidado. Revise tipografías y sangrías (dos espacios por nivel). No hay conexiones activas en la GUI de Ubuntu. Netplan usa systemd-networkd, mientras que la GUI espera NetworkManager. Edite Netplan para un entorno de servidor o instale NetworkManager y cambie renderer: NetworkManager en la configuración. nslookup -type=AAAA site.com en Windows muestra “Non-existent domain”. El enrutador no tiene DNS IPv6 configurado o su firmware no admite el protocolo. Inicie sesión en el panel del enrutador → “IPv6” → “DNS” → ingrese Cloudflare o Google DNS. Actualice el firmware si falta la sección “IPv6”. El contenedor Docker ignora DNS IPv6. El daemon de Docker usa su propio resolv.conf copiado al inicio. Agregue la dirección DNS a /etc/docker/daemon.json o pásela al iniciar el contenedor: docker run --dns 2606:4700:4700::1111 alpine systemd-resolved almacena en caché un error SERVFAIL. Un DNS ascendente falló; la respuesta fallida quedó en caché. Limpie la caché y cambie de DNS: sudo resolvectl flush-caches sudo systemd-resolve --set-dns=2001:4860:4860::8888 --interface=eth0 Un sitio con HSTS carga por HTTPS solo sobre IPv4. El certificado tiene solo un registro A; falta el AAAA — el navegador no confía. Emita un certificado que valide ambas versiones IP. Para Let’s Encrypt:   sudo certbot --preferred-challenges http -d site.com -d '*.site.com' ping6 a un host local funciona, pero “Network unreachable” hacia Internet. El ISP asignó un prefijo pero no una puerta de enlace (falta gateway6). Agregue la puerta de enlace manualmente: gateway6: 2a03:6f01:1:2::1 Aplique con: sudo netplan apply Hay dirección IPv6, pero las consultas DNS van a 192.168.0.1. El enrutador distribuye DNS IPv4 mediante DHCPv6 Opción 23; el sistema les da mayor prioridad. Establezca DNS IPv6 con la prioridad más alta: sudo resolvectl dns-priority eth0 0 dig @2606:4700:4700::1111 google.com funciona, pero dig google.com no. systemd-resolved escucha en 127.0.0.53; un firewall local bloquea el DNS saliente. Permita tráfico saliente en el puerto 53 (UDP y TCP) o desactive UFW: sudo ufw allow out 53 Compare su síntoma con la primera columna y revise el diagnóstico en la segunda. Ejecute los comandos de la tercera columna y verifique el resultado. Si el problema no se resuelve, vuelva a los pasos de configuración de DNS. Conclusión La transición a IPv6 es lenta pero inevitable. Cada vez más proveedores asignan solo direcciones IPv6, más proveedores de alojamiento operan con Dual Stack y más servicios verifican la compatibilidad con IPv6 por defecto. Si el DNS está mal configurado, las conexiones fallan, los sitios no cargan y los usuarios se van a servicios que sí funcionan. ¿La buena noticia? Todo toma 5–10 minutos: Agregue un registro AAAA en su panel de hosting; Configure servidores DNS públicos confiables en su servidor, enrutador y dispositivos; Verifique el resultado — y olvídese del problema. IPv6 no es “el futuro”: es la manera de asegurar que su sitio web, servicio o red doméstica funcionen de forma confiable hoy mismo. Y un DNS bien configurado es su boleto a este nuevo Internet. Si busca una solución confiable, de alto rendimiento y con buena relación costo-beneficio para sus flujos de trabajo, Hostman le ofrece opciones de Hospedaje VPS Linux, incluidas Debian VPS, Ubuntu VPS y CentOS VPS.
20 October 2025 · 15 min to read
Sistema Linux

Cómo abrir puertos y listar puertos abiertos en Linux

Al trabajar con redes en Linux, puede ser necesario abrir o cerrar un puerto de red. La gestión de puertos es esencial para la seguridad: cuantos menos puertos abiertos tenga un sistema, menos vectores de ataque potenciales existen. Además, si un puerto está cerrado, un atacante no puede recopilar información sobre el servicio que se ejecuta en ese puerto específico. Esta guía explica cómo abrir o cerrar puertos y cómo comprobar los puertos abiertos en distribuciones de Linux como Ubuntu/Debian y CentOS/RHEL utilizando cortafuegos como ufw, firewalld e iptables. Demostraremos este proceso en dos distribuciones Linux: Ubuntu 22.04 y CentOS 9, ejecutadas en un VPS de Hostman. Todos los comandos proporcionados aquí funcionarán en cualquier distribución basada en Debian o RHEL. ¿Qué es un puerto de red? Los puertos se utilizan para acceder a aplicaciones y protocolos específicos. Por ejemplo, un servidor puede alojar tanto un servidor web como una base de datos — los puertos dirigen el tráfico al servicio adecuado. Técnicamente, un puerto de red es un número entero no negativo que va de 0 a 65535. Puertos reservados (0–1023): utilizados por protocolos y servicios de red populares como SSH (puerto 22), FTP (puerto 21), HTTP (puerto 80) y HTTPS (puerto 443). Puertos registrados (1024–49151): pueden ser utilizados por aplicaciones específicas para comunicarse. Puertos dinámicos (49152–65535): se usan para conexiones temporales y pueden asignarse dinámicamente a aplicaciones. Cómo abrir puertos en distribuciones basadas en Debian En sistemas basados en Debian (Ubuntu, Debian, Linux Mint, etc.), puedes usar ufw (Uncomplicated Firewall). ufw viene preinstalado en la mayoría de las distribuciones basadas en APT. Para verificar si está instalado: ufw version Si se muestra una versión, ufw está instalado. De lo contrario, instálalo con: apt update && apt -y install ufw Por defecto, ufw está inactivo, lo que significa que todos los puertos están abiertos. Puedes verificar su estado con: ufw status Para activarlo: ufw enable Deberás confirmar con y. Ten en cuenta que habilitar ufw puede interrumpir las conexiones SSH actuales. Por defecto, ufw bloquea todo el tráfico entrante y permite todo el tráfico saliente. Para comprobar la política por defecto: cat /etc/default/ufw Abrir puertos con ufw Para abrir un puerto: ufw allow <port_number> Ejemplo — abrir el puerto 22 para SSH: ufw allow 22 Puedes abrir varios puertos separándolos con comas y especificando el protocolo (tcp o udp): ufw allow 80,443,8081,8443/tcpufw allow 80,443,8081,8443/udp En lugar de números de puerto, puedes usar el nombre del servicio (definido en /etc/services). Ejemplo — abrir Telnet (puerto 23): ufw allow telnet Nota: No puedes especificar varios nombres de servicios a la vez; ufw devolverá un error: Para abrir un rango de puertos: ufw allow <start_port>:<end_port>/<protocol> Ejemplo: ufw allow 8000:8080/tcp Cerrar puertos con ufw Para cerrar un puerto: ufw deny <port_number> Ejemplo — cerrar el puerto 80: ufw deny 80 También puedes usar el nombre del servicio. Ejemplo — cerrar FTP (puerto 21): ufw deny ftp Ver puertos abiertos con ufw Para listar todos los puertos abiertos y cerrados: ufw status O para una vista más detallada: ufw status verbose Cómo abrir un puerto en distribuciones basadas en RHEL Las distribuciones basadas en RHEL (CentOS 7+, RHEL 7+, Fedora 18+, OpenSUSE 15+) usan firewalld por defecto. Abrir puertos con firewalld Verifica si firewalld está instalado: firewall-offline-cmd -V Si se muestra una versión, firewalld está instalado. Si no, instálalo: dnf install firewalld Por defecto, firewalld está deshabilitado. Verifica su estado: firewall-cmd --state Para habilitarlo: systemctl start firewalld Abrir el puerto 8080 para TCP: firewall-cmd --zone=public --add-port=8080/tcp --permanent --zone=public: especifica la zona de la regla. --add-port=8080/tcp: especifica el puerto y el protocolo. --permanent: guarda la regla de forma permanente. También puedes abrir un servicio utilizando su nombre, por ejemplo HTTP (puerto 80): firewall-cmd --zone=public --add-service=http --permanent Aplicar los cambios: firewall-cmd --reload Cerrar puertos con firewalld Para cerrar un puerto por número: firewall-cmd --zone=public --remove-port=8080/tcp --permanent O por nombre del servicio: firewall-cmd --zone=public --remove-service=http --permanent Recarga siempre después de los cambios: firewall-cmd --reload Listar puertos abiertos con firewalld Para listar todos los puertos abiertos: firewall-cmd --list-ports Gestionar puertos con iptables A diferencia de ufw y firewalld, iptables viene preinstalado en muchas distribuciones (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux). Abrir puertos con iptables Para abrir el puerto 8182 para conexiones entrantes: iptables -A INPUT -p tcp --dport 8182 -j ACCEPT -A INPUT: agrega una regla a la cadena INPUT. -p tcp: especifica el protocolo. --dport 8182: especifica el puerto a abrir. -j ACCEPT: permite el tráfico a través del puerto. Para conexiones salientes: iptables -A OUTPUT -p tcp --dport 8182 -j ACCEPT Para abrir un rango de puertos: iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j ACCEPT Cerrar puertos con iptables Para cerrar un puerto: iptables -A INPUT -p tcp --dport 8182 -j DROP Cerrar un rango de puertos: iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j DROP Guardar reglas de iptables Por defecto, las reglas de iptables solo son efectivas hasta que se reinicie el servidor. Para guardarlas permanentemente, instala iptables-persistent: Para sistemas basados en APT: apt update && apt -y install iptables-persistent Para sistemas basados en DNF: dnf -y install iptables-persistent Guardar las reglas actuales: iptables-save Las reglas se recargarán automáticamente tras el siguiente reinicio. Ver puertos abiertos con iptables Listar todas las reglas y puertos abiertos: iptables -L -v -n Listar solo reglas IPv4: iptables -S Listar reglas IPv6: ip6tables -S Conclusión En esta guía hemos mostrado cómo abrir y cerrar puertos de red en Linux y cómo comprobar los puertos abiertos actualmente utilizando tres herramientas diferentes: ufw, firewalld e iptables. Una gestión adecuada de los puertos reduce el riesgo de posibles ataques a la red y ayuda a ocultar información sobre los servicios que utilizan esos puertos.
10 October 2025 · 6 min to read

¿Tienes preguntas,
comentarios o inquietudes?

Nuestros profesionales están disponibles para asistirte en cualquier momento,
ya sea que necesites ayuda o no sepas por dónde empezar.
Hostman's Support