Para situações pontuais ou ocasionais, a abordagem ProxyCommand é facilmente muito conveniente.
Por outro lado, se você precisar de várias conexões simultâneas ou quando talvez precisar usar esse comando frequentemente para o trabalho diário, considere também definir uma regra de tradução de endereço de rede (NAT) no servidor.
Isso requer acesso de superusuário (normalmente root
) no servidor para aplicar primeiro a única regra NAT. Observe que talvez não seja permitido (ou eficaz) aplicar a regra NAT, mesmo quando você tiver acesso de superusuário, se o "servidor" for realmente um contêiner (como o Docker) em vez de uma máquina.
Falando em um sistema Linux típico com o iptables
conjunto, a regra NAT a ser aplicada no seu servidor1 para o seu caso de amostra pode ser como:
iptables -t nat -I POSTROUTING -d <server2-ip-address> -p tcp --dport <server2-port> -j SNAT --to :33101-33109
Esse comando instrui o kernel do Linux a fazer conexões para a porta server2-port do server2-ip-address para sair usando uma porta de origem escolhida no intervalo 33101-33109 que está disponível naquele momento.
Quando essa regra estiver em vigor, você se conectará ao seu servidor2 apenas com o seu habitual:
ssh username@server2 -p remote_port
e você também pode usar esse mesmo ssh
comando simultaneamente quantas vezes for necessário, desde que haja portas disponíveis no intervalo especificado na regra NAT.
Observe, no entanto, que um netstat
(ou comando equivalente) executado no servidor relata o endereço local da conexão como o número da porta de origem não modificada , escolhida aleatoriamente, mesmo que o tráfego real entregue ao servidor2 carregue o número da porta de origem modificada .
Para desfazer a regra NAT, o comando é o mesmo, exceto por uma -D
opção no lugar do -I
.
Para que a regra NAT seja aplicada automaticamente na inicialização, depende da distribuição do Linux que você possui no servidor e se ela já possui alguma configuração de firewall ou não.
Não tenho experiência com sistemas do tipo BSD, mas acredito que haja um equivalente.