Próbuję przekazać bardzo konkretne porty za pomocą odwrotnego tunelu SSH. MachineA jest maszyną docelową (z której uruchamiane jest polecenie), a MachineB jest tunelem (tym, z którym łączy się SSH i jednym publicznym połączeniem).
(Port 123 jest używany jako symbol zastępczy dla innego działającego portu).
Polecenie użyte w tunelu to:
[user@MachineA ~]$ ssh -gnN -R *:500:localhost:500 -R *:311:localhost:311 -R *:123:localhost:123 user@MachineB
Pokazuje następujące dane wyjściowe, wskazując, że niektórych portów nie można przesłać dalej:
Warning: remote port forwarding failed for listen port 500
Warning: remote port forwarding failed for listen port 311
Jeśli pójdę do MachineB, widzę to przed uruchomieniem tunelu:
[user@MachineB ~]$ netstat -na | grep 500
[user@MachineB ~]$ netstat -na | grep 311
[user@MachineB ~]$ netstat -na | grep 123
[user@MachineB ~]$
a potem (gdzie port 123 jest portem, który pomyślnie tuneluję:
[user@MachineB ~]$ netstat -na | grep 500
[user@MachineB ~]$ netstat -na | grep 311
[user@MachineB ~]$ netstat -na | grep 123
tcp 0 0 0.0.0.0:123 0.0.0.0:* LISTEN
[user@MachineB ~]$
Wydaje się, że nie ma problemu z portami w użyciu. Inne porty (takie jak symbol zastępczy 123) są w porządku. Więc w czym problem?
źródło