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

в 19:07, , рубрики: node.js, Сетевые технологии

Задача: обойти блокировку Телграма для бота, крутящегося на 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

Автор: тащит всю команду

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js