feat(mtproto): add domain-fronting and essential mtg options

Expose mtg's [domain-fronting] section (ip/port/proxy-protocol) plus
proxy-protocol-listener, prefer-ip, and debug on MTProto inbounds. Each
key is written to the generated mtg-<id>.toml only when set, so mtg's own
defaults apply otherwise. The instance fingerprint now covers these
fields, so editing an option restarts the sidecar.

Since MTProto is mtg-served (not Xray), sniffing does not apply: hide the
Sniffing tab and the Advanced sniffing sub-editor, drop it from the
Advanced "All" JSON view, and emit empty sniffing in the wire payload,
all gated by a new canEnableSniffing predicate.
This commit is contained in:
MHSanaei
2026-06-09 12:44:04 +02:00
parent f8e89cc848
commit 6c1594693d
27 changed files with 592 additions and 55 deletions
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "طريقة التشفير",
"fakeTlsDomain": "نطاق FakeTLS (SNI)",
"mtprotoSecret": "المفتاح السري",
"mtprotoHint": "يتم تقديم MTProto عبر عملية mtg منفصلة وليس Xray. إعدادات النقل والعملاء لا تنطبق هنا — شارك الرابط أدناه مع تيليجرام.",
"mtgDomainFrontingIp": "عنوان IP لـ Domain fronting",
"mtgDomainFrontingPort": "منفذ Domain fronting",
"mtgDomainFrontingProxyProtocol": "بروتوكول PROXY لـ Domain fronting",
"mtgDomainFrontingHint": "المكان الذي يرسل إليه mtg حركة المرور غير الخاصة بتيليجرام — مثل موقع NGINX الوهمي لديك. اترك حقل IP فارغًا لاستخدام نطاق FakeTLS عبر DNS؛ المنفذ الافتراضي هو 443.",
"mtgProxyProtocolListener": "قبول بروتوكول PROXY (المستمع)",
"mtgPreferIp": "تفضيل IP",
"mtgDebug": "سجل التصحيح",
"visionTestseed": "Vision testseed",
"version": "الإصدار",
"udpIdleTimeout": "UDP idle timeout (ثانية)",
+7 -1
View File
@@ -504,7 +504,13 @@
"encryptionMethod": "Encryption method",
"fakeTlsDomain": "FakeTLS domain (SNI)",
"mtprotoSecret": "Secret",
"mtprotoHint": "MTProto is served by a separate mtg process, not Xray. Stream settings and clients do not apply here — share the link below with Telegram.",
"mtgDomainFrontingIp": "Domain fronting IP",
"mtgDomainFrontingPort": "Domain fronting port",
"mtgDomainFrontingProxyProtocol": "Domain fronting PROXY protocol",
"mtgDomainFrontingHint": "Where mtg sends non-Telegram traffic — e.g. your NGINX fake site. Leave the IP empty to use the FakeTLS domain via DNS; default port is 443.",
"mtgProxyProtocolListener": "Accept PROXY protocol (listener)",
"mtgPreferIp": "IP preference",
"mtgDebug": "Debug logging",
"visionTestseed": "Vision testseed",
"version": "Version",
"udpIdleTimeout": "UDP idle timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Método de cifrado",
"fakeTlsDomain": "Dominio FakeTLS (SNI)",
"mtprotoSecret": "Secreto",
"mtprotoHint": "MTProto se sirve mediante un proceso mtg independiente, no Xray. Los ajustes de transporte y los clientes no aplican aquí; comparte el enlace de abajo con Telegram.",
"mtgDomainFrontingIp": "IP de domain fronting",
"mtgDomainFrontingPort": "Puerto de domain fronting",
"mtgDomainFrontingProxyProtocol": "Protocolo PROXY de domain fronting",
"mtgDomainFrontingHint": "Adónde envía mtg el tráfico que no es de Telegram, p. ej. tu sitio web falso de NGINX. Deja la IP vacía para usar el dominio FakeTLS mediante DNS; el puerto predeterminado es 443.",
"mtgProxyProtocolListener": "Aceptar protocolo PROXY (escucha)",
"mtgPreferIp": "Preferencia de IP",
"mtgDebug": "Registro de depuración",
"visionTestseed": "Vision testseed",
"version": "Versión",
"udpIdleTimeout": "UDP idle timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "روش رمزنگاری",
"fakeTlsDomain": "دامنه FakeTLS (SNI)",
"mtprotoSecret": "کلید مخفی",
"mtprotoHint": "پروتکل MTProto توسط یک پردازش جداگانه mtg ارائه می‌شود، نه Xray. تنظیمات انتقال و کلاینت‌ها اینجا کاربرد ندارند — لینک زیر را با تلگرام به اشتراک بگذارید.",
"mtgDomainFrontingIp": "آی‌پی Domain fronting",
"mtgDomainFrontingPort": "پورت Domain fronting",
"mtgDomainFrontingProxyProtocol": "پروتکل PROXY برای Domain fronting",
"mtgDomainFrontingHint": "جایی که mtg ترافیک غیرتلگرامی را به آن ارسال می‌کند — مثلاً سایت جعلی NGINX شما. برای استفاده از دامنهٔ FakeTLS از طریق DNS، فیلد IP را خالی بگذارید؛ پورت پیش‌فرض 443 است.",
"mtgProxyProtocolListener": "پذیرش پروتکل PROXY (شنونده)",
"mtgPreferIp": "ترجیح IP",
"mtgDebug": "گزارش اشکال‌زدایی",
"visionTestseed": "Vision testseed",
"version": "نسخه",
"udpIdleTimeout": "UDP idle timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Metode enkripsi",
"fakeTlsDomain": "Domain FakeTLS (SNI)",
"mtprotoSecret": "Secret",
"mtprotoHint": "MTProto dijalankan oleh proses mtg terpisah, bukan Xray. Pengaturan stream dan klien tidak berlaku di sini — bagikan tautan di bawah ke Telegram.",
"mtgDomainFrontingIp": "IP domain fronting",
"mtgDomainFrontingPort": "Port domain fronting",
"mtgDomainFrontingProxyProtocol": "Protokol PROXY domain fronting",
"mtgDomainFrontingHint": "Tujuan mtg mengirim lalu lintas non-Telegram — mis. situs palsu NGINX Anda. Kosongkan IP untuk memakai domain FakeTLS melalui DNS; port bawaan adalah 443.",
"mtgProxyProtocolListener": "Terima protokol PROXY (listener)",
"mtgPreferIp": "Preferensi IP",
"mtgDebug": "Log debug",
"visionTestseed": "Vision testseed",
"version": "Versi",
"udpIdleTimeout": "UDP idle timeout (d)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "暗号化方式",
"fakeTlsDomain": "FakeTLS ドメイン (SNI)",
"mtprotoSecret": "シークレット",
"mtprotoHint": "MTProto は Xray ではなく独立した mtg プロセスで提供されます。ストリーム設定とクライアントはここでは適用されません。下のリンクを Telegram で共有してください。",
"mtgDomainFrontingIp": "ドメインフロンティング IP",
"mtgDomainFrontingPort": "ドメインフロンティング ポート",
"mtgDomainFrontingProxyProtocol": "ドメインフロンティング PROXY プロトコル",
"mtgDomainFrontingHint": "mtg が Telegram 以外のトラフィックを転送する先 — 例: あなたの NGINX ダミーサイト。IP を空欄にすると DNS 経由で FakeTLS ドメインを使用します。デフォルトポートは 443 です。",
"mtgProxyProtocolListener": "PROXY プロトコルを受け入れる(リスナー)",
"mtgPreferIp": "IP の優先設定",
"mtgDebug": "デバッグログ",
"visionTestseed": "Vision testseed",
"version": "バージョン",
"udpIdleTimeout": "UDP idle timeout (秒)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Método de criptografia",
"fakeTlsDomain": "Domínio FakeTLS (SNI)",
"mtprotoSecret": "Segredo",
"mtprotoHint": "O MTProto é servido por um processo mtg separado, não pelo Xray. As configurações de transporte e os clientes não se aplicam aqui — compartilhe o link abaixo com o Telegram.",
"mtgDomainFrontingIp": "IP de domain fronting",
"mtgDomainFrontingPort": "Porta de domain fronting",
"mtgDomainFrontingProxyProtocol": "Protocolo PROXY de domain fronting",
"mtgDomainFrontingHint": "Para onde o mtg envia o tráfego que não é do Telegram — por exemplo, seu site falso NGINX. Deixe o IP vazio para usar o domínio FakeTLS via DNS; a porta padrão é 443.",
"mtgProxyProtocolListener": "Aceitar protocolo PROXY (listener)",
"mtgPreferIp": "Preferência de IP",
"mtgDebug": "Log de depuração",
"visionTestseed": "Vision testseed",
"version": "Versão",
"udpIdleTimeout": "UDP idle timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Метод шифрования",
"fakeTlsDomain": "Домен FakeTLS (SNI)",
"mtprotoSecret": "Секрет",
"mtprotoHint": "MTProto обслуживается отдельным процессом mtg, а не Xray. Настройки транспорта и клиенты здесь не применяются — поделитесь ссылкой ниже в Telegram.",
"mtgDomainFrontingIp": "IP домен-фронтинга",
"mtgDomainFrontingPort": "Порт домен-фронтинга",
"mtgDomainFrontingProxyProtocol": "PROXY-протокол домен-фронтинга",
"mtgDomainFrontingHint": "Куда mtg отправляет не-Telegram трафик — например, на ваш фейковый сайт NGINX. Оставьте IP пустым, чтобы использовать домен FakeTLS через DNS; порт по умолчанию — 443.",
"mtgProxyProtocolListener": "Принимать PROXY-протокол (слушатель)",
"mtgPreferIp": "Предпочтение IP",
"mtgDebug": "Журнал отладки",
"visionTestseed": "Vision testseed",
"version": "Версия",
"udpIdleTimeout": "UDP idle timeout (с)",
+7 -1
View File
@@ -504,7 +504,13 @@
"encryptionMethod": "Şifreleme Yöntemi",
"fakeTlsDomain": "FakeTLS alan adı (SNI)",
"mtprotoSecret": "Gizli Anahtar (Secret)",
"mtprotoHint": "MTProto, Xray tarafından değil, ayrı bir mtg işlemi tarafından sunulur. Akış ayarları ve kullanıcılar burada geçerli değildir — aşağıdaki bağlantıyı Telegram ile paylaşın.",
"mtgDomainFrontingIp": "Domain fronting IP",
"mtgDomainFrontingPort": "Domain fronting portu",
"mtgDomainFrontingProxyProtocol": "Domain fronting PROXY protokolü",
"mtgDomainFrontingHint": "mtg'nin Telegram dışı trafiği gönderdiği yer — örn. NGINX sahte siteniz. FakeTLS alan adını DNS üzerinden kullanmak için IP'yi boş bırakın; varsayılan port 443'tür.",
"mtgProxyProtocolListener": "PROXY protokolünü kabul et (dinleyici)",
"mtgPreferIp": "IP tercihi",
"mtgDebug": "Hata ayıklama günlüğü",
"visionTestseed": "Vision Testseed",
"version": "Sürüm",
"udpIdleTimeout": "UDP Idle Timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Метод шифрування",
"fakeTlsDomain": "Домен FakeTLS (SNI)",
"mtprotoSecret": "Секрет",
"mtprotoHint": "MTProto обслуговується окремим процесом mtg, а не Xray. Налаштування транспорту та клієнти тут не застосовуються — поділіться посиланням нижче в Telegram.",
"mtgDomainFrontingIp": "IP домен-фронтингу",
"mtgDomainFrontingPort": "Порт домен-фронтингу",
"mtgDomainFrontingProxyProtocol": "PROXY-протокол домен-фронтингу",
"mtgDomainFrontingHint": "Куди mtg надсилає не-Telegram трафік — наприклад, на ваш фейковий сайт NGINX. Залиште IP порожнім, щоб використовувати домен FakeTLS через DNS; типовий порт — 443.",
"mtgProxyProtocolListener": "Приймати PROXY-протокол (слухач)",
"mtgPreferIp": "Перевага IP",
"mtgDebug": "Журнал налагодження",
"visionTestseed": "Vision testseed",
"version": "Версія",
"udpIdleTimeout": "UDP idle timeout (с)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "Phương thức mã hóa",
"fakeTlsDomain": "Tên miền FakeTLS (SNI)",
"mtprotoSecret": "Khóa bí mật",
"mtprotoHint": "MTProto được phục vụ bởi một tiến trình mtg riêng, không phải Xray. Cài đặt truyền tải và máy khách không áp dụng ở đây — hãy chia sẻ liên kết bên dưới với Telegram.",
"mtgDomainFrontingIp": "IP domain fronting",
"mtgDomainFrontingPort": "Cổng domain fronting",
"mtgDomainFrontingProxyProtocol": "Giao thức PROXY domain fronting",
"mtgDomainFrontingHint": "Nơi mtg gửi lưu lượng không phải Telegram — ví dụ trang web giả NGINX của bạn. Để trống IP để dùng tên miền FakeTLS qua DNS; cổng mặc định là 443.",
"mtgProxyProtocolListener": "Chấp nhận giao thức PROXY (trình lắng nghe)",
"mtgPreferIp": "Ưu tiên IP",
"mtgDebug": "Nhật ký gỡ lỗi",
"visionTestseed": "Vision testseed",
"version": "Phiên bản",
"udpIdleTimeout": "UDP idle timeout (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "加密方法",
"fakeTlsDomain": "FakeTLS 域名 (SNI)",
"mtprotoSecret": "密钥",
"mtprotoHint": "MTProto 由独立的 mtg 进程提供服务,而非 Xray。传输设置和客户端在此不适用——请将下方链接分享到 Telegram。",
"mtgDomainFrontingIp": "域前置 IP",
"mtgDomainFrontingPort": "域前置端口",
"mtgDomainFrontingProxyProtocol": "域前置 PROXY 协议",
"mtgDomainFrontingHint": "mtg 转发非 Telegram 流量的目标——例如你的 NGINX 伪装站点。留空 IP 则通过 DNS 解析 FakeTLS 域名;默认端口为 443。",
"mtgProxyProtocolListener": "接受 PROXY 协议(监听器)",
"mtgPreferIp": "IP 优先级",
"mtgDebug": "调试日志",
"visionTestseed": "Vision testseed",
"version": "版本",
"udpIdleTimeout": "UDP 空闲超时 (s)",
+7 -1
View File
@@ -503,7 +503,13 @@
"encryptionMethod": "加密方法",
"fakeTlsDomain": "FakeTLS 網域 (SNI)",
"mtprotoSecret": "金鑰",
"mtprotoHint": "MTProto 由獨立的 mtg 程序提供服務,而非 Xray。傳輸設定與用戶端在此不適用——請將下方連結分享至 Telegram。",
"mtgDomainFrontingIp": "網域前置 IP",
"mtgDomainFrontingPort": "網域前置連接埠",
"mtgDomainFrontingProxyProtocol": "網域前置 PROXY 協定",
"mtgDomainFrontingHint": "mtg 轉發非 Telegram 流量的目標——例如你的 NGINX 偽裝站台。IP 留空則透過 DNS 解析 FakeTLS 網域;預設連接埠為 443。",
"mtgProxyProtocolListener": "接受 PROXY 協定(監聽器)",
"mtgPreferIp": "IP 偏好",
"mtgDebug": "除錯日誌",
"visionTestseed": "Vision testseed",
"version": "版本",
"udpIdleTimeout": "UDP 閒置逾時 (s)",