Configurar port fordwarding con NordVPN para hacer bypass desde el router
El objetivo principal de esta guía es configurar NordVPN, tu router y tu firewall de Windows para hacer ByPass para conexiones entrantes y poder ofrecer conexiones a tu servidor desde tu router usando port fordwarding
Si lo hacemos correctamente podremos disponer de servicios como JellyFin con IPTV a la que acceder de forma segura, Immich, Plex u otros servicios.

Vamos a asumir que ya hemos instalado JellyFin y Caddy, y configurado el router, haciendo port fordwarding a nuestro servidor. Consulte nuestra guía para conseguir una instalación completa y segura de JellyFin.
Vamos a exponer Jellyfin con Caddy en Windows 10 usando port forwarding del router mientras NordVPN está activo, integrando lo que ya probamos tú y yo + lo clave del hilo que compartiste (el toggle de “Permitir acceso remoto…”).
Idea base: no hacemos port forwarding “a través de NordVPN” (Nord no lo soporta). En su lugar, publicas tu servidor en tu IP pública real (router → tu PC) y, al mismo tiempo, mantienes NordVPN para el resto del tráfico. Para que las conexiones entrantes sigan llegando aunque la VPN esté conectada, necesitas:
Habilitar Permitir acceso remoto mientras estás conectado a la VPN en la app de Nord,
Excluir Caddy del túnel (split tunneling),
Forzar que Caddy escuche solo en tu interfaz física (bind),
- Un par de reglas de firewall y métricas de interfaz para que Windows no desvíe nada por el adaptador de Nord.
0) Requisitos previos (checklist rápido)
-
Router con port forwarding 80→PC:80 y 443→PC:443.
-
Dominio/DDNS apuntando a tu IP pública (ej.
sampledomain.ddns.net). -
Jellyfin instalado y funcionando en HTTP local (ej.
127.0.0.1:8096). -
Caddy instalado en Windows (Chocolatey o binario suelto).
-
NordVPN para Windows 10.
-
Importante sobre Let’s Encrypt: si usas HTTP‑01 necesitas que puerto 80 sea accesible desde Internet; si bloqueas el 80, puedes usar TLS‑ALPN‑01 en 443. Recomendación oficial: deja 80 abierto y redirige a 443. Let's Encrypt+1
-
Sobre NordVPN y el port forwarding: Nord no soporta port forwarding a través de sus servidores; por eso publicas por tu IP real y no a través de Nord. Para acceso remoto, Nord empuja Meshnet como alternativa. (Nosotros vamos por la vía router + ajustes de app). NordVPN+1
1) Configura NordVPN para permitir entradas cuando la VPN está activa
-
Abre la app de NordVPN → engranaje (Settings).
-
En Conexión y seguridad / Connection, activa “Permitir acceso remoto al conectarse a la VPN” (Allow remote access while connected to VPN).
-
Esta opción aparece documentada en la guía oficial (en portugués muestra el texto exacto: “Permitir acesso remoto ao se conectar à VPN… Desativado por padrão”). Actívala. NordVPN Support
-
-
Consejo práctico (lo que viste en el hilo): si no surte efecto, apaga y vuelve a encender ese toggle y reconecta la VPN. Varios artículos de terceros documentan este ajuste para RDP/entradas cuando la VPN está activa. help.bitlaunch.io+1
Nota: Si prefirieras no abrir puertos jamás, Meshnet te da acceso remoto sin exponer 443/80, pero aquí seguimos con port forwarding clásico. NordVPN+1
2) Fuerza el protocolo de Nord que sí respeta el bypass
En Windows, NordLynx (WireGuard) puede “capturar” entradas a 80/443 a nivel de kernel; con OpenVPN (UDP) el bypass funciona porque usa TAP y respeta bind, firewall y métricas. Cambia a OpenVPN UDP:
Luego sube la métrica del TAP de Nord y baja la de tu NIC física (ej. “Ethernet 6”):
Comprueba nombres con:
netsh interface ipv4 show interfaces
Si usas NordLynx, el bypass puede no funcionar aunque ajustes métricas. Cambiar a OpenVPN (UDP) fue un detalle importante para conseguir que funcionara correctamente. Yo deshabilite el controlador de NordLynx
3) IMPRESCINDIBLE en NordVPN (windows)
Activa el permiso de acceso remoto mientras la VPN está conectada
-
Abre NordVPN → icono de engranaje (Ajustes).
-
Entra en Opciones → Conexión y seguridad.
-
Activa “Permitir acceso remoto mientras te conectas a la VPN”
Texto de ayuda en la app: “Accede a este ordenador de forma remota, por ejemplo, mediante aplicaciones de escritorio remoto”.
Truco que lo hace arrancar (lo que te funcionó):
-
Desactiva ese interruptor, vuelve a activarlo, desconecta la VPN y reconéctala. A veces la app “olvida” aplicar esa política y el toggle reset la fuerza a tomar efecto.
Prueba inmediata (con Nord conectado):
-
Asegúrate de que el router reenvía 443→PC:443 (y 80→80 si usas HTTP-01).
-
Desde otra red/4G (o forzando IP pública):
Prueba inmediata (con Nord conectado):
-
Asegúrate de que el router reenvía 443→PC:443 (y 80→80 si usas HTTP-01).
-
Desde otra red/4G (o forzando IP pública):
Si ves el handshake TLS y respuesta de Caddy/Jellyfin, el acceso remoto está permitido y funcionando y no tienes que hacer más pasos.
4) Excluye Caddy del túnel (Split tunneling)
-
En la app de NordVPN → Split tunneling → Exclude/Disable VPN for selected apps → añade
caddy.exe(ruta de tu instalación). NordVPN
Esto hace que el tráfico saliente de Caddy (por ejemplo, validaciones ACME) no pase por la VPN. Es el primer pilar del bypass.
5) Reglas de Firewall para aislar Caddy del adaptador de Nord
5.1 Bloqueo OUTBOUND (evita que caddy.exe salga por redes privadas del túnel Nord: 10/8 y 172.16/12):
5.2 Bloqueo INBOUND (evita que entradas a 80/443 “caigan” por la IP del adaptador de Nord):
Estas dos reglas son las que verificaste con OK.
6) Fija métricas de ruta y ruta LAN para que Windows no prefiera el túnel
-
Baja la métrica de tu NIC física (1–10) y sube la del TAP de Nord (300).
-
Ruta LAN estática para que todo 192.168.1.0/24 vaya por tu gateway real:
Con esto, la tabla de rutas queda consistente: por defecto sale por tu gateway real, el TAP de Nord queda “caro” (métrica alta) y la LAN siempre usa el router.
7) Caddy: bind a tu IP física + reverse proxy a Jellyfin
Caddyfile (ejemplo):
-
El
bindfuerza a Caddy a escuchar solo en tu interfaz física, no en el adaptador VPN. Caddy Web Server -
Automático HTTPS: Caddy solicita/renueva los certificados. Para HTTP‑01, el 80 debe estar abierto (recomendado por Let’s Encrypt). Alternativamente, TLS‑ALPN‑01 valida por 443 si no puedes abrir 80. Caddy Web Server+2Let's Encrypt+2
Si la validación da “Timeout during connect (likely firewall problem)”, revisa que 80/443 del router están abiertos hacia tu PC y que el toggle de Nord del paso 1 está activo. Ese error es típico de puerto 80 bloqueado en HTTP‑01. docs.flashpanel.io
8) Port forwarding en el router
-
WAN 80 →
192.168.1.50:80 -
WAN 443 →
192.168.1.50:443
Verifica con datos móviles (evita hairpin NAT) y con:
9) (Opcional) Ejecutar Caddy como servicio y que le aplique el split
Si usas NSSM:
Consejo: ejecuta el servicio bajo tu usuario (no LocalSystem) para que Split tunneling de Nord te aplique también al servicio.
10) Pruebas rápidas (con NordVPN conectado)
-
Escucha
Debe salir 192.168.1.50:80 y :443 (no 0.0.0.0, no 10.x.x.x).
Si solo lo haces sobre el 443, comprueba únicamente este. Si te sale más de un servicio, podrás ver el pid, es posible que tengas apache o similar.
-
Local
-
Desde fuera (4G u otra red)
-
IP pública para tráfico general (debería ser la de Nord)
11) Solución de problemas (lo que más vimos que “rompe”)
-
No entra desde fuera cuando Nord está activo
-
Confirma paso 1 (Permitir acceso remoto…) y vuelve a alternarlo OFF/ON si se “olvida” de aplicarlo (varios usuarios lo resuelven así). help.bitlaunch.io+1
-
Asegúrate de estar en OpenVPN (UDP), no NordLynx.
-
Revisa las reglas de firewall OUT/IN (paso 4).
-
Comprueba métricas y ruta LAN (paso 5).
-
-
Caddy no consigue el certificado
-
Abre 80 (recomendado por Let’s Encrypt) o usa TLS‑ALPN en 443, pero el validador debe alcanzar tu host. Let's Encrypt+1
-
-
Con NordLynx (WireGuard) sigue sin ir aunque toque métricas
-
Cambia a OpenVPN (UDP): es el switch que te funcionó de forma consistente.
-
-
Conexión general cae por Kill Switch
-
Desactiva Internet Kill Switch / App Kill Switch mientras pruebas. (El Kill Switch puede bloquear entradas/salidas no tuneladas).
-
12) (Opcional avanzado) Asegurar que las salidas de ACME no van por la VPN
Si aun así ves que ACME sale por el túnel, añade rutas estáticas hacia rangos usados por Let’s Encrypt para que vayan por tu gateway real:
route add 172.65.32.0 mask 255.255.255.0 192.168.1.1 -p
route add 104.18.14.0 mask 255.255.254.0 192.168.1.1 -p
13) (Opcional avanzado) Fichero bat para cambiar las metricas de VPN
Si fuera necesario (entre reinicios de la maquina) se puede crear este fichero bat para reconfigurar todo. Recuerda qeu en el ejemplo el interface es Ethernet 6 en tu caso puede ser otro.
@echo off
echo.
echo INICIANDO TODO: NORDVPN + CADDY (BYPASS)
echo.
:: 1. Desconectar NordVPN
echo Desconectando NordVPN...
nordvpn -d
:: 2. Matar Caddy
echo Matando Caddy...
taskkill /f /im caddy.exe >nul 2>&1
:: 3. Conectar NordVPN
echo Conectando NordVPN...
nordvpn -c
:: 4. Esperar y forzar métricas
echo Esperando 5 segundos...
timeout /t 5 >nul
netsh interface ipv4 set interface "Ethernet 6" metric=1
netsh interface ipv4 set interface "NordLynx" metric=300
:: 5. Iniciar Caddy
echo Iniciando Caddy...
cd /d "C:\ProgramData\chocolatey\lib\caddy\tools"
caddy run
pause
Resumen visual de la receta
-
NordVPN:
-
✅ Allow remote access while connected to VPN → ON (y si falla, toggle OFF/ON). NordVPN Support+1
-
✅ OpenVPN (UDP) (no NordLynx).
-
✅ Split tunneling (excluir
caddy.exe). NordVPN
-
-
Windows:
-
✅ Firewall OUT: bloquear
caddy.exea10.0.0.0/8, 172.16.0.0/12. -
✅ Firewall IN: bloquear 80/443 en LocalAddress
10.0.0.0/8. -
✅ Métricas: NIC física 1; TAP de Nord 300; Ruta LAN
192.168.1.0/24por tu gateway.
-
-
Caddy:
-
✅
bind 192.168.1.x+ reverse proxy a127.0.0.1:8096. Caddy Web Server -
✅ Automatic HTTPS (80 abierto recomendado; o TLS‑ALPN‑01 en 443). Caddy Web Server+2Let's Encrypt+2
-
Notas finales
-
Nord no soporta port forwarding “a través de la VPN”, por eso esta guía usa tu IP pública + ajustes para que Nord no interfiera. Si no quieres abrir 443/80, considera Meshnet (remoto seguro sin puertos). NordVPN+1