Чтобы сделать то, что вы хотите, я рекомендую sshuttle .
Вы используете его вот так:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Он автоматически туннелирует для вас весь ваш TCP-трафик. Вы можете добавить аргумент --dns
, чтобы он также туннелировал ваш DNS трафик. На удаленном сервере должен быть установлен только Python.
Если вы хотите туннелировать только определенные программы, я бы порекомендовал прокси-серверы .
После установки запустите ssh socks прокси так:
ssh -fNTD 127.0.0.1:<local port> username@sshserver
Это запустит “SOCKS” прокси прослушивание на <local port>.
Затем отредактируйте /etc/proxychains.conf, чтобы указать на тот же порт, что и <local port>.
Наконец-то запустите вашу программу, которую вы хотите проксировать таким образом:
proxychains <program name>
Она должна просто работать. Однако, несколько программ будут иметь проблемы при работе с Proxy Chains. Также имейте в виду, что в Firefox, вы должны изменить дополнительные элементы в about:config, чтобы заставить его выполнять DNS поиск через прокси вместо того, чтобы обходить его.
В качестве дополнительного примечания, в веб-браузерах. Если они поддерживают socks прокси, вам не нужно делать ничего дополнительного, чтобы заставить их использовать вышеуказанный, ssh туннель, просто введите 127.0.0.1 для SOCKS прокси сервера и <local port> для прокси порта.
EDIT 3/29/16
Так как в этом посте все еще видны некоторые upvotes, я решил его обновить. Proxychains все еще находится в большинстве репозиториев Linux и все еще работает под Linux. Однако, проект фактически заброшен и не работает на OSX. Для Linux или OSX я настоятельно рекомендую обновиться до до сих пор поддерживаемой развилки: proxyychains-ng: https://github.com/rofl0r/proxychains-ng
Помимо того, что он работает как в Linux, так и в OSX, он легко компилируется, а также имеет гораздо лучшую поддержку туннелирования DNS.
Следует также упомянуть еще один вариант - redsocks. Он работает аналогично прокси-серверу(-ng), а также, скорее всего, в вашем дистрибутиве: https://github.com/darkk/redsocks
EDIT 11/27/19 Если вы идёте по маршруту прокси-серверов, пожалуйста, используйте прокси-серверы-ng. Есть несколько серьезных исправлений по сравнению с устаревшей версией, например: https://github.com/rofl0r/proxychains-ng/issues/292