porta local sendo aleatória é completamente irrelevante. totalmente irrelevante. e o encaminhamento de porta talvez não seja o termo certo para o que você deseja. sua pergunta é sobre ssh com um proxy .. Eu não fiz isso, mas existem maneiras. Você precisaria de um computador entre você e o servidor ssh, que o servidor ssh permite. Além disso, para além disso, um termo que você pode querer é 'tcp port remapper .. existem programas que fazem isso também. Eu mencionarei alguns, mas a maioria das pessoas usaria o ssh como for possível.
se falar de uma ferramenta separada do ssh
este programa pode fazer o remapeamento da porta tcp que você está depois
mapeador de portas pm.exe link
ou nc, tente do cygwin (não está no gnuwin32) nc -l 1234 | nc 4.5.6.7 22
< - ouça na porta 1234, adiante para ip 4.5.6.7 porta 22
ou com netsh na sua composição de proxy -
C:\Windows\system32>netsh interface portproxy add v4tov4 listenport=4321 connect
address=10.0.0.50 connectport=47
see it is listening, and will forward to 10.0.0.50:47
C:\Windows\system32>netstat -aon | find "4321"
TCP 0.0.0.0:4321 0.0.0.0:0 LISTENING 844
Mas você pode usar o ssh para isso, é muito projetado para isso.
O próprio ssh pode fazer o remapeamento de portas tcp .. (o ssh pode chamar esse encaminhamento de porta)
você executa um servidor ssh em um computador com um IP que está OK com seu servidor não-ssh.
então você usa ssh -L nesse computador. que requer, entre outros parâmetros, o que se poderia pensar como 2 parâmetros, o IP para escutar, e o IP: PORT para encaminhar para.
Então você tem compA, CompB, CompC
CompB e CompC, suponho que não seja o mesmo comp no seu caso.
compC executa seu servidor não-ssh. O compB executa o servidor ssh.
O IP da CompA não é permitido pela CompC, mas é permitido pela CompB.
CompC permite no IP da CompB.
Então, CompA e CompC se comunicam através da CompB.
Então, da CompA, você se conecta à CompB e antes disso, você roda em compB seu remapeamento de portas .. o que o ssh pode fazer. ssh -L ... muitos exemplos de ssh -L on-line você pode colocar as especificidades do seu caso, IP do seu servidor ssh, porta para ouvir para CompA se conectar. e IP: PORT do seu servidor não-ssh. Todos eles entram em um comando ssh -L que você executa no CompB. O ssh -L faz um recurso de encaminhamento de porta pelo qual o comp com ssh.exe escuta (para seu cliente normalmente não-ssh) e o comp com sshd.exe encaminha (para seu servidor normalmente não-ssh).
Em seguida, você conecta seu cliente não-ssh da CompA à CompB. e ele é encaminhado para o CompC através da conexão ssh que você fez.