Cómo acceder a tu servidor en casa desde internet

Tienes un servidor funcionando en casa. Quizá sea Home Assistant, Nextcloud, un servidor de Minecraft, una web personal o un servidor de correo. Funciona en tu red local. Ahora quieres que el resto de internet pueda llegar a él.

Hay cinco formas realistas de hacerlo, cada una con sus ventajas e inconvenientes en coste, protocolos admitidos y si funcionan o no detrás de CGNAT. Esta guía repasa las cinco, de la más sencilla a la más completa, para que elijas la adecuada para tu caso. Si todavía no tienes una IP pública (consulta cómo conseguir una IP pública), algunos de estos métodos no funcionarán en absoluto, y saberlo de antemano te ahorra horas de pruebas.

Diagrama comparativo de los 5 métodos para exponer un servidor en casa a internet, con el recorrido del tráfico en cada uno

Antes de empezar: comprueba tu conexión

Antes de elegir un método, necesitas saber qué tipo de conexión a internet tienes. Haz primero estas comprobaciones.

¿Tienes una IP pública?

Desde cualquier dispositivo de tu red local, ejecuta:

curl https://api.getpublicip.com/ip

Después entra en el panel de administración de tu router y busca la dirección IP WAN (normalmente en "Estado" o "Internet"). Si las dos direcciones coinciden, tienes una IP pública real. Si no coinciden, tu proveedor de internet está haciendo algo antes de llegar a ti, lo más probable CGNAT.

Consulta nuestra guía completa para ver tu IP pública en Linux si quieres más comandos y alternativas.

¿Tu IP es fija o dinámica?

La mayoría de los proveedores de internet domésticos asignan IP dinámicas que cambian cada cierto tiempo (cada pocas horas, días o semanas). Puedes comprobarlo ejecutando curl https://api.getpublicip.com/ip durante varios días y comparando los resultados. Si la dirección cambia, tienes una IP dinámica. Es posible que tu proveedor ofrezca contratar una IP fija, normalmente con un coste mensual adicional.

¿Estás detrás de CGNAT?

Si la interfaz WAN de tu router muestra una dirección en el rango 100.64.0.0 - 100.127.255.255, estás detrás de un NAT de operador (CG-NAT). Eso significa que tu proveedor comparte una IP pública entre muchos clientes y que por muchos puertos que abras en tu router, no funcionará. Los métodos 1 y 2 quedan descartados. Necesitas el método 3, 4 o 5.

Método 1: Abrir puertos (gratis, requiere IP pública)

Abrir puertos en el router es la forma más antigua y directa de exponer un servidor casero. Le dices a tu router: "todo el tráfico que llegue al puerto X, envíalo a la IP interna Y en el puerto Z".

Cómo configurarlo

  1. Asigna a tu servidor una IP local fija (por ejemplo, 192.168.1.100), ya sea configurándola manualmente en el servidor o creando una reserva DHCP en el router.
  2. Entra en el panel de administración del router.
  3. Busca la sección de redirección de puertos (a veces se llama "servidores virtuales" o "reglas NAT").
  4. Crea una regla: el puerto externo (por ejemplo, 443 para HTTPS) redirigido a la IP interna de tu servidor en el mismo puerto.
  5. Guarda y prueba desde una red externa (el teléfono con datos móviles, o pide a alguien que lo pruebe).

Cuándo funciona

Tienes una IP pública real de tu proveedor de internet (no CGNAT) y tu proveedor no bloquea los puertos que necesitas. Es gratis y admite todos los protocolos, cualquier puerto TCP o UDP.

Cuándo no funciona

  • CGNAT: tu proveedor comparte tu IP pública con otros clientes. Abrir puertos en tu router no tiene ningún efecto, porque el NAT del operador nunca te reenvía el tráfico. Consulta nuestra guía sobre CGNAT para confirmarlo.
  • Bloqueo de puertos del proveedor: algunos proveedores bloquean puertos habituales como el 25 (SMTP), el 80 (HTTP) o el 443 (HTTPS) en las tarifas domésticas.
  • IP dinámica: tu IP pública cambia, así que quien intente llegar a tu servidor por su dirección IP perderá la conexión cuando cambie. El método 2 lo resuelve.

