SSH прокси

2.12.21
9.08.23

Чтобы пробросить весь трафик через собственный удаленный сервер, надо поднять SOCKS тоннель 

  1. Выполнить команду:

ssh -q -f -C -N -D 9090 your.login@your.server.com

Запускать под root-ом

Описание опций:
-D номер порта. Необходимый параметр. Задает локальное перенаправление портов на уровне приложения, выделяя сокет для прослушивания указанного порта на локальной стороне. Когда происходит соединение с этим портом, соединение пересылается через SSH по защищенному каналу. В настоящее время поддерживаются протоколы SOCKS4 и SOCKS5, а ssh будет действовать как сервер SOCKS;
-q тихий режим;
-f фоновый режим;
-C Сжатие всех данных с использованием того же алгоритма, что и gzip. Использовать для медленных линий, для быстрого канала лучше отключить — повышает нагрузку;
-N Не выполнять удаленную команду;

  1. Далее настроить прокси, например, в Firefox:
    SOCKS 5.        localhost:9090 (номер порта тот, что указал в команде выше)

Данный пример работает на Linux, macOS (Mac OS X), BSD и пробрасывает весь трафик. Его удобно включать временно, для решения определенных задач. Если нужно использовать на постоянной основе — добавьте в автозагрузку. В этом случае необходимо настроить доступ к серверу по ключам, иначе при запуске каждый раз нужно будет вводить пароль.

Для проброса не всего трафика, а лишь запросов к определенным ресурсам, например, из списка antizapret.info нужно смотреть в сторону ipsettpws или nfqws, это отдельная тема. Поднимать такой сервис на одном локальном хосте нерационально. Имеет смысл в случае локальной сети и, соответственно, наличие сервера в этой сети.