
Tengo una Macbook A
, un servidor público B(public IP: 1.2.3.4, internal IP: 10.0.0.2)
, un servidor interno.C(internal IP: 10.0.0.3)
A
Puede conectarse B
mediante la IP pública de B y B
puede conectarse C
mediante la IP privada de C, pero A
no puede conectarse directamente aC
Ahora quiero conectarme C:2345
desde A
, así que creo que puedo reenviar puertos B:1234=>C:2345
.
¿Qué comando debo ejecutar y en qué servidor debo ejecutar?
Lo intenté:
ssh -NfR 1234:localhost:2345 10.0.0.3
ssh -L 1234:0.0.0.0:2345 10.0.0.3
Ninguno de los dos funciona.
Respuesta1
Hacerexactamentelo que solicitó ( B:1234=>C:2345
) esto debe ejecutarse en B
:
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
También requiere abrir el 1234
puerto en B
el firewall. Luego conéctese 1.2.3.4:1234
desde el exterior para llegar 10.0.0.3:2345
como si se estuviera conectando desde C
sí mismo (a través de su interfaz loopback). Cualquiera puede conectarse, así que tenga esto en cuenta si el servidor C
(cualquiera que sea) no está protegido con contraseña o algo así.
Una forma más fácil y mucho más segura de llegar desde A
a C
es la siguiente. No hace exactamente lo que usted solicitó, pero probablemente sea lo que desea. En A
:
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Luego conéctese a 127.0.0.1:1234
on A
para llegar al puerto 2345
en C
. C
Verá el tráfico que llega desde B
. Esta conexión A
sólo está disponible para, por lo que el método es mucho más seguro que el anterior.
Si desea permitir que otras computadoras (por ejemplo, desde la LAN donde A
está) se conecten, debe usar -g
la opción y especificar la dirección de enlace. P.ej:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
En este caso, reconfigure el firewall en A
consecuencia y luego conéctese a A_LAN_address_here:1234
.
Respuesta2
En Mac lo primero que haces
ssh -L2345:10.0.0.3:2345 10.0.0.2
Esto abre un puerto local 2345 en su Mac que es una conexión directa a :2345 en 10.0.0.3
Luego simplemente accedes 127.0.0.1:2345
en tu Mac. Todo lo que vaya a este puerto será tunelizado a través de ssh e irá a 10.0.0.3:2345
. Para ese servidor, parecerá que proviene de 10.0.0.2
.