información y artículos tecnológicos

Configurar port fordwarding con NordVPN para hacer bypass desde el router

October 29, 2025, 51 minutos

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:

  1. Habilitar Permitir acceso remoto mientras estás conectado a la VPN en la app de Nord,

  2. Excluir Caddy del túnel (split tunneling),

  3. Forzar que Caddy escuche solo en tu interfaz física (bind),

  4. 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

  1. Abre la app de NordVPN → engranaje (Settings).

  2. 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

  3. 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:

:: 1. Desactivar NordLynx (WireGuard)
nordvpn set technology openvpn

:: 2. Elegir protocolo UDP
nordvpn set protocol udp

:: 3. Desactivar auto-conexión (evita que vuelva a NordLynx)
nordvpn set autoconnect off

:: 4. Desconectar
nordvpn -d

:: 5. Conectar con OpenVPN UDP
nordvpn -c
  • Si ves el handshake TLS y respuesta de Caddy/Jellyfin, el acceso remoto está permitido y funcionando.

Luego sube la métrica del TAP de Nord y baja la de tu NIC física (ej. “Ethernet 6”):

netsh interface ipv4 set interface "Ethernet 6" metric=1
netsh interface ipv4 set interface "TAP-NordVPN Windows Adapter" metric=300

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

  1. Abre NordVPN → icono de engranaje (Ajustes).

  2. Entra en Opciones → Conexión y seguridad.

  3. 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):

    curl -vk https://TU_DOMINIO --resolve TU_DOMINIO:443:TU_IP_PUBLICA
    

    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):

New-NetFirewallRule -DisplayName "BLOCK Caddy → NordVPN (10.0.0.0/8 + 172.16.0.0/12)" `
  -Direction Outbound -Action Block `
  -Program "C:\ProgramData\chocolatey\lib\caddy\tools\caddy.exe" `
  -RemoteAddress 10.0.0.0/8,172.16.0.0/12 `
  -Profile Any -Enabled True

5.2 Bloqueo INBOUND (evita que entradas a 80/443 “caigan” por la IP del adaptador de Nord):

New-NetFirewallRule -DisplayName "BLOCK Caddy IN en NordVPN (10.0.0.0/8)" `
  -Direction Inbound -Action Block `
  -LocalPort 80,443 -Protocol TCP `
  -LocalAddress 10.0.0.0/8 `
  -Profile Any -Enabled True

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:

route delete 192.168.1.0
route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 -p

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):

{
  email [email protected]
  storage file_system {
    root C:\ProgramData\chocolatey\lib\caddy\tools\data
  }
}

sampledomain.ddns.net {
  bind 192.168.1.50        # <-- tu IP LAN estática
  encode zstd gzip
  @http    { protocol http }
  redir @http https://{host}{uri} 308

  reverse_proxy 127.0.0.1:8096
}

Si no quieres puerto 80, y solo 443, para https (recomendable).

{
    email [email protected]
    storage file_system {
        root C:\ProgramData\chocolatey\lib\caddy\tools\data
    }
}

sampledomain.ddns.net {
    tls {
        issuer acme {
            disable_http_challenge  
        }
    }
    bind 192.168.1.50
    reverse_proxy 127.0.0.1:8096
}
  • El bind fuerza 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:

curl -vk https://sampledomain.ddns.net/ --resolve sampledomain.ddns.net:443:TU_IP_PUBLICA

9) (Opcional) Ejecutar Caddy como servicio y que le aplique el split

Si usas NSSM:

nssm install Caddy "C:\ProgramData\chocolatey\lib\caddy\tools\caddy.exe" run --config Caddyfile
nssm set Caddy AppDirectory "C:\ProgramData\chocolatey\lib\caddy\tools"
nssm set Caddy AppStdout "C:\ProgramData\caddy\logs\caddy.out.log"
nssm set Caddy AppStderr "C:\ProgramData\caddy\logs\caddy.err.log"

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)

  1. Escucha

netstat -ano | findstr :80
netstat -ano | findstr :443

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.

  1. Local

curl http://192.168.1.50:8096  (Jellyfin)
curl -k https://192.168.1.50   (Caddy -> Jellyfin, cert interno si lo pones)
  1. Desde fuera (4G u otra red)

curl -vk https://sampledomain.ddns.net/
  1. IP pública para tráfico general (debería ser la de Nord)

curl ifconfig.me

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.exe a 10.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/24 por tu gateway.

  • Caddy:


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

Acerca de

Este es el blog donde poner guías para ciertas cosas así como contar novedades sobre webtool.es
Powered by BS5 Simply Blog and Bludit
Navigation