Это локальный прокси-сервер на Node.js - анализирует исходящие HTTPS запросы, и если они идут к заблокированным хостам - модифицирует их таким образом, что они проходят через системы DPI. Например, ютуб начинает нормально работать.
🐒 Вдохновился описанием метода из этой статьи на хабре ( ❗ имеет региональные ограничения - из России не видна) и решил написать версию программы на Node.js. Никаких глобальных целей не ставил - просто чтобы попробовать, будет ли работать.
🔥 Работает!!!
Тестировал на своем домашнем компе с Windows 10 x64, в основном боролся с утечками памяти - в итоге после суток непрерывной работы процесс в диспетчере держится в рамках 36мб - 80мб в зависимости от интенсивности запросов. Во время теста одновременно смотрел ролики на ютуб, смотрел стрим с твича, загружал свои видео на ютуб(примерно по 300мб - 800мб), просматривал почту и другие сайты. Код не сильно красивый, но чтобы поиграться - хватает ![]()
- написано без зависимостей и сторонних библиотек, нативными функциями, поэтому при установленной Node не нужно делать npm install и других манипуляций
- работает на любых платформах где может работать Node.js
- компилируется в исполняемый файл под системы Windows, Linux, Macos, для запуска исполняемого файла Node уже не потребуется.
- проксирует только HTTPS запросы, все HTTP отсекаются - клиент получает '''HTTP/1.1 405 Method Not Allowed'''
- запуск без параметров - модификации затронут только ютуб, с параметром -f будут добавлены хосты из файла blacklist.txt
- открытый исходный код - никаких утечек данных и тайных закладок, бэкдоров
- завершение работы происходит по ctrl+C, максимум в течении 5сек
- идеально работает в связке с Mozilla Firefox - в этом браузере можно направить на прокси только HTTPS трафик. Настройки на скрине ниже:

- Вариант - если в системе установлена Node.js
- скачать репозиторий
- в консоли сделать текущей директорией папку где лежит package.json
- запустить командой
npm startилиnode ./src/final.js -d -f
- Вариант - скомпилировать в исполняемый файл под свою систему Собирается в приложение так (для Node version < 21):
-
npm install -g pkg
-
pkg -t node18-win-x64 ./src/final.js (для Windows x64)
-
pkg -t node18-linux-x64 ./src/final.js (для Linux)
-
pkg -t node18-macos-x64 ./src/final.js (для Mac)
Начиная с 21 версии Node - можно скомпилировать нативными средствами. Подробнее, смотрите в документации
- Скачать готовый исполняемый файл со страницы релиза под свою платформу. Если запускать скомпилированное приложение без параметров, то будет патчить запросы только к ютуб. Если нужны все хосты из blacklist.txt, то нужно запускать с параметром -f (сам файл blacklist.txt не нужен, он уже внутри). Параметр -d если хотите видеть в консоли всё что происходит под капотом.
- При активном использовании некоторые сайты могут не открываться с первого раза. Достаточно бывает нажать кнопку
обновитьв браузере. - Проксируются только HTTPS, HTTP трафик не проходит.
- Если следить за логами в консоли, иногда проскакивает красная строка с ошибкой сокета - ничего значимого.