Para situaciones puntuales u ocasionales, el enfoque ProxyCommand es fácilmente muy conveniente.
Por otro lado, si necesita varias conexiones simultáneas, o cuando tal vez necesite usar ese comando con frecuencia para el trabajo diario, también puede considerar establecer una regla de traducción de direcciones de red (NAT) en su servidor.
Esto requiere root
acceso de superusuario (normalmente ) en su servidor para aplicar primero la única regla NAT. Tenga en cuenta que podría no estar permitido (o efectivo) aplicar la regla NAT, incluso cuando tenga acceso de superusuario, si su "servidor" es en realidad un contenedor (como un Docker) en lugar de una máquina.
Hablando de un sistema Linux típico con la iptables
suite, la regla NAT que se aplica en su servidor1 para su caso de muestra podría ser:
iptables -t nat -I POSTROUTING -d <server2-ip-address> -p tcp --dport <server2-port> -j SNAT --to :33101-33109
Ese comando indica al kernel de Linux que realice cualquier conexión hacia el puerto server2-port de server2-ip-address para salir utilizando un puerto de origen elegido dentro del rango 33101-33109 que está disponible en ese momento.
Una vez que esa regla está en su lugar, se conecta a su servidor2 solo con su habitual:
ssh username@server2 -p remote_port
y puede usar este mismo ssh
comando también simultáneamente todas las veces que lo necesite, siempre que haya puertos disponibles en el rango especificado en la regla NAT.
Sin embargo, netstat
tenga en cuenta que un (o comando equivalente) ejecutado en su servidor informa que la dirección local de la conexión es el número de puerto de origen no modificado , elegido aleatoriamente, aunque el tráfico real que se entrega a su servidor2 lleva el modificado número de puerto de origen .
Para deshacer la regla NAT, el comando es el mismo, excepto por una -D
opción en lugar de -I
.
Tener la regla NAT aplicada automáticamente en el arranque depende de la distribución de Linux que tenga en su servidor y de si ya tiene alguna configuración de firewall implementada o no.
No tengo experiencia con sistemas similares a BSD, pero confío en que haya un equivalente.