Jump to content

Kirya

Forum Members
  • Posts

    29
  • Joined

  • Last visited

Posts posted by Kirya

  1. К тестированию меня сподвигла ситуация, что при наличии подключения IPV6 дома Телеграм отлично работает напрямую по IPV6, но у моего мобильного оператора IPV6 на сети его нет. Гонять же VPN по соте крайне расточительно для аккумулятора.

    Также как показала практика, при работе смарта с MTProxy, чем меньше задержка до прокси из сотовой сети, тем меньше расход аккумулятора  (но это не точно, и требует доп. проверок и изучения). Также учитывая то, что многие хостеры в РФ ввели у себя запрет на размещение средств обхода блокировок, а у себя дома этому никто не мешает и имея такой прекрасный роутер, как Keenetic я начал исследовать этот вопрос. 

    Для тестирования была выбрана реализация прокси сервера на Python3 от Александра Берсенёва.

    ( Статья автора https://habr.com/post/414139/ )

    Особенностью работы MTProtoproxy является то, что прокси может работать в двух режимах соедения с серверами телеграмма: напрямую, в режиме эмуляции клиента, и через middle-proxy Телеграмма, как официальная реализация. Отмечу, что тестирование показало, что работа напрямую происходит в полтора раза быстрее и занимает практически в 2 раза меньше памяти, чем через middle-proxy. Однако нужно отметить, что только работа через middle-proxy позволяет пользователям своего прокси подключать рекламный канал (ну а вдруг...)

    Для работы должен быть развернут Entware на Вашем оборудовании https://forum.keenetic.net/topic/4299-entware/

    Инсталляция.

    1. Устанавливаем, если их нет, Python3 и библиотеку Cryptography.

    opkg install python3 python3-cryptography

    2. Устанавливаем Git, если его нет.

    opkg install git git-http

    3. Разворачиваем с Git образ MTProtoproxy

    git clone -b stable https://github.com/alexbers/mtprotoproxy.git

    (Экстремалы могу развернуть и master-ветку, в которую например 01.07.2018 была добавлена также поддержка пакетов переменной длины,

    и теперь можно сказать определённо - привет DPI-ям, которые будет пробовать блочить на уровне пакетов mtproxy.

    git clone -b master https://github.com/alexbers/mtprotoproxy.git )

    4. Переходим к конфигурированию.

    cd mtprotoproxy/

    Конфигурирование заключается в редактировании файла config.py

    1. Генерим секретный ключ подключения к прокси.

    (Ставим при необходимости xxd: opkg install xxd)

    head -c 16 /dev/urandom | xxd -ps

    Можно сгенерить и другими путями, или придумать ключ самому.

    Вставляем его в конфиг после "tg":, заменив им нули.

    По умолчанию конфиг настроен на работу по двум ключам.

    Но их кол-во одновременно работающих ключей можно менять по необходимости, как сократив до одного, так и увеличив.

    MTProtoproxy ведёт статистику подключений по каждому ключу.

    2. Для увеличения скорости работы рекомендуется добавить опцию к конфиге FAST_MODE = True .

    3. При желании подключить рекламный канал или работать именно через слой middle-proxy регистрируем свой прокси у бота @MTProxybot.

    (Рекомендация: Лучше всего давать ему имя хоста в доменном, а не в ip формате, особенно при dual stack ipv4-ipv6 подключении)

    Получаем у него  proxy tag, раскомментируем  и вписываем его в конфиге в разделе AD_TAG.

    Запускаем для проверки:

    python3 mtprotoproxy.py

    screen_mtp.png.6c0409bf5a273845abdf6ef3c424ec7a.png

    Постоянный запуск из консоли лучше проводить командой

    python3 mtprotoproxy.py >> out.txt &

    Тогда прокси уйдёт работать в фон и будет выводить свою статистику раз в 10 минут в файл out.txt.

    Небольшой файл для автозагрузки в /etc/init.d с логированием ошибок и выдачей статистики также приложен к сообщению.

    S61mtprotoproxy

     

    Для подключения к прокси снаружи не забываем открыть соответсвующий порт в фаерволле Keenetic-a.

    Как говорилось ранее для хоста желательно, особенно для ipv4-ipv6 dual stack, иметь доменное имя,

    с AAAA и A записями, тогда перадавать ссылку можно будет не ip адресами, а просто хостнеймом

    одновременно для ipv4 и ipv6.

    Обсуждение работы и поведения лучше всего вести или здесь, или на канале https://t.me/Keenetic_ru

    где я тоже присутствую.

    Детали работы для опытных.

    Mtprotoproxy имеет возможность работать на 4-х библиотеках шифрования.

    Встроенной AES, очень медленной, фактически она подходит лишь для тестирования работы python-а,

    Cryptography, Pycryptodome и Pycrypto.

    Как показали мои синтетические тесты разницы в скорости работы между Cryptography и Pycryptodome

    практически нет, но если всё-таки найдутся проблемы, то следует удалить библиотеку python3-cryptography

    и поставить тестовый build http://bin.entware.net/mipselsf-k3.4/keenetic/test/python3-pycryptodome_3.7.3-1_mipsel-3.4.ipk

    для моделей DSL, LTE, VOX

    http://bin.entware.net/mipssf-k3.4/keenetic/test/python3-pycryptodome_3.7.3-1_mips-3.4.ipk

    • Thanks 6
×
×
  • Create New...