Si abrir puertos no te funciona, consulta nuestra guía para solucionar problemas al abrir puertos.

Método 2: DNS dinámico + abrir puertos (gratis, resuelve los cambios de IP)

Si tu proveedor te da una IP pública real pero cambia cada cierto tiempo, el DNS dinámico (DDNS) mantiene un nombre de host apuntando a tu dirección actual.

Cómo funciona

Un pequeño agente se ejecuta en tu servidor (o en el router, si lo admite) e informa periódicamente de tu IP pública actual a un proveedor de DNS. Cuando tu IP cambia, el registro DNS se actualiza automáticamente. Quien se conecte a yourserver.duckdns.org siempre llega a la dirección correcta.

Proveedores de DDNS populares

  • DuckDNS: gratuito, de código abierto, con una API sencilla
  • No-IP: plan gratuito con renovación manual cada 30 días
  • Cloudflare DNS: gratis si ya tienes un dominio y usas Cloudflare para el DNS; actualizas el registro A mediante su API

Ejemplo de configuración con DuckDNS

# Add to crontab: updates your IP every 5 minutes
*/5 * * * * curl -s "https://www.duckdns.org/update?domains=YOURDOMAIN&token=YOURTOKEN&ip=" > /dev/null

Limitaciones

El DDNS solo resuelve el problema de "mi IP no deja de cambiar". Sigues necesitando que abrir puertos funcione, lo que significa que sigues necesitando una IP pública real. El DDNS no evita el CGNAT. Si estás detrás de CGNAT, pasa directamente al método 3, 4 o 5. Lo explicamos con más detalle en DNS dinámico detrás de CGNAT.

Además, hay un retraso de propagación. Cuando tu IP cambia, la actualización del DNS puede tardar unos minutos en propagarse, y durante ese tiempo tu servidor no es accesible.

Método 3: Cloudflare Tunnel (gratis, solo HTTP/HTTPS)

Cloudflare Tunnel (antes Argo Tunnel) crea una conexión saliente desde tu servidor hasta la red perimetral de Cloudflare. Como la conexión es saliente, evita el CGNAT por completo.

Cómo funciona

  1. Instala el servicio cloudflared en tu servidor.
  2. Autentícate con tu cuenta de Cloudflare y crea un túnel.
  3. Configura qué servicio local quieres exponer (por ejemplo, localhost:8080).
  4. Cloudflare asigna una URL en tu dominio, y el tráfico sigue este camino: visitante -> red de Cloudflare -> túnel -> tu servidor.

Ventajas

  • Gratis con el plan gratuito de Zero Trust
  • Evita el CGNAT, ya que es tu servidor quien inicia la conexión
  • Configuración sencilla con la CLI cloudflared
  • Protección DDoS integrada gracias a la red de Cloudflare

Inconvenientes

  • Solo HTTP y HTTPS en el plan gratuito. No admite TCP sin restricciones, UDP, correo (SMTP), servidores de juegos, VoIP ni SSH en puertos personalizados.
  • El SSL termina en Cloudflare. Cloudflare descifra tu tráfico HTTPS en su red, lo inspecciona y lo vuelve a cifrar antes de enviarlo a tu servidor. Puede ver en texto plano el contenido de cada petición y respuesta. Para algunos usos, esto lo descarta.
  • Sin IP dedicada. Tu dominio apunta al espacio de IP compartido de Cloudflare, no a una dirección dedicada.
  • Sin DNS inverso. No puedes configurar registros PTR, lo que descarta alojar correo.

