El reenvío SSH funciona en local pero falla en el remoto

El reenvío SSH funciona en local pero falla en el remoto

Hice un reenvío local de puerto SSH en una máquina remota:

ssh -N -L 127.0.0.1:3388:127.0.0.1:22 localhost

Funciona en la propia máquina remota:

telnet localhost 3388

devoluciones

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

Sin embargo, cuando uso este reenvío desde la máquina local:

telnet remote.ip 3388

falla:

Trying remote.ip...
telnet: Unable to connect to remote host: Connection refused

Uno podría pensar que el puerto 3388 de la máquina remota está bloqueado por el firewall o algo de la red, así que desactivé el reenvío SSH y probé un servidor http escuchando en el puerto 3388 en la máquina remota:

python3 -m http.server 3388

luego me conecto a este puerto desde mi máquina local:

telnet remote.ip 3388

El resultado da

Trying remote.ip...
Connected to remote.ip.
Escape character is '^]'.
quit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
        <title>Error response</title>
    </head>
    <body>
        <h1>Error response</h1>
        <p>Error code: 400</p>
        <p>Message: Bad request syntax ('quit ').</p>
        <p>Error code explanation: HTTPStatus.BAD_REQUEST - Bad request syntax or unsupported method.</p>
    </body>
</html>
Connection closed by foreign host.

lo que significa que el puerto 3388 de la máquina remota es accesible desde mi máquina local. Entonces, ¿por qué tanto el reenvío SSH como la red funcionan correctamente de forma individual, pero fallan cuando se combinan? ¿Alguien sabe cómo solucionar este problema? Gracias.

Respuesta1

Configuró el reenvío local SSH para que solo escuche en el puerto 3388 de localhost. No se puede acceder a localhost desde otros dispositivos en la red, por lo que no pudo establecer una conexión de forma remota.

Para exponer el puerto de reenvío a otras máquinas de la red, debe vincularlo a una dirección accesible como 192.168.1.5 o 0.0.0.0 (todas las interfaces).

p.ejssh -N -L 0.0.0.0:3388:127.0.0.1:22 localhost

información relacionada