Jest to w rzeczywistości dość łatwe do osiągnięcia, nawet jeśli jest nieco zakopane w dokumentacji ssh. Zakładając OpenSSH, podstawowa składnia jest następująca:
ssh -R 8080:localhost:80 -N [email protected]
Spowoduje to otwarcie gniazda nasłuchującego na porcie 8080 twojego-server.dyndns.org, a wszelkie wykonane połączenia your-server.dyndns.org:8080
zostaną przekazane przez tunel SSH do komputera, który otworzył to połączenie SSH, i stamtąd zostanie przekierowane na localhost:80
.
Ta -N
opcja instruuje SSH, aby nie otwierał powłoki ani nic takiego, tylko w celu ustanowienia przekierowania portów, abyś mógł wysłać go w tle i pozostawić uruchomiony.
Putty używa prawie tej samej składni, ale jest zawinięty w jakiś GUI. Zasada jest jednak taka sama.
Ale bądź ostrożny w tym, co robisz. Ponieważ zasadniczo kierujesz ruch zewnętrzny do sieci, naciskasz dziurę w zaporze sieciowej. Jeśli nie jest to twoja sieć, administrator może sprzeciwić się temu i pociągnąć cię do odpowiedzialności - zazwyczaj istnieje powód, dla którego nie możesz zezwolić na określony rodzaj ruchu.
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 0 14875755 -
localhost:80
część jest tutaj kluczowa - musi istnieć z punktu widzenia komputera lokalnego, a nie zdalnego, w przeciwnym razie wystąpią błędy jak wyżej.ssh -R *:8080:localhost:80 -N ...
w ten sposób każesz mu nasłuchiwać na porcie 8080 na wszystkich dostępnych interfejsach sieciowych. Powyższa linia działała na moim komputerze, ale może wersja ssh na Maca działa nieco inaczej.Aby móc przekazanych przez lokalnego portu 80 nie tylko do interfejsu pętli zwrotnej (127.0.0.1), należy skonfigurować
GatewayPorts clientspecified
w/etc/ssh/sshd_config
na zdalnej maszynie pierwszy.Następnie przekaż swój port za pomocą:
źródło