Чтобы делать то, что вы хотите, я рекомендую sshuttle .
Вы используете это так:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Он автоматически туннелирует весь ваш TCP-трафик. Вы можете добавить --dns
аргумент для туннелирования вашего DNS-трафика. На удаленном сервере должен быть установлен только Python.
Если вы хотите туннелировать только определенные программы, я бы порекомендовал прокси-цепочки .
После установки запустите прокси-сервер ssh socks следующим образом:
ssh -fND 127.0.0.1:<local port> username@sshserver
Это запустит прослушивание прокси-сервера «SOCKS» на <локальный порт>.
Затем отредактируйте файл /etc/proxychains.conf так, чтобы он указывал на тот же порт, что и <локальный порт>.
Наконец запустите вашу программу, которую вы хотите прокси-редактор, примерно так:
proxychains <program name>
Это должно просто работать. Тем не менее, некоторые программы будут иметь проблемы с работой с цепочками прокси. Также имейте в виду, что в Firefox вы должны изменить дополнительные пункты в about: config, чтобы заставить его выполнять поиск DNS через прокси, а не обходить его.
Как дополнительное примечание, о веб-браузерах. Если они поддерживают прокси-серверы socks, вам не нужно ничего делать, чтобы заставить их использовать вышеупомянутый туннель ssh, просто введите 127.0.0.1 для прокси-сервера SOCKS и <local port> для порта прокси.
РЕДАКТИРОВАТЬ 3/29/16
Так как в этом посте все еще видны некоторые отклики, я решил обновить его. Proxychains по-прежнему присутствует в большинстве репозиториев Linux и все еще работает в Linux. Однако проект фактически заброшен и не работает на OSX. Для Linux или OSX я настоятельно рекомендую перейти на все еще поддерживаемый форк: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Помимо работы как в Linux, так и в OSX, его легко компилировать, а также значительно улучшена поддержка туннелирования DNS.
Я должен также упомянуть еще один вариант, который является redsocks. Он работает аналогично прокси-цепям (-ng) и, скорее всего, в вашем дистрибутивном репозитории: https://github.com/darkk/redsocks