Hiddify MTProto - telemt против mtg, два формата конфига#
Под общим юнитом mtproxy.service Hiddify-manager на ноде поднимает один из двух MTProto-демонов. У них разные форматы конфига и разная модель секретов - это важно понимать, когда лезете править вручную или дебажить.
Что нужно#
- Понимание, что haproxy на :443 в обоих случаях заворачивает MTProto-трафик на
127.0.0.1:1001, дальше работает то, что слушает этот порт. - Доступ root на ноду, чтобы посмотреть, какой именно демон активен.
Шаги#
Шаг 1. Определить активный демон#
В ExecStart либо mtg, либо telemt - это и есть активный демон. Дополнительный признак: смотреть, в каком из конфигов лежат осмысленные данные:
head -5 /opt/hiddify-manager/other/telegram/tgo/mtg.toml
head -10 /opt/hiddify-manager/other/telegram/telemt/config.toml
Часто оба файла существуют, но один из них - dead/example (первая строка # This is an example...), а второй - живой.
Шаг 2. Понять формат активного#
mtg (legacy) - single-secret сервер. Конфиг /opt/hiddify-manager/other/telegram/tgo/mtg.toml:
На ноде валиден ровно один клиентский секрет. Версия настройки - telegram_lib=tgo в hconfig.
telemt (текущий дефолт Hiddify) - мульти-юзер сервер. Конфиг /opt/hiddify-manager/other/telegram/telemt/config.toml:
[censorship]
tls_domain = "ваш-faketls-домен"
[access.users]
default = "<user_hex>"
<user_hex> = "<user_hex>"
Полный клиентский секрет каждого юзера: ee + user_hex + hex(tls_domain). На ноде одновременно валидны множество секретов - по одному на юзера. tg://-ссылка работает, если ее secret= соответствует любому юзеру из таблицы.
Шаг 3. Править правильный файл#
Если активен telemt - править [access.users] в telemt/config.toml (и парный config.toml.j2), не трогать mtg.toml. И наоборот. После правки запустить apply_configs.sh --no-gui --no-log, чтобы шаблон перерендерился (см. apply_configs.sh - всегда с --no-gui --no-log).
Проверка#
Демон должен быть active и слушать :1001. После любых правок секретов протестировать tg://-ссылкой из реального Telegram-клиента - внешние мониторинги не всегда ловят расхождение между faketls в конфиге и faketls в секрете. Подробнее про этот класс ошибок: MTProto faketls-домен дрейфует.
Источники#
На основе опыта автора hiddify-faq.
Не помогло или есть уточняющий вопрос - заходите в русское сообщество @hiddify_rus.