Pytanie jest proste, ale odpowiedź nie brzmi:
ssh -D 8080 user@host
lub
ssh -gCNf -D 8080 user@host
lub
wathever with -D #
Potrzebuję pewnego rodzaju serwera proxy, którego można używać ze zmienną http_proxy w urządzeniu osadzonym, które nie obsługuje SOCKS.
Co powinienem zrobić?
linux
ssh
proxy
socks-proxy
http-proxy
behrooz
źródło
źródło
ssh -D user@host:8080
?-D
określa port do otwarcia tunelu, a nie port do połączenia. (Nawet port połączenia jest określony jako-p port
, nie:port
ze względów kompatybilności.)Odpowiedzi:
Metoda 1: Użyj serwera proxy HTTP, który obsługuje używanie SOCKS w górę, np. Polipo lub Privoxy.
Najpierw utwórz
-D
tunel nad SSH jak zawsze, a następnie skonfiguruj proxy HTTP, aby korzystał z tunelu SSH - przykładowa konfiguracja Polipo:Na koniec wskaż aplikację za pomocą Polipo
http_proxy=localhost:8118
.Metoda 2: Uruchom swój program w
torsocks
opakowaniu (lub starszymtsocks
), który transparentnie przekazuje wszystkie połączenia. Był przeznaczony do użytku z Torem, ale działa z dowolnym serwerem SOCKS, w tymssh -D
.Metoda 3: Skonfiguruj serwer proxy HTTP na serwerze , a następnie użyj go,
ssh -L
aby uzyskać do niego dostęp.źródło
Każdy
-D
wynik w serwerze SOCKS. Jeśli twój klient nie może obsłużyć SOCKS, zapomnij-D
.Musisz uruchomić serwer proxy HTTP na zdalnym hoście i przesłać dalej za pomocą
-L
:źródło
Mam ten sam problem, który chce korzystać z proxy HTTP za pośrednictwem SSH. Ponieważ wiele aplikacji obsługuje tylko proxy HTTP, a proxy HTTP można łatwo używać w środowisku wiersza poleceń.
Chociaż przeszukałem kilka stron, ale nie mogę znaleźć bezpośredniego (można połączyć łańcuchem z Polipo, Privoxy lub tsocks) sposobu na zrobienie tego ...
Po kilku dniach pracy ukończyłem prostą wersję serwera proxy HTTP firmy Golang za pośrednictwem SSH. Zapraszam do zabawy: mallory .
Obecnie obsługuje tylko klucz RSA (znajdujący się w $ HOME / .ssh / id_rsa) i autoryzację hasłem.
host
jest adres serwera SSH,port
to22
jeśli nie zostanie zmieniona przez administratora. Po stronie serwera jest tylko nasz stary przyjacielsshd
z zerową konfiguracją.lub z nazwą użytkownika
user
lub z nazwą użytkownika
user
i hasłem1234
Po połączeniu serwer proxy HTTP będzie obsługiwał localhost: 1315.
źródło
Spowoduje to otwarcie portu 8080 na komputerze lokalnym i przekazanie wszystkich danych do portu 12345 na komputerze lokalnym, jak widać z komputera zdalnego.
źródło
Uruchom Privoxy na zdalnym hoście, a następnie połącz przez SSH z Privoxy, używając
-L
opcji:( źródło strony )
źródło
Możesz także użyć korkociąg (GPL)
Dodaj następujące elementy do swojego
.ssh/config
źródło