mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-19 17:40:59 +00:00
feat(mtproto): route Telegram egress through Xray routing rules
Add a per-inbound "Route through Xray" toggle (off by default) plus an optional outbound picker on MTProto inbounds. mtg only supports a SOCKS5 upstream, so when enabled the panel injects a loopback SOCKS bridge into the generated Xray config — tagged with the inbound's own tag — and mtg dials Telegram through it via a [network] proxies upstream. The router then governs Telegram egress: matchable in the Routing tab, or forced to a chosen outbound/balancer via the picker. - mtproto: Instance carries RouteThroughXray + XrayRoutePort (in the fingerprint); InstanceFromInbound parses them; renderConfig emits the socks5 [network] upstream; freeLocalPort exported as FreeLocalPort. - xray.go: injectMtprotoEgress appends the loopback SOCKS bridge and prepends an optional inboundTag->outbound/balancer rule, hot-appliable like injectPanelEgress. - inbound.go: backend-owned egress port persisted in settings, allocated once and carried across edits (stored value wins); stripped with the inert outboundTag when routing is off; allocation failure fails the save; routed add/update/del force a config regen. - mtproto_job: skip folding mtg metrics for routed inbounds (the bridge, carrying the inbound tag, is metered by xray_traffic_job) to avoid double-counting. - frontend: toggle + outbound/balancer Select (useOutboundTags) on the MTProto form; i18n keys for all locales.
This commit is contained in:
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "قبول بروتوكول PROXY (المستمع)",
|
||||
"mtgPreferIp": "تفضيل IP",
|
||||
"mtgDebug": "سجل التصحيح",
|
||||
"mtgRouteThroughXray": "التوجيه عبر Xray",
|
||||
"mtgRouteThroughXrayHint": "أرسل حركة Telegram لهذا البروكسي عبر Xray ليتبع قواعد التوجيه لديك. يتصل وسيط mtg عبر جسر SOCKS محلي يحمل وسم هذا الاتصال الوارد؛ استخدم ذلك الوسم في تبويب التوجيه للقواعد المتقدمة.",
|
||||
"mtgRouteOutbound": "الصادر",
|
||||
"mtgRouteOutboundHint": "اختياري. إجبار حركة Telegram على الخروج عبر هذا الصادر (أو الموازِن). اتركه فارغًا لتقرر قواعد التوجيه.",
|
||||
"mtgRouteOutboundPlaceholder": "استخدام قواعد التوجيه",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "الإصدار",
|
||||
"udpIdleTimeout": "UDP idle timeout (ثانية)",
|
||||
|
||||
@@ -486,6 +486,11 @@
|
||||
"mtgProxyProtocolListener": "Accept PROXY protocol (listener)",
|
||||
"mtgPreferIp": "IP preference",
|
||||
"mtgDebug": "Debug logging",
|
||||
"mtgRouteThroughXray": "Route through Xray",
|
||||
"mtgRouteThroughXrayHint": "Send this proxy's Telegram traffic through Xray so it follows your routing rules. The mtg sidecar dials out via a loopback SOCKS bridge tagged with this inbound's tag; reference that tag in the Routing tab for advanced rules.",
|
||||
"mtgRouteOutbound": "Outbound",
|
||||
"mtgRouteOutboundHint": "Optional. Force Telegram traffic out through this outbound (or balancer). Leave empty to let your routing rules decide.",
|
||||
"mtgRouteOutboundPlaceholder": "Use routing rules",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Version",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "Aceptar protocolo PROXY (escucha)",
|
||||
"mtgPreferIp": "Preferencia de IP",
|
||||
"mtgDebug": "Registro de depuración",
|
||||
"mtgRouteThroughXray": "Enrutar a través de Xray",
|
||||
"mtgRouteThroughXrayHint": "Envía el tráfico de Telegram de este proxy a través de Xray para que siga tus reglas de enrutamiento. El sidecar mtg sale por un puente SOCKS local con la etiqueta de esta entrada; usa esa etiqueta en la pestaña Enrutamiento para reglas avanzadas.",
|
||||
"mtgRouteOutbound": "Salida",
|
||||
"mtgRouteOutboundHint": "Opcional. Fuerza el tráfico de Telegram a salir por esta salida (o balanceador). Déjalo vacío para que decidan tus reglas de enrutamiento.",
|
||||
"mtgRouteOutboundPlaceholder": "Usar reglas de enrutamiento",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versión",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "پذیرش پروتکل PROXY (شنونده)",
|
||||
"mtgPreferIp": "ترجیح IP",
|
||||
"mtgDebug": "گزارش اشکالزدایی",
|
||||
"mtgRouteThroughXray": "مسیریابی از طریق Xray",
|
||||
"mtgRouteThroughXrayHint": "ترافیک تلگرام این پراکسی را از طریق Xray بفرستید تا از قوانین مسیریابی شما پیروی کند. سرویس جانبی mtg از طریق یک پل SOCKS محلی که با تگ همین ورودی نشانهگذاری شده خارج میشود؛ برای قوانین پیشرفته در تب مسیریابی به همان تگ ارجاع دهید.",
|
||||
"mtgRouteOutbound": "خروجی",
|
||||
"mtgRouteOutboundHint": "اختیاری. ترافیک تلگرام را وادار کنید از این خروجی (یا متعادلکننده) خارج شود. برای اینکه قوانین مسیریابی تصمیم بگیرند، خالی بگذارید.",
|
||||
"mtgRouteOutboundPlaceholder": "استفاده از قوانین مسیریابی",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "نسخه",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "Terima protokol PROXY (listener)",
|
||||
"mtgPreferIp": "Preferensi IP",
|
||||
"mtgDebug": "Log debug",
|
||||
"mtgRouteThroughXray": "Rutekan melalui Xray",
|
||||
"mtgRouteThroughXrayHint": "Kirim lalu lintas Telegram proxy ini melalui Xray agar mengikuti aturan routing Anda. Sidecar mtg keluar lewat bridge SOCKS loopback yang diberi tag sama dengan inbound ini; rujuk tag tersebut di tab Routing untuk aturan lanjutan.",
|
||||
"mtgRouteOutbound": "Outbound",
|
||||
"mtgRouteOutboundHint": "Opsional. Paksa lalu lintas Telegram keluar melalui outbound (atau balancer) ini. Biarkan kosong agar aturan routing yang menentukan.",
|
||||
"mtgRouteOutboundPlaceholder": "Gunakan aturan routing",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versi",
|
||||
"udpIdleTimeout": "UDP idle timeout (d)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "PROXY プロトコルを受け入れる(リスナー)",
|
||||
"mtgPreferIp": "IP の優先設定",
|
||||
"mtgDebug": "デバッグログ",
|
||||
"mtgRouteThroughXray": "Xray 経由でルーティング",
|
||||
"mtgRouteThroughXrayHint": "このプロキシの Telegram トラフィックを Xray 経由にして、ルーティングルールに従わせます。mtg サイドカーは、この受信のタグを付けたループバック SOCKS ブリッジ経由で接続します。高度なルールでは、ルーティングタブでそのタグを参照してください。",
|
||||
"mtgRouteOutbound": "アウトバウンド",
|
||||
"mtgRouteOutboundHint": "任意。Telegram トラフィックをこのアウトバウンド(またはバランサー)から強制的に送出します。空欄にするとルーティングルールに従います。",
|
||||
"mtgRouteOutboundPlaceholder": "ルーティングルールを使用",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "バージョン",
|
||||
"udpIdleTimeout": "UDP idle timeout (秒)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "Aceitar protocolo PROXY (listener)",
|
||||
"mtgPreferIp": "Preferência de IP",
|
||||
"mtgDebug": "Log de depuração",
|
||||
"mtgRouteThroughXray": "Rotear pelo Xray",
|
||||
"mtgRouteThroughXrayHint": "Envie o tráfego do Telegram deste proxy pelo Xray para que ele siga suas regras de roteamento. O sidecar mtg sai por uma ponte SOCKS loopback com a tag deste inbound; use essa tag na aba Roteamento para regras avançadas.",
|
||||
"mtgRouteOutbound": "Saída",
|
||||
"mtgRouteOutboundHint": "Opcional. Force o tráfego do Telegram a sair por esta saída (ou balanceador). Deixe vazio para que suas regras de roteamento decidam.",
|
||||
"mtgRouteOutboundPlaceholder": "Usar regras de roteamento",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versão",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "Принимать PROXY-протокол (слушатель)",
|
||||
"mtgPreferIp": "Предпочтение IP",
|
||||
"mtgDebug": "Журнал отладки",
|
||||
"mtgRouteThroughXray": "Маршрутизация через Xray",
|
||||
"mtgRouteThroughXrayHint": "Направляйте трафик Telegram этого прокси через Xray, чтобы он подчинялся вашим правилам маршрутизации. Сайдкар mtg выходит через локальный SOCKS-мост с тегом этого входящего подключения; используйте этот тег на вкладке «Маршрутизация» для расширенных правил.",
|
||||
"mtgRouteOutbound": "Исходящее",
|
||||
"mtgRouteOutboundHint": "Необязательно. Принудительно направить трафик Telegram через это исходящее соединение (или балансировщик). Оставьте пустым, чтобы решали ваши правила маршрутизации.",
|
||||
"mtgRouteOutboundPlaceholder": "Использовать правила маршрутизации",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Версия",
|
||||
"udpIdleTimeout": "UDP idle timeout (с)",
|
||||
|
||||
@@ -486,6 +486,11 @@
|
||||
"mtgProxyProtocolListener": "PROXY protokolünü kabul et (dinleyici)",
|
||||
"mtgPreferIp": "IP tercihi",
|
||||
"mtgDebug": "Hata ayıklama günlüğü",
|
||||
"mtgRouteThroughXray": "Xray üzerinden yönlendir",
|
||||
"mtgRouteThroughXrayHint": "Bu proxy'nin Telegram trafiğini Xray üzerinden geçirerek yönlendirme kurallarınıza uymasını sağlayın. mtg yardımcı süreci, bu gelen bağlantının etiketini taşıyan bir loopback SOCKS köprüsü üzerinden çıkış yapar; gelişmiş kurallar için Yönlendirme sekmesinde bu etiketi kullanın.",
|
||||
"mtgRouteOutbound": "Giden",
|
||||
"mtgRouteOutboundHint": "İsteğe bağlı. Telegram trafiğini bu giden bağlantı (veya dengeleyici) üzerinden çıkmaya zorlar. Yönlendirme kurallarınızın karar vermesi için boş bırakın.",
|
||||
"mtgRouteOutboundPlaceholder": "Yönlendirme kurallarını kullan",
|
||||
"visionTestseed": "Vision Testseed",
|
||||
"version": "Sürüm",
|
||||
"udpIdleTimeout": "UDP Idle Timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "Приймати PROXY-протокол (слухач)",
|
||||
"mtgPreferIp": "Перевага IP",
|
||||
"mtgDebug": "Журнал налагодження",
|
||||
"mtgRouteThroughXray": "Маршрутизація через Xray",
|
||||
"mtgRouteThroughXrayHint": "Спрямуйте трафік Telegram цього проксі через Xray, щоб він підкорявся вашим правилам маршрутизації. Сайдкар mtg виходить через локальний SOCKS-міст із тегом цього вхідного підключення; використовуйте цей тег на вкладці «Маршрутизація» для розширених правил.",
|
||||
"mtgRouteOutbound": "Вихідне",
|
||||
"mtgRouteOutboundHint": "Необов'язково. Примусово спрямувати трафік Telegram через це вихідне з'єднання (або балансувальник). Залиште порожнім, щоб вирішували ваші правила маршрутизації.",
|
||||
"mtgRouteOutboundPlaceholder": "Використовувати правила маршрутизації",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Версія",
|
||||
"udpIdleTimeout": "UDP idle timeout (с)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"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",
|
||||
"mtgRouteThroughXray": "Định tuyến qua Xray",
|
||||
"mtgRouteThroughXrayHint": "Gửi lưu lượng Telegram của proxy này qua Xray để tuân theo các quy tắc định tuyến của bạn. Tiến trình phụ mtg đi ra qua một cầu SOCKS loopback mang thẻ của inbound này; tham chiếu thẻ đó trong tab Định tuyến cho các quy tắc nâng cao.",
|
||||
"mtgRouteOutbound": "Outbound",
|
||||
"mtgRouteOutboundHint": "Tùy chọn. Buộc lưu lượng Telegram đi ra qua outbound (hoặc bộ cân bằng) này. Để trống để các quy tắc định tuyến của bạn quyết định.",
|
||||
"mtgRouteOutboundPlaceholder": "Dùng quy tắc định tuyến",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Phiên bản",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "接受 PROXY 协议(监听器)",
|
||||
"mtgPreferIp": "IP 优先级",
|
||||
"mtgDebug": "调试日志",
|
||||
"mtgRouteThroughXray": "通过 Xray 路由",
|
||||
"mtgRouteThroughXrayHint": "让此代理的 Telegram 流量经过 Xray,以应用您的路由规则。mtg 附属进程会通过带有此入站标签的本地 SOCKS 桥接出站;在路由选项卡中引用该标签即可设置高级规则。",
|
||||
"mtgRouteOutbound": "出站",
|
||||
"mtgRouteOutboundHint": "可选。强制 Telegram 流量经由此出站(或负载均衡器)发出。留空则由您的路由规则决定。",
|
||||
"mtgRouteOutboundPlaceholder": "使用路由规则",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "版本",
|
||||
"udpIdleTimeout": "UDP 空闲超时 (s)",
|
||||
|
||||
@@ -485,6 +485,11 @@
|
||||
"mtgProxyProtocolListener": "接受 PROXY 協定(監聽器)",
|
||||
"mtgPreferIp": "IP 偏好",
|
||||
"mtgDebug": "除錯日誌",
|
||||
"mtgRouteThroughXray": "透過 Xray 路由",
|
||||
"mtgRouteThroughXrayHint": "讓此代理的 Telegram 流量經過 Xray,以套用您的路由規則。mtg 附屬程序會透過帶有此入站標籤的本機 SOCKS 橋接出站;在路由分頁中引用該標籤即可設定進階規則。",
|
||||
"mtgRouteOutbound": "出站",
|
||||
"mtgRouteOutboundHint": "選填。強制 Telegram 流量經由此出站(或負載平衡器)送出。留空則由您的路由規則決定。",
|
||||
"mtgRouteOutboundPlaceholder": "使用路由規則",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "版本",
|
||||
"udpIdleTimeout": "UDP 閒置逾時 (s)",
|
||||
|
||||
Reference in New Issue
Block a user