Conéctate á VPN da oficina, inicia un servizo pequeno no porto 8443, envía o enderezo do túnel a un compañeiro e observa como a conexión falla mentres o cliente segue informando de que está conectado. No túnel non hai nada roto: o enderezo foi asignado, a sesión está activa e os paquetes que levarían a resposta simplemente nunca se admiten. Fai as tres comprobacións seguintes en orde e detente na que falle, porque cada unha ten unha corrección distinta e só unha delas ten que ver coa VPN.

Comeza por onde está realmente vinculado o socket

Antes de que algo se encamiñe, algo ten que estar escoitando nun enderezo que o chamador poida acadar. Os servidores de desenvolvemento son o culpable habitual, porque moitos se vinculan por defecto a loopback e só aceptan conexións que se orixinan na mesma máquina. Un enderezo de túnel non cambia esa vinculación, e o sistema operativo rexeitará a conexión moito antes de que a VPN interveña.

ss -ltnp | grep 8443
netstat -ano | findstr 8443

Le a columna do enderezo local no canto do estado. 127.0.0.1:8443 significa só loopback, e a corrección é unha vinculación a 0.0.0.0 ou ao propio enderezo do túnel. 0.0.0.0:8443 acepta en todas as interfaces, o que é máis amplo do que a maioría pretende cando a máquina tamén ten un enderezo público; 10.64.7.15:8443 é a versión estreita que só escoita onde o compañeiro pode chegar. Fixa tamén no nome do proceso na mesma saída, porque unha instancia perdida dunha proba anterior é unha causa habitual de que o porto pareza aberto e responda co contido equivocado.

Despois pregunta se algo pode encamiñar cara a ese enderezo

Un enderezo de túnel só ten sentido para os pares configurados para enviar ese prefixo dentro do túnel. A máquina do compañeiro ten a súa propia táboa e, se non ten unha ruta para a subrede do túnel, o paquete vai á pasarela predeterminada e morre nun lugar que non ten nin idea de que o enderezo existe. É unha cuestión de encamiñamento do lado do chamador, non un permiso do teu.

Symptom from the callerWhat it usually meansWhere to look next
Connection refused immediatelyNothing is listening on the address the packet reachedThe bind address and the process owning the port
Connection times out with no replyA policy dropped the packet, or no route returnsServer forwarding, host firewall, cloud security group
Works from the same machine onlyListener is on loopback, or no route reaches the tunnel addressBind address, then the caller's route to that prefix

O servidor entre os dous clientes importa igual. No deseño habitual de acceso remoto, cada cliente abre unha conexión saínte cara á pasarela e esta mantén o estado deses fluxos, de xeito que as respostas volven por un camiño que xa coñece. Unha conexión dun cliente a outro é un fluxo novo que a pasarela debe aceptar e reenviar, e moitos despregamentos desactívano deliberadamente para manter os clientes illados entre si. Os servizos VPN de consumo adoitan illar por defecto; as pasarelas corporativas ás veces permíteno por grupo.

Comproba a dirección antes de cambiar nada no host. Se o enderezo do túnel responde desde a propia pasarela pero non desde un par, a diferenza é o axuste de cliente a cliente da pasarela, e ningunha edición do cortalumes local pode substituílo.

Por último, atopa a política que permite o fluxo

Tres capas de política sitúanse entre un paquete encamiñado e un servizo que responde: a decisión de reenvío do servidor VPN, o cortalumes do host e calquera grupo de seguridade da nube diante da instancia. As tres teñen que coincidir e fallan de maneiras distintas, por iso o síntoma da táboa anterior é máis útil ca a mensaxe de erro do navegador.

O cortalumes do host é a capa que a xente esquece despois dunha vinculación correcta, porque unha regra que permite o porto na interface LAN non o permite automaticamente na interface do túnel. As regras limitadas por interface son un deseño correcto e tamén a causa habitual dun servizo que funciona desde a oficina e non desde a casa. Le o alcance da regra, non o seu número de porto.

A filtraxe con estado explica o caso inverso. Unha conexión saínte do teu portátil crea estado, e as respostas a ela admítense sen unha regra de entrada. A conexión do compañeiro é un fluxo completamente novo sen estado detrás, así que necesita unha autorización explícita. Esa asimetría é toda a razón pola que unha sesión de navegador que funciona na túa propia máquina non di nada sobre se o servizo é accesible desde fóra.

Cando falla unha comprobación, cambia o deseño e non o túnel

Se o requisito é que un compañeiro abra o teu servizo local, a resposta honesta adoita ser un mecanismo pensado para o acceso de entrada. Un túnel SSH inverso é o máis pequeno: a túa máquina conéctase cara a fóra a un host que o compañeiro xa pode acadar, e o oínte existe nese host.

ssh -N -R 8443:127.0.0.1:8443 [email protected]

O relé necesita GatewayPorts clientspecified na configuración do seu servidor SSH, se non o oínte reenviado vincúlase a loopback no relé e o compañeiro atopa o mesmo rexeitamento ca antes. Para calquera cousa que dure máis dunha tarde, un balanceador de carga ou un ingress con comprobación de saúde e certificado para o nome publicado é o mellor instrumento, e un túnel de sitio a sitio con rutas para as dúas subredes é a resposta correcta cando dúas redes de verdade necesitan falar.

Cada un deses deseños fai explícita a exposición, e ese é o punto. Unha VPN move paquetes entre redes para as que xa estabas autorizado; non publica un servizo nin converte un portátil nun host aberto a internet. Decidir cal das tres capas cambiar é a tarefa, e o túnel raramente é unha delas.

Artigos relacionados