Jak skonfigurować lokalny serwer proxy SOCKS, który tuneluje ruch przez SSH?


30

Załóżmy, że mam dostęp do serwera SSH, który obsługuje tunelowanie, i korzystam z komputera z * Ubuntu. Jak skonfigurować lokalny serwer proxy SOCKS, który tuneluje ruch przez ten serwer SSH przed połączeniem z Internetem?

Odpowiedzi:


45

Plik sshbinarny używany podczas łączenia się z serwerem z uruchomionym ssh obsługuje uruchamianie proxy SOCKS po wyjęciu z pudełka z -Dflagą. Przykład:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337nakazuje sshlokalne uruchomienie serwera SOCKS na porcie 1337.
  • -f rozwidla proces w tle.
  • -C Włącza kompresję.
  • -q włącza „Tryb cichy”, ponieważ tutaj chodzi tylko o tunelowanie, tak naprawdę nie dbamy o wyjście błędu i tak dalej.
  • -Ninformuje, sshże żadne polecenia nie zostaną wysłane (-f narzeka, jeśli nie określimy tego).
  • -pokreśla, którego portu użyć; oczywiście domyślnie jest to 22, więc powyższe stwierdzenie jest bezcelowe, ale uwzględnione dla jasności.

Gdy serwer SOCKS jest uruchomiony, musisz po prostu upewnić się, że aplikacja (zazwyczaj przeglądarka internetowa) próbuje połączyć się z lokalnym serwerem proxy SOCKS, a nie ze zwykłym Internetem.

W przeglądarce Firefox 29 (wyjaśnionej tutaj jako przykład) można to zrobić, przechodząc do menu (trzy kiełbasy w prawym górnym rogu), a następnie Preferencje> Zaawansowane> Sieć> (Połączenie)> Ustawienia ... - upewnij się, że tylko wypełnij pole SOCKS! Ponieważ serwer proxy znajduje się w tym samym systemie, możesz z niego korzystaćlocalhost lub 127.0.0.1wskazać z powrotem dowolny port, na którym ustawiono go w tym samym systemie.

Jeśli potrzebujesz również tunelować żądania DNS (jeśli nie są, wyszukiwania DNS ujawnią, które strony próbujesz odwiedzić), możesz po prostu zaznaczyć opcję „Zdalny DNS” lub wykonać całą konfigurację about:config. W ostatnim przypadku otwórz go i ustaw następujące wartości:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

Możesz także potrzebować tego ustawienia, aby wykluczyć niektóre domeny lub witryny z tunelowania:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

Ta odpowiedź została napisana z Francji, ale tunelowana przez Szwecję :)


Działa to tylko w przypadku Firefoxa.
Braiam

4
Nie jest on w żaden sposób specyficzny dla Firefoksa, włączyłem sekcję Firefox jako usługę, ponieważ zwykle do tego ludzie używają tunelowania SSH, działałoby to w każdej aplikacji, która obsługuje proxy SOCKS (ssh nie obchodzi).
pzkpfw

2
Mówiąc o skonfigurowaniu przeglądarki do korzystania z proxy. Jeśli korzystasz z Google Chrome , musisz zadeklarować serwer proxy w ustawieniach sieciowych Ubuntu, ponieważ właśnie tego będzie używać Google Chrome. Dostępne są nieoficjalne opcje CLI do deklarowania proxy bez tego. Ale kilka tygodni temu nie było to już możliwe.
MadMike,

Dzięki, wyciągnąłeś mnie z piekła. Dotarłem tam tylko dlatego, że nie przeczytałem twojej odpowiedzi poprawnie około 10 godzin temu. Powinien był zwrócić uwagę -Di się -prozstać.
jeziora

Również łatwiejsze do zapamiętania:ssh -D 1337 user@host
Alcalyn
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.