Cloudflare Tunnel es una opción gratuita excelente si solo necesitas exponer una aplicación web y no te importa que Cloudflare termine tu SSL. Para una comparación más a fondo, consulta GetPublicIP vs Cloudflare Tunnel vs Tailscale.

Método 4: Tailscale / red mallada WireGuard (plan gratuito, acceso privado)

Tailscale es una VPN mallada basada en WireGuard. Conecta tus dispositivos en una red privada (llamada tailnet) sin necesidad de configuración.

Cómo funciona

  1. Instala Tailscale en tu servidor y en cualquier dispositivo desde el que quieras conectarte (teléfono, portátil, etc.).
  2. Inicia sesión con la misma cuenta en cada dispositivo.
  3. Tus dispositivos ya pueden comunicarse entre sí usando las IP que asigna Tailscale, sin importar la red, el CGNAT o los firewalls.

Ventajas

  • Sin configuración: instalas, inicias sesión y listo
  • Evita el CGNAT, ya que, cuando hace falta, las conexiones se retransmiten a través de los servidores de coordinación de Tailscale
  • El plan gratuito admite hasta 3 usuarios y 100 dispositivos
  • Cifrado de extremo a extremo dentro de tu tailnet

Inconvenientes

  • No es público. Solo los dispositivos de tu red Tailscale pueden conectarse. Un visitante cualquiera de internet no puede llegar a tu servidor.
  • Tailscale Funnel puede publicar servicios HTTPS, pero se limita a HTTPS, pasa por la infraestructura de retransmisión de Tailscale y tiene límites de ancho de banda no publicados. No está pensado para alojamiento público en producción.
  • No sirve para servicios públicos como webs, servidores de correo o servidores de juegos que deban ser accesibles para cualquiera.

Tailscale es la mejor opción si solo necesitas acceder a tu servidor casero desde tus propios dispositivos cuando estás fuera de casa. No es la herramienta adecuada para alojar servicios públicos.

Método 5: Servicio de IP pública dedicada (cualquier protocolo, acceso público)

GetPublicIP te asigna una dirección IPv4 pública real y dedicada y la envía a tu servidor a través de un túnel WireGuard cifrado. Tu servidor recibe el tráfico exactamente igual que si la IP pública estuviera configurada directamente en tu equipo: todos los puertos, todos los protocolos, sin modificar ni inspeccionar tus paquetes.

Cómo funciona

  1. Crea una cuenta y solicita una dirección IP pública.
  2. Instala WireGuard en tu servidor e importa el archivo de configuración desde tu panel.
  3. El túnel WireGuard conecta tu servidor con la infraestructura perimetral de GetPublicIP.
  4. Todo el tráfico entrante hacia tu IP pública llega por el túnel a tu servidor. Tu servidor responde directamente.

Como el túnel es una conexión saliente desde tu servidor, funciona detrás de CGNAT, de proveedores restrictivos y de cualquier configuración de red.

Qué lo hace diferente

  • Todos los protocolos: TCP, UDP, ICMP, todos los puertos del 1 al 65535. Aloja webs, servidores de correo, servidores de juegos, VoIP, DNS, SSH o lo que necesites.
  • Cifrado de extremo a extremo: SSL/TLS termina en tu servidor, no en un proxy. GetPublicIP nunca descifra, inspecciona ni modifica tu tráfico.
  • IP dedicada: la dirección IPv4 es solo tuya, no se comparte con otros clientes.
  • DNS inverso: configura registros PTR para tu IP, algo imprescindible para que tu correo llegue a su destino.
  • Portátil: lleva tu servidor a otra ubicación, a otro proveedor o a otro país. Tu IP pública sigue siendo la misma.
  • Conmutación por error: si tu conexión a internet principal se cae, tu IP puede pasar automáticamente a otra conexión.
  • Oculta la IP de tu casa: el tráfico de internet llega a tu IP dedicada en nuestra red, no a la dirección de tu casa asignada por tu proveedor.

Precio

