Pull to refresh

Tor proxy для NodeJS и бота Телеграм

Задача: обойти блокировку Телграма для бота, крутящегося на NodeJS на Raspberry Pi
Устанавливаем Tor
apt-get install tor

Открываем конфиг tor, расположенный по адресу: /etc/tor/torrc
И убеждаемся, что там есть такие строки
SocksPort 127.0.0.1:9050
А вот эту строку надо «закомитить», т.е. она должна выглядеть так
# SocksPolicy accept
Это означает, что мы принимаем все запросы, ничего не отфильтровывая.

Устанавливаем прокси сервер privoxy (tor не является прокси-сервером, это прокси-сервер socks, поэтому нужен http-прокси, который будет перенаправлять запросы в сеть Тор)
apt-get install privoxy

Далее открываем конфиг privoxy, расположенный по адресу: /etc/privoxy/config
И добавляем в конфиг строку:
listen-address 127.0.0.1:8118
forward-socks5t/ localhost:9050 .

Внимание знак «.» (точка) обязателен!
Этой записью мы перенаправляем трафик прокси на сеть Tor.

Запускаем сервисы
service tor start
/etc/init.d/privoxy restart # для Jessie
service privoxy restart # Ubuntu

Готово! Прокси сервер должен работать на порту 8118.
Проверяем
netstat –tlnp
должны увидеть запущенные по протоколу tcp сервисы tor и privoxy на соответствующих портах.

Но это не все. Надо заставить приложения ходить на proxy
Открываем (создаем) конфиг linux для форварда на proxy, расположенный по адресу /etc/apt/apt.conf.d/10proxy
и прописываем туда строки
Acquire::http::Proxy “http://localhost:8118/”;
Acquire::https::Proxy “http://localhost:8118/”;

Открываем (создаем) конфиг:
/etc/environment
и прописываем туда строки
http_рroxy="http://localhost:8118/"
https_рroxy=”http://localhost:8118/”


Перезапускаем сеть
/etc/init.d/networking restart

В ноде (см. примечание * ниже) используем следующий код для запуска бота
var TelegramBot = require('node-telegram-bot-api');
var bot = new TelegramBot(MyToken, {
 polling: true,
 request: {
  proxy: "http://localhost:8118"
 }
});

Если все работает, то теперь надо настроить автостарт tor и privoxy
sudo update-rc.d privoxy enable
sudo update-rc.d tor enable

или еще так рекомендуют
update-rc.d -f tor remove && update-rc.d -f tor defaults && update-rc.d -f privoxy remove && update-rc.d -f privoxy defaults && update-rc.d -f privoxy enable

Примечание
* Нода не должна быть древней, а телеграм бот не древнее версии 0.25
Проверить версию бота можно так:
npm list node-telegram-bot-api
Полезные команды:
sudo service tor status
sudo service tor stop

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.