SSH Reverse Port Forwarding with PuTTy - jak określić adres powiązania


16

Korzystając z Putty, skonfigurowałem zwrotny serwer proxy, który pozwala mi łączyć się przez port 8080 serwera server.tldz portem 80 komputera, który zainicjował połączenie SSH.

Serwer pozwala mi się połączyć localhost:8080i zwraca wynik initiator:80połączenia z serwerem.

To pytanie mówi o włączeniu GatewayPorts i powiązaniu ze wszystkimi adresami.

Używając Putty, w jaki sposób mogę udostępnić port 8080 na serwerze, aby po przesłaniu żądania przez interfejs zewnętrzny (np. Żądanie sieciowe) port został przekierowany do initiator:80?

wprowadź opis zdjęcia tutaj


Czy możesz szczegółowo opisać to, co umieszczasz w oknie dialogowym PuTTY, aby utworzyć tunel?
EightBitTony

Dodano zrzut ekranu - porty różnią się od tekstu przykładowego, jednak nie pozwala to na przesłanie przez interfejs zewnętrzny żądania przez tunel (np. 1.2.3.4:8080). Żądania wewnętrzne są kierowane (localhost: 8080).
Darbio

Co oznacza netstat -an | grep 8080 show? A kiedy mówisz, że nie pozwalasz, co masz na myśli? Czy masz zaporę blokującą połączenia z portem 8080?
EightBitTony

Odpowiedzi:


17

Istnieją dwa pola wyboru podczas konfigurowania tunelu PuTTY,

  • Lokalne porty akceptują połączenia z innych hostów
  • Porty zdalne robią to samo (tylko SSH-2)

drugi z nich robi to, czego potrzebujesz.

Właśnie to przetestowałem

Okno dialogowe tuneli PuTTY,

  • Zaznacz Porty zdalne ...
  • Umieść 8080 w porcie źródłowym
  • Umieść 127.0.0.1:80 w porcie docelowym
  • Wybierz przycisk radiowy „Zdalny”
  • Kliknij Dodaj
  • Połączyć

Działa dobrze, oto wynikowy netstat,

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Możesz także użyć pliku plink.exe dostarczanego z PuTTY, na przykład

plink -R *:8080:localhost:80 user@remote.host.example

co również działa dobrze.

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Jeśli nadal otrzymujesz 127.0.0.1:8080 na hoście, to GatewayPorts jest nadal ustawiony na no w twojej konfiguracji sshd.

Nie zapomnij również zaktualizować zapory na serwerze docelowym, aby umożliwić połączenia zewnętrzne z portem 8080.


Nie - wydaje się, że nie daje mi takiego samego zachowania, jak ssh -R *:8080:localhost:80powinien?
Darbio

GatewayPorts jest ustawiony na tak. Działa z ssh -R \*:8080:localhost:80poleceniem, po prostu nie mogłem; t rozgryźć w PuTTy
Darbio

@Darbio, czy kiedykolwiek wymyśliłeś to w kitach?
barlop

Często używam przekierowania portów, zwykle w sposób local2remote (vnc, proxy itp.), I tym razem nie działał port remote2local, bez względu na zaznaczoną opcję, port nie pojawia się jako otwarty na pilocie. Korzystanie plinkbezpośrednio działało bez problemu przy użyciu tych samych poleceń, co zwykłe ssh. Nie mogłem zrozumieć, co sprawiło, że kit nie zadziałał ...
m3nda
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.