8,99 USD al mes por dirección IP. Sin permanencia, cancela cuando quieras.

¿Listo para empezar? Crea una cuenta o sigue la guía de primeros pasos.

Tabla comparativa

MétodoFunciona detrás de CGNATTodos los protocolosAlojar correoSSL/TLSCosteComplejidad
Abrir puertosNoSíSí (si el puerto 25 está abierto)En tu servidorGratisBaja
DDNS + abrir puertosNoSíSí (si el puerto 25 está abierto)En tu servidorGratisBaja
Cloudflare TunnelSíSolo HTTP/HTTPSNoEn CloudflareGratisBaja
TailscaleSíSí (solo privado)No (no es público)De extremo a extremoPlan gratuitoBaja
GetPublicIPSíSí (todos)SíEn tu servidor (E2E)8,99 USD/mesBaja

Abrir puertos y el DDNS son gratis, pero requieren una IP pública real y que tu proveedor no bloquee los puertos. Cloudflare Tunnel es gratis y evita el CGNAT, pero solo gestiona tráfico web. Tailscale es excelente para el acceso privado, pero no puede dar servicio al internet público. GetPublicIP es la única opción que combina evitar el CGNAT, compatibilidad con todos los protocolos y una IP pública dedicada real.

¿Qué método deberías elegir?

El método adecuado depende de lo que alojes y de cómo esté configurada tu red.

¿Solo quieres acceso remoto para ti? Usa Tailscale. Instálalo en tu servidor y en tus dispositivos, y podrás llegar a tu servidor en casa desde cualquier lugar. Sin exposición pública, sin puertos que gestionar.

¿Solo alojas una web pública? Cloudflare Tunnel funciona bien y es gratis. Si necesitas cifrado de extremo a extremo o una IP dedicada, usa GetPublicIP.

¿Tienes un servidor de correo? GetPublicIP es la única opción en este caso. El correo requiere los puertos 25, 465, 587 y 993, además de DNS inverso (registros PTR) para que los mensajes lleguen a su destino. Ningún otro método de esta lista lo permite.

¿Alojas un servidor de juegos (Minecraft, Valheim, Palworld, etc.)? GetPublicIP. Los servidores de juegos necesitan TCP y UDP sin restricciones en puertos concretos. Cloudflare Tunnel no admite UDP. Tailscale solo funciona para jugadores de tu red privada.

¿Necesitas fiabilidad y conmutación por error? GetPublicIP. Tu IP pública se mantiene aunque la conexión de tu casa se caiga temporalmente, y sigue siendo la misma si cambias de proveedor o trasladas tu servidor.

¿Estás detrás de CGNAT y necesitas todos los protocolos? GetPublicIP. Es el único método que te da una dirección IPv4 pública real y enrutable, compatible con todos los protocolos, evitando el CGNAT.

Errores comunes al exponer un servidor casero

Una vez que tu servidor es accesible desde internet, tienes que tratarlo como un sistema público. Estos son los errores más habituales.

1. No tener firewall

Exponer tu servidor sin firewall significa que todos los servicios que se ejecutan en él quedan accesibles para todo internet. Usa ufw, iptables o nftables para permitir solo los puertos concretos que necesitan tus servicios. Bloquea todo lo demás.

# Example: allow only HTTP, HTTPS, and SSH
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

2. Contraseñas por defecto en los servicios

Los bots rastrean internet sin parar y prueban las credenciales por defecto a los pocos minutos de que aparezca un servicio nuevo. Cambia las contraseñas por defecto de todo: bases de datos, paneles de administración, aplicaciones web, SSH. Usa contraseñas robustas y únicas o claves SSH.

3. No usar HTTPS

Si expones un servicio web por HTTP sin cifrar, las credenciales de acceso y los datos viajan en texto plano. Usa Let's Encrypt (gratis) para obtener un certificado TLS. Herramientas como Caddy y Traefik gestionan HTTPS automáticamente sin configuración adicional.

