mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-20 19:46:09 +00:00
feat(mtproto): add MTProto (FakeTLS) protocol via managed mtg sidecar (#5076)
* feat(mtproto): add MTProto (FakeTLS) protocol via managed mtg sidecar Xray-core has no mtproto proxy, so mtproto inbounds run as standalone mtg (9seconds/mtg) sidecar processes managed by the panel — one per inbound — and are excluded from the generated Xray config entirely. - model: MTProto protocol constant, validator, and FakeTLS secret helpers (GenerateFakeTLSSecret/HealMtprotoSecret) - mtproto package: per-inbound mtg process manager with reconcile, graceful stop, and best-effort Prometheus traffic scraping - runtime: delegate mtproto inbounds to the mtg manager instead of the Xray gRPC API; skip mtproto when building the Xray config - web: boot reconcile + StopAll wiring, periodic reconcile/traffic job, port-conflict transport, secret healing on inbound add/update - sub: tg:// proxy share-link generation - frontend: protocol option, Zod schema, Protocol tab (FakeTLS domain + regenerable secret), info-modal link, and i18n - provisioning: fetch mtg v2.2.8 in install.sh, DockerInit.sh, and the Linux + Windows release workflows * fix * fix * fix: address Copilot review comments on mtproto PR - web/web.go: create NewMtprotoJob once and reuse for cron + initial run - mtproto/manager.go: StopAll cleans up per-inbound config files on shutdown - mtproto/manager.go: CollectTraffic releases mutex before HTTP scrapes to avoid blocking Ensure/Reconcile/Remove during network I/O - database/model/model.go: panic on crypto/rand failure in mtprotoRandomMiddle instead of silently producing a weak all-zero secret - install.sh: fix chmod to handle renamed bin/mtg-linux-arm on armv5/v6/v7
This commit is contained in:
@@ -501,6 +501,9 @@
|
||||
"accounts": "الحسابات",
|
||||
"allowTransparent": "السماح بالشفاف",
|
||||
"encryptionMethod": "طريقة التشفير",
|
||||
"fakeTlsDomain": "نطاق FakeTLS (SNI)",
|
||||
"mtprotoSecret": "المفتاح السري",
|
||||
"mtprotoHint": "يتم تقديم MTProto عبر عملية mtg منفصلة وليس Xray. إعدادات النقل والعملاء لا تنطبق هنا — شارك الرابط أدناه مع تيليجرام.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "الإصدار",
|
||||
"udpIdleTimeout": "UDP idle timeout (ثانية)",
|
||||
|
||||
@@ -502,6 +502,9 @@
|
||||
"accounts": "Accounts",
|
||||
"allowTransparent": "Allow transparent",
|
||||
"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.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Version",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Cuentas",
|
||||
"allowTransparent": "Permitir transparente",
|
||||
"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.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versión",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "حسابها",
|
||||
"allowTransparent": "اجازه شفاف",
|
||||
"encryptionMethod": "روش رمزنگاری",
|
||||
"fakeTlsDomain": "دامنه FakeTLS (SNI)",
|
||||
"mtprotoSecret": "کلید مخفی",
|
||||
"mtprotoHint": "پروتکل MTProto توسط یک پردازش جداگانه mtg ارائه میشود، نه Xray. تنظیمات انتقال و کلاینتها اینجا کاربرد ندارند — لینک زیر را با تلگرام به اشتراک بگذارید.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "نسخه",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Akun",
|
||||
"allowTransparent": "Izinkan transparan",
|
||||
"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.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versi",
|
||||
"udpIdleTimeout": "UDP idle timeout (d)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "アカウント",
|
||||
"allowTransparent": "透過を許可",
|
||||
"encryptionMethod": "暗号化方式",
|
||||
"fakeTlsDomain": "FakeTLS ドメイン (SNI)",
|
||||
"mtprotoSecret": "シークレット",
|
||||
"mtprotoHint": "MTProto は Xray ではなく独立した mtg プロセスで提供されます。ストリーム設定とクライアントはここでは適用されません。下のリンクを Telegram で共有してください。",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "バージョン",
|
||||
"udpIdleTimeout": "UDP idle timeout (秒)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Contas",
|
||||
"allowTransparent": "Permitir transparente",
|
||||
"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.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versão",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Аккаунты",
|
||||
"allowTransparent": "Разрешить прозрачный",
|
||||
"encryptionMethod": "Метод шифрования",
|
||||
"fakeTlsDomain": "Домен FakeTLS (SNI)",
|
||||
"mtprotoSecret": "Секрет",
|
||||
"mtprotoHint": "MTProto обслуживается отдельным процессом mtg, а не Xray. Настройки транспорта и клиенты здесь не применяются — поделитесь ссылкой ниже в Telegram.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Версия",
|
||||
"udpIdleTimeout": "UDP idle timeout (с)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Hesaplar",
|
||||
"allowTransparent": "Şeffafa izin ver",
|
||||
"encryptionMethod": "Şifreleme yöntemi",
|
||||
"fakeTlsDomain": "FakeTLS alan adı (SNI)",
|
||||
"mtprotoSecret": "Gizli anahtar",
|
||||
"mtprotoHint": "MTProto, Xray değil ayrı bir mtg işlemi tarafından sunulur. Aktarım ayarları ve istemciler burada geçerli değildir — aşağıdaki bağlantıyı Telegram ile paylaşın.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Sürüm",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Акаунти",
|
||||
"allowTransparent": "Дозволити прозорий",
|
||||
"encryptionMethod": "Метод шифрування",
|
||||
"fakeTlsDomain": "Домен FakeTLS (SNI)",
|
||||
"mtprotoSecret": "Секрет",
|
||||
"mtprotoHint": "MTProto обслуговується окремим процесом mtg, а не Xray. Налаштування транспорту та клієнти тут не застосовуються — поділіться посиланням нижче в Telegram.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Версія",
|
||||
"udpIdleTimeout": "UDP idle timeout (с)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "Tài khoản",
|
||||
"allowTransparent": "Cho phép trong suốt",
|
||||
"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.",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Phiên bản",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "账户",
|
||||
"allowTransparent": "允许透明",
|
||||
"encryptionMethod": "加密方法",
|
||||
"fakeTlsDomain": "FakeTLS 域名 (SNI)",
|
||||
"mtprotoSecret": "密钥",
|
||||
"mtprotoHint": "MTProto 由独立的 mtg 进程提供服务,而非 Xray。传输设置和客户端在此不适用——请将下方链接分享到 Telegram。",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "版本",
|
||||
"udpIdleTimeout": "UDP 空闲超时 (s)",
|
||||
|
||||
@@ -501,6 +501,9 @@
|
||||
"accounts": "帳號",
|
||||
"allowTransparent": "允許透明",
|
||||
"encryptionMethod": "加密方法",
|
||||
"fakeTlsDomain": "FakeTLS 網域 (SNI)",
|
||||
"mtprotoSecret": "金鑰",
|
||||
"mtprotoHint": "MTProto 由獨立的 mtg 程序提供服務,而非 Xray。傳輸設定與用戶端在此不適用——請將下方連結分享至 Telegram。",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "版本",
|
||||
"udpIdleTimeout": "UDP 閒置逾時 (s)",
|
||||
|
||||
Reference in New Issue
Block a user