Aby zrobić to, czego chcesz, polecam sshuttle .
Używasz go w ten sposób:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Będzie automatycznie tunelował cały ruch TCP. Możesz dodać --dns
argument, aby tunelował również ruch DNS. Serwer zdalny musi mieć tylko zainstalowany Python.
Jeśli chcesz tylko tunelować określone programy, poleciłbym proxy .
Po zainstalowaniu uruchom proxy ssh socks w następujący sposób:
ssh -fND 127.0.0.1:<local port> username@sshserver
Spowoduje to uruchomienie serwera proxy „SOCKS” na <porcie lokalnym>.
Następnie edytuj plik /etc/proxychains.conf, aby wskazywał ten sam port co <port lokalny>.
Na koniec uruchom program, który chcesz proxy:
proxychains <program name>
Powinno po prostu działać. Jednak kilka programów będzie miało problemy z działaniem z łańcuchami proxy. Pamiętaj również, że w Firefoksie musisz zmienić dodatkowe elementy w about: config, aby zmusić go do wyszukiwania DNS przez proxy zamiast ominięcia.
Dodatkowo, w przeglądarkach internetowych. Jeśli obsługują one proxy skarpet, nie musisz robić nic więcej, aby zmusić je do korzystania z wyżej wspomnianego tunelu ssh, po prostu wpisz 127.0.0.1 dla serwera proxy SOCKS i <port lokalny> dla portu proxy.
EDYCJA 3/29/16
Ponieważ w tym poście nadal pojawiają się głosy poparcia, pomyślałem, że go zaktualizuję. Proxychains jest nadal w większości repozytoriów Linuksa i nadal działa w systemie Linux. Jednak projekt został skutecznie porzucony i nie działa na OSX. W przypadku systemu Linux lub OSX bardzo polecam aktualizację do nadal utrzymywanego rozwidlenia: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Oprócz pracy zarówno w systemie Linux, jak i OSX, jest łatwy do skompilowania, a także ma znacznie lepszą obsługę tunelowania DNS.
Powinienem również wspomnieć o innej opcji, którą jest redsocks. Działa podobnie do serwerów proxy (-ng) i jest również prawdopodobne w Twoim repozytorium: https://github.com/darkk/redsocks