4. No actualizar el software

El software sin parches es la vía de entrada más habitual para los atacantes. Activa las actualizaciones de seguridad automáticas del sistema operativo y mantén tus aplicaciones al día. Suscríbete a los avisos de seguridad del software que uses.

# Enable automatic security updates on Ubuntu/Debian
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

5. Exponer la IP real de tu casa

Cuando abres puertos con la IP que te asigna tu proveedor, los atacantes ven directamente la IP de tu casa. Eso vincula tu ubicación física con tu servidor. Un servicio de IP dedicada como GetPublicIP oculta la IP real de tu casa: el tráfico de internet llega a tu IP dedicada en nuestra infraestructura, y solo el túnel WireGuard conecta con tu red real.

Preguntas frecuentes

¿Cómo puedo acceder a mi servidor en casa desde internet?

Hay cinco métodos principales. Abrir puertos funciona si tu proveedor de internet te da una IP pública real. El DNS dinámico (DDNS) junto con la apertura de puertos resuelve los cambios de IP. Cloudflare Tunnel evita el CGNAT, pero solo admite tráfico HTTP y HTTPS. Tailscale ofrece acceso remoto privado para tus propios dispositivos. Un servicio de IP pública dedicada como GetPublicIP te da una dirección IPv4 fija real a través de un túnel WireGuard, compatible con todos los protocolos y que funciona detrás de cualquier restricción del operador, incluido el CGNAT.

¿Puedo alojar una web sin IP pública?

Sí. Cloudflare Tunnel te permite publicar servicios HTTP y HTTPS gratis sin IP pública. Si solo necesitas una web, funciona bien. Si además necesitas correo, servidores de juegos o cualquier protocolo que no sea HTTP, necesitas un servicio de IP pública dedicada como GetPublicIP, que te asigna una dirección IPv4 pública real enviada a tu servidor por un túnel WireGuard.

¿Es seguro exponer un servidor casero a internet?

Puede serlo, con las precauciones adecuadas. Usa un firewall para abrir solo los puertos que necesitas. Sirve HTTPS con un certificado válido. Mantén el software actualizado. Usa contraseñas robustas y únicas y desactiva las credenciales por defecto. Un servicio de IP dedicada como GetPublicIP añade una capa más al ocultar la IP real de tu casa, de modo que los atacantes nunca ven la dirección que te asigna tu proveedor de internet.

¿Necesito una IP fija para tener un servidor en casa?

No necesariamente. El DNS dinámico puede asociar un nombre de host a una IP que cambia, pero sigues necesitando una IP pública real (no CGNAT) para que abrir puertos funcione. Un servicio de IP pública dedicada como GetPublicIP te da una IPv4 pública fija que no cambia, sea cual sea tu proveedor de internet o tu ubicación, y aunque cambie la IP de tu casa.

¿Cuál es la forma más fácil de acceder a mi servidor en casa de forma remota?

Para acceso privado desde tus propios dispositivos, Tailscale es la opción más sencilla. Lo instalas en tu servidor y en tu teléfono o portátil, y se conectan automáticamente. Para acceso público, en el que cualquiera en internet pueda llegar a tu servidor, GetPublicIP es el camino más simple. Obtienes una IP pública dedicada, instalas WireGuard, importas la configuración y tu servidor queda en línea con una dirección enrutable real.

¿Cómo expongo mi servidor en casa si mi operador usa CGNAT?

El CGNAT bloquea todas las conexiones entrantes, así que abrir puertos no funcionará. Tienes tres opciones que evitan el CGNAT. Cloudflare Tunnel sirve solo para webs HTTP y HTTPS. Tailscale sirve para acceso privado entre tus propios dispositivos. GetPublicIP te da una dirección IPv4 pública dedicada real a través de un túnel WireGuard, compatible con todos los protocolos, incluidos el correo, los servidores de juegos y TCP/UDP sin restricciones.

Explora guías y categorías