Czy mogę utworzyć SSH do tunelowania HTTP przez serwer tak, jakby to był serwer proxy?


33

Powiedz, że mam serveri client. Muszę utworzyć połączenie od clientdo websitepoprzez, serverjakby to był serwer proxy.

Czy można to zrobić za pomocą tunelu SSH, czy też muszę zainstalować jakąś usługę proxy server?

Odpowiedzi:


43

Możesz to zrobić za pomocą ssh

ssh -L 80:remotehost:80 user@myserver

Będziesz wtedy mieć tunel z lokalnego portu 80 do zdalnego portu 80. To nie musi być taki sam jak mój serwer. Aby zachować przejrzystość, należy dodać wpis do pliku hosts. Jeśli tego nie zrobisz, vhosty nie będą działać. Jeśli potrzebujesz połączenia SOCKS-proxy, możesz również użyć

ssh -D 5000 user@myserver

Spowoduje to utworzenie serwera proxy SOCKS na porcie lokalnym hosta 5000, który kieruje wszystkie żądania przez mój serwer.


2
Jeśli chcesz, aby ten tunel był dostępny dla klientów spoza twojego pudełka, dodaj opcję -g.
mr-euro

1
Polecenie w formie pisemnej nie działało dla mnie. Musiałem zastąpić zdalny host
pętlą zwrotną w

Przydałby się bardziej, gdyby port zdalny był inny niż ssh -L 81:remotehost:80 user@myserverport lokalny, który mówi 81, jakby to był zdalny port 80.
Rafareino

1
Jeśli chcesz dodać proxy SOCKS poprzez ~ / .ssh / config, użyj:Host myserver User user DynamicForward 5000
bonh

15

Tak to mozliwe.

Uruchom ssh -D port user@hosti skonfiguruj swojego klienta, aby używał twojego urządzenia jako serwera proxy SOCKS.

Jeśli potrzebujesz serwera proxy HTTP, możesz użyć Proxychains i przekierować go przez poprzednie SOCKS.


5

Kit też to robi całkiem dobrze.

Pod SSH, Goto Tunnels. Na dole umieść 8080 w porcie, a dla miejsca docelowego pozostaw go na czarno i wybierz przycisk opcji „Dynamiczny”. To wszystko, co musisz zrobić, teraz połączyć się z serwerem za pomocą Putty.

Po podłączeniu masz serwer proxy działający na lokalnym hoście na porcie 8080, który będzie proxy wszystkich żądań przez serwer.

Teraz użyj przeglądarki internetowej i skonfiguruj serwer proxy, ustawiając host = localhost i port = 8080 i upewnij się, że jest to wybrany serwer proxy SOCKS. Robię to cały czas, więc jeśli używasz przeglądarki Firefox, zainstaluj wtyczkę FoxyProxy, ponieważ powoduje ona włączenie / wyłączenie proxy za pomocą jednego kliknięcia.

Uwaga: pamiętaj, że domyślnie twoje żądania DNS nie są proxy. Tak więc witryna odwiedzana przez proxy będzie nadal logowana (jeśli logują te rzeczy). Możesz ustawić firefox również na żądania DNS proxy, po prostu domyślnie tego nie robi.



2

Aby zezwolić na uruchamianie serwera proxy i umożliwić innym klientom łączenie się z tobą, potrzebujesz opcji -g. Na przykład uruchomiłbyś to na serwerze o nazwie foo:

ssh -g -ND 9191 root@remotehost

Następnie możesz ustawić proxy w przeglądarce klienta, aby korzystało z serwera foo i portu 9191 dla proxy SOCKS. Klienci będą wysyłać swoje żądania zbyt foo, którzy z kolei przekażą żądanie za pośrednictwem ssh do zdalnego hosta. Tak więc w Internecie będzie wyglądać, jakby korzystali ze zdalnego hosta.

Jeśli chcesz przekazywać również żądania DNS za pomocą firefox, edytuj about: config w firefox i ustaw network.proxy.socks_remote_dns na true.


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.