P9(4): remove local-core live-test trio — outbound speed test + egress probe, restart/stop xray endpoints

Per user decision 2026-10-21 (reverses the earlier keep call in
PANEL-LITE-SPEC.md, now amended): the lite panel never runs a local
core, so measuring/probing from the panel host is meaningless.

Backend:
- delete service/outbound probe implementation (probe_http.go and its
  tests) and the TestOutbound/TestOutbounds batch prober; outbound
  traffic accounting (AddTraffic/GetOutboundsTraffic/Reset) unchanged
- drop POST /panel/api/xray/testOutbound + testOutbounds routes and the
  outboundTestUrl setting (get/update plumbing removed; stored rows in
  existing DBs are inert)
- drop POST /panel/api/server/restartXrayService + stopXrayService
  routes/handlers and the node-sync allowlist entry; the service-level
  Stop/RestartXrayService stay for internal import/restore flows
- node-sync allowlist contract test updated to the new inventory

Frontend:
- remove test buttons/mode switch/test-all from outbounds tab, card
  list and table columns; delete TestResultPopover and CountryPill;
  drop the egress/country/latency columns fed by probe results
- remove outboundTestUrl state and save plumbing from useXraySetting
  and the Basics tab field; drop OutboundTestResult schemas
- delete the 15 now-dead i18n keys from all 13 locales (incl. the
  restart/stop keys orphaned since P6/P7 — i18n-dead-keys test green)
- tests: drop the test-URL hook test, re-probe the loopback index
  mapping through Move-to-top, regenerate API types (gen)
This commit is contained in:
Muse
2026-10-21 16:35:53 +00:00
parent 6772c97f8e
commit 5031a70ccb
43 changed files with 112 additions and 3982 deletions
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "احفظ",
"restartSuccess": "تم إعادة تشغيل Xray بنجاح",
"stopSuccess": "تم إيقاف Xray بنجاح",
"restartError": "حدث خطأ أثناء إعادة تشغيل Xray.",
"stopError": "حدث خطأ أثناء إيقاف Xray.",
"basicTemplate": "أساسي",
"advancedTemplate": "متقدم",
"generalConfigs": "إعدادات عامة",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "عدد المللي ثانية قبل تجربة عائلة العناوين البديلة. 150–250 مللي ثانية نقطة بداية جيدة.",
"RoutingStrategy": "استراتيجية التوجيه العامة",
"RoutingStrategyDesc": "حدد استراتيجية التوجيه الإجمالية لحل كل الطلبات.",
"outboundTestUrl": "رابط اختبار المخرج",
"outboundTestUrlDesc": "الرابط المستخدم عند اختبار اتصال المخرج",
"Torrent": "حظر بروتوكول التورنت",
"Inbounds": "الواردات",
"Outbounds": "الصادرات",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "الوسم",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "حالة المخرج",
"sendThrough": "أرسل من خلال",
"targetStrategy": "استراتيجية الوجهة",
"modeRealDelay": "التأخير الفعلي",
"testModeTooltip": "TCP: فحص dial سريع. HTTP: طلب كامل عبر xray. التأخير الفعلي: الوقت الكامل شاملاً إنشاء الاتصال.",
"testAll": "اختبار الكل",
"httpStatus": "حالة HTTP",
"breakdownConnect": "اتصال البروكسي",
"breakdownTls": "TLS عبر الصادر",
"breakdownTtfb": "أول بايت",
"country": "الدولة",
"server": "الخادم",
"city": "المدينة",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ لا يوجد سجل IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1290,10 +1290,6 @@
},
"xray": {
"save": "Save",
"restartSuccess": "Xray has been successfully relaunched.",
"stopSuccess": "Xray has been successfully stopped.",
"restartError": "There was an error when rebooting the Xray.",
"stopError": "There was an error when stopping the Xray.",
"basicTemplate": "Basics",
"advancedTemplate": "Advanced",
"generalConfigs": "General",
@@ -1316,8 +1312,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Milliseconds before trying the alternate address family. 150–250 ms is a good starting point.",
"RoutingStrategy": "Overall Routing Strategy",
"RoutingStrategyDesc": "Set the overall traffic routing strategy for resolving all requests.",
"outboundTestUrl": "Outbound Test URL",
"outboundTestUrlDesc": "URL used when testing outbound connectivity.",
"Torrent": "Block BitTorrent Protocol",
"Inbounds": "Inbounds",
"Outbounds": "Outbounds",
@@ -1473,18 +1467,9 @@
},
"outbound": {
"tag": "Tag",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Outbound Status",
"sendThrough": "Send Through",
"targetStrategy": "Target Strategy",
"modeRealDelay": "Real delay",
"testModeTooltip": "TCP: fast dial-only probe. HTTP: full request through xray. Real delay: total time including connection setup.",
"testAll": "Test all",
"httpStatus": "HTTP status",
"breakdownConnect": "Proxy connect",
"breakdownTls": "TLS via outbound",
"breakdownTtfb": "First byte",
"country": "Country",
"server": "Server",
"city": "City",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ No IP Record!"
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "Guardar configuración",
"restartSuccess": "Xray se ha reiniciado correctamente",
"stopSuccess": "Xray se ha detenido correctamente",
"restartError": "Ocurrió un error al reiniciar Xray.",
"stopError": "Ocurrió un error al detener Xray.",
"basicTemplate": "Perfil Básico",
"advancedTemplate": "Perfil Avanzado",
"generalConfigs": "Configuraciones Generales",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Milisegundos antes de probar la otra familia de direcciones. 150–250 ms es un buen punto de partida.",
"RoutingStrategy": "Configurar Estrategia de Enrutamiento de Dominios",
"RoutingStrategyDesc": "Establece la estrategia general de enrutamiento para la resolución de DNS.",
"outboundTestUrl": "URL de prueba de outbound",
"outboundTestUrlDesc": "URL usada al probar la conectividad del outbound",
"Torrent": "Prohibir Uso de BitTorrent",
"Inbounds": "Entradas",
"Outbounds": "Salidas",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Etiqueta",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Estado de Salida",
"sendThrough": "Enviar a través de",
"targetStrategy": "Estrategia de destino",
"modeRealDelay": "Retardo real",
"testModeTooltip": "TCP: sonda rápida solo de dial. HTTP: petición completa a través de xray. Retardo real: tiempo total incluyendo el establecimiento de la conexión.",
"testAll": "Probar todo",
"httpStatus": "Estado HTTP",
"breakdownConnect": "Conexión al proxy",
"breakdownTls": "TLS vía salida",
"breakdownTtfb": "Primer byte",
"country": "País",
"server": "Servidor",
"city": "Ciudad",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ ¡No hay registro de IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "ذخیره",
"restartSuccess": "Xray با موفقیت راه‌اندازی مجدد شد",
"stopSuccess": "Xray با موفقیت متوقف شد",
"restartError": "خطا در راه‌اندازی مجدد Xray.",
"stopError": "خطا در توقف Xray.",
"basicTemplate": "پایه",
"advancedTemplate": "پیشرفته",
"generalConfigs": "استراتژی‌ کلی",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "تعداد میلی‌ثانیه پیش از امتحان خانوادهٔ آدرس دیگر. مقدار 150 تا 250 میلی‌ثانیه نقطهٔ شروع خوبی است.",
"RoutingStrategy": "استراتژی کلی مسیریابی",
"RoutingStrategyDesc": "استراتژی کلی مسیریابی برای حل تمام درخواست‌ها را تعیین می‌کند",
"outboundTestUrl": "آدرس تست خروجی",
"outboundTestUrlDesc": "آدرسی که برای تست اتصال خروجی استفاده می‌شود.",
"Torrent": "مسدودسازی پروتکل بیت‌تورنت",
"Inbounds": "ورودی‌ها",
"Outbounds": "خروجی‌ها",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "تگ",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "وضعیت خروجی",
"sendThrough": "ارسال با",
"targetStrategy": "استراتژی مقصد",
"modeRealDelay": "تأخیر واقعی",
"testModeTooltip": "TCP: فقط dial سریع. HTTP: درخواست کامل از طریق xray. تأخیر واقعی: کل زمان همراه با برقراری اتصال.",
"testAll": "تست همه",
"httpStatus": "وضعیت HTTP",
"breakdownConnect": "اتصال پروکسی",
"breakdownTls": "TLS از طریق خروجی",
"breakdownTtfb": "اولین بایت",
"country": "کشور",
"server": "سرور",
"city": "شهر",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ رکورد آی پی وجود ندارد!"
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "Simpan",
"restartSuccess": "Xray berhasil diluncurkan ulang",
"stopSuccess": "Xray telah berhasil dihentikan",
"restartError": "Terjadi kesalahan saat memulai ulang Xray.",
"stopError": "Terjadi kesalahan saat menghentikan Xray.",
"basicTemplate": "Dasar",
"advancedTemplate": "Lanjutan",
"generalConfigs": "Strategi Umum",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Milidetik sebelum mencoba keluarga alamat lainnya. 150–250 ms adalah titik awal yang baik.",
"RoutingStrategy": "Strategi Pengalihan Keseluruhan",
"RoutingStrategyDesc": "Atur strategi pengalihan lalu lintas keseluruhan untuk menyelesaikan semua permintaan.",
"outboundTestUrl": "URL tes outbound",
"outboundTestUrlDesc": "URL yang digunakan saat menguji konektivitas outbound",
"Torrent": "Blokir Protokol BitTorrent",
"Inbounds": "Inbound",
"Outbounds": "Outbound",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Tag",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Status Keluar",
"sendThrough": "Kirim Melalui",
"targetStrategy": "Strategi Target",
"modeRealDelay": "Delay nyata",
"testModeTooltip": "TCP: probe dial-only cepat. HTTP: permintaan penuh via xray. Delay nyata: total waktu termasuk pembentukan koneksi.",
"testAll": "Tes semua",
"httpStatus": "Status HTTP",
"breakdownConnect": "Koneksi proxy",
"breakdownTls": "TLS melalui outbound",
"breakdownTtfb": "Byte pertama",
"country": "Negara",
"server": "Server",
"city": "Kota",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ Tidak ada Catatan IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1180,10 +1180,6 @@
"metricsListenDesc": "この アドレス:ポート で Xray の Prometheus 形式メトリクスを公開します(例: 127.0.0.1:11111)。空欄にすると無効になります。認証されないため、localhost にバインドしてリバースプロキシ経由で公開してください。",
"metricsTag": "メトリクスタグ",
"save": "保存",
"restartSuccess": "Xrayの再起動に成功しました",
"stopSuccess": "Xrayが正常に停止しました",
"restartError": "Xrayの再起動中にエラーが発生しました。",
"stopError": "Xrayの停止中にエラーが発生しました。",
"basicTemplate": "基本設定",
"advancedTemplate": "高度な設定",
"generalConfigs": "一般設定",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "別のアドレスファミリを試すまでのミリ秒。150〜250 ms が目安です。",
"RoutingStrategy": "ルーティングドメイン戦略設定",
"RoutingStrategyDesc": "DNS解決の全体的なルーティング戦略を設定する",
"outboundTestUrl": "アウトバウンドテスト URL",
"outboundTestUrlDesc": "アウトバウンド接続テストに使用する URL。既定値",
"Torrent": "BitTorrent プロトコルをブロック",
"Inbounds": "インバウンド",
"Outbounds": "アウトバウンド",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "タグ",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "アウトバウンドステータス",
"sendThrough": "送信経路",
"targetStrategy": "ターゲット解決戦略",
"modeRealDelay": "実際の遅延",
"testModeTooltip": "TCP: 高速 dial-only プローブ。HTTP: xray を経由した完全リクエスト。実際の遅延: 接続確立を含む合計時間。",
"testAll": "すべてテスト",
"httpStatus": "HTTPステータス",
"breakdownConnect": "プロキシ接続",
"breakdownTls": "アウトバウンド経由のTLS",
"breakdownTtfb": "最初のバイト",
"country": "国",
"server": "サーバー",
"city": "都市",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ IPレコードがありません!"
},
"email": {}
}
}
+1 -16
View File
@@ -1180,10 +1180,6 @@
"metricsListenDesc": "Expõe as métricas no estilo Prometheus do Xray neste endereço:porta (por exemplo, 127.0.0.1:11111). Deixe vazio para desativar. Vincule ao localhost e use um proxy reverso — ele não é autenticado.",
"metricsTag": "Tag de métricas",
"save": "Salvar",
"restartSuccess": "Xray foi reiniciado com sucesso",
"stopSuccess": "Xray foi interrompido com sucesso",
"restartError": "Ocorreu um erro ao reiniciar o Xray.",
"stopError": "Ocorreu um erro ao parar o Xray.",
"basicTemplate": "Básico",
"advancedTemplate": "Avançado",
"generalConfigs": "Geral",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Milissegundos antes de tentar a outra família de endereços. 150–250 ms é um bom ponto de partida.",
"RoutingStrategy": "Estratégia Geral de Roteamento",
"RoutingStrategyDesc": "Definir a estratégia geral de roteamento de tráfego para resolver todas as solicitações.",
"outboundTestUrl": "URL de teste de outbound",
"outboundTestUrlDesc": "URL usada ao testar conectividade do outbound",
"Torrent": "Bloquear Protocolo BitTorrent",
"Inbounds": "Entradas",
"Outbounds": "Saídas",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Tag",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Status de Saída",
"sendThrough": "Enviar Através de",
"targetStrategy": "Estratégia de destino",
"modeRealDelay": "Latência real",
"testModeTooltip": "TCP: sondagem rápida apenas de dial. HTTP: requisição completa pelo xray. Latência real: tempo total incluindo o estabelecimento da conexão.",
"testAll": "Testar todos",
"httpStatus": "Status HTTP",
"breakdownConnect": "Conexão do proxy",
"breakdownTls": "TLS via saída",
"breakdownTtfb": "Primeiro byte",
"country": "País",
"server": "Servidor",
"city": "Cidade",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ Nenhum registro de IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1180,10 +1180,6 @@
"metricsListenDesc": "Публикует метрики Xray в стиле Prometheus по этому адресу:порту (например, 127.0.0.1:11111). Оставьте пустым, чтобы отключить. Привяжите к localhost и проксируйте через reverse-proxy — он без аутентификации.",
"metricsTag": "Тег метрик",
"save": "Сохранить",
"restartSuccess": "Xray успешно перезапущен",
"stopSuccess": "Xray успешно остановлен",
"restartError": "Произошла ошибка при перезапуске Xray.",
"stopError": "Произошла ошибка при остановке Xray.",
"basicTemplate": "Основное",
"advancedTemplate": "Расширенный шаблон",
"generalConfigs": "Основные настройки",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Миллисекунды перед попыткой другого семейства адресов. 150–250 мс — хорошая отправная точка.",
"RoutingStrategy": "Настройка маршрутизации доменов",
"RoutingStrategyDesc": "Установка общей стратегии маршрутизации разрешения DNS",
"outboundTestUrl": "URL для теста исходящего",
"outboundTestUrlDesc": "URL для проверки подключения исходящего",
"Torrent": "Заблокировать BitTorrent",
"Inbounds": "Входящие",
"Outbounds": "Исходящие",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Тег",
"egress": "Выход",
"egressHint": "Запустите HTTP-тест, чтобы показать выходной IP и страну.",
"outboundStatus": "Статус исходящего подключения",
"sendThrough": "Отправить через",
"targetStrategy": "Стратегия назначения",
"modeRealDelay": "Реальная задержка",
"testModeTooltip": "TCP: быстрый dial-only probe. HTTP: полный запрос через xray. Реальная задержка: полное время с установлением соединения.",
"testAll": "Тестировать все",
"httpStatus": "HTTP-статус",
"breakdownConnect": "Подключение к прокси",
"breakdownTls": "TLS через исходящий",
"breakdownTtfb": "Первый байт",
"country": "Страна",
"server": "Сервер",
"city": "Город",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ Нет записей об IP-адресе."
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "Kaydet",
"restartSuccess": "Xray başarıyla yeniden başlatıldı.",
"stopSuccess": "Xray başarıyla durduruldu.",
"restartError": "Xray yeniden başlatılırken bir hata oluştu.",
"stopError": "Xray durdurulurken bir hata oluştu.",
"basicTemplate": "Temeller",
"advancedTemplate": "Gelişmiş",
"generalConfigs": "Genel",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Diğer adres ailesini denemeden önceki milisaniye. 150–250 ms iyi bir başlangıç noktasıdır.",
"RoutingStrategy": "Genel Yönlendirme Stratejisi",
"RoutingStrategyDesc": "Tüm istekleri çözmek için genel trafik yönlendirme stratejisini ayarlayın.",
"outboundTestUrl": "Giden Bağlantı Test URL'si",
"outboundTestUrlDesc": "Giden bağlantı bağlantı testinde kullanılan URL.",
"importRules": "Kuralları İçe Aktar",
"exportRules": "Kuralları Dışa Aktar",
"importOutbounds": "Giden Bağlantıları İçe Aktar",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Etiket",
"egress": "Çıkış",
"egressHint": "Çıkış IP adresini ve ülkeyi göstermek için bir HTTP testi gerçekleştirin.",
"outboundStatus": "Giden Bağlantı Durumu",
"sendThrough": "Üzerinden Gönder",
"targetStrategy": "Hedef Stratejisi",
"modeRealDelay": "Gerçek gecikme",
"testModeTooltip": "TCP: hızlı sadece arama (dial-only) testi. HTTP: Xray üzerinden tam istek. Gerçek gecikme: bağlantı kurulumu dahil toplam süre.",
"testAll": "Tümünü Test Et",
"httpStatus": "HTTP durumu",
"breakdownConnect": "Proxy bağlantısı",
"breakdownTls": "Giden üzerinden TLS",
"breakdownTtfb": "İlk bayt",
"country": "Ülke",
"server": "Sunucu",
"city": "Şehir",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ IP Kaydı Yok!"
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "Зберегти",
"restartSuccess": "Xray успішно перезапущено",
"stopSuccess": "Xray успішно зупинено",
"restartError": "Виникла помилка під час перезапуску Xray.",
"stopError": "Виникла помилка під час зупинки Xray.",
"basicTemplate": "Базовий шаблон",
"advancedTemplate": "Додатково",
"generalConfigs": "Загальні конфігурації",
@@ -1198,8 +1194,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Мілісекунди перед спробою іншої родини адрес. 150–250 мс — добра початкова точка.",
"RoutingStrategy": "Загальна стратегія маршрутизації",
"RoutingStrategyDesc": "Установити загальну стратегію маршрутизації трафіку для вирішення всіх запитів.",
"outboundTestUrl": "URL тесту outbound",
"outboundTestUrlDesc": "URL для перевірки з'єднання outbound",
"Torrent": "Блокувати протокол BitTorrent",
"Inbounds": "Вхідні",
"Outbounds": "Вихідні",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Тег",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Статус виходу",
"sendThrough": "Надіслати через",
"targetStrategy": "Стратегія призначення",
"modeRealDelay": "Реальна затримка",
"testModeTooltip": "TCP: швидкий dial-only probe. HTTP: повний запит через xray. Реальна затримка: повний час із встановленням з'єднання.",
"testAll": "Тестувати всі",
"httpStatus": "HTTP-статус",
"breakdownConnect": "Підключення до проксі",
"breakdownTls": "TLS через вихідний",
"breakdownTtfb": "Перший байт",
"country": "Країна",
"server": "Сервер",
"city": "Місто",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ Немає запису IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1180,10 +1180,6 @@
"metricsListenDesc": "Hiển thị các chỉ số kiểu Prometheus của Xray tại địa chỉ:cổng này (ví dụ 127.0.0.1:11111). Để trống để tắt. Hãy gắn vào localhost và reverse-proxy nó — vì nó không có xác thực.",
"metricsTag": "Metrics Tag",
"save": "Lưu cài đặt",
"restartSuccess": "Đã khởi động lại Xray thành công",
"stopSuccess": "Xray đã được dừng thành công",
"restartError": "Đã xảy ra lỗi khi khởi động lại Xray.",
"stopError": "Đã xảy ra lỗi khi dừng Xray.",
"basicTemplate": "Mẫu Cơ bản",
"advancedTemplate": "Mẫu Nâng cao",
"generalConfigs": "Cấu hình Chung",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "Số mili-giây trước khi thử họ địa chỉ còn lại. 150–250 ms là điểm khởi đầu tốt.",
"RoutingStrategy": "Cấu hình Chiến lược Định tuyến Tên miền",
"RoutingStrategyDesc": "Đặt chiến lược định tuyến tổng thể cho việc giải quyết DNS.",
"outboundTestUrl": "URL kiểm tra outbound",
"outboundTestUrlDesc": "URL dùng khi kiểm tra kết nối outbound",
"Torrent": "Cấu hình sử dụng BitTorrent",
"Inbounds": "Inbound",
"Outbounds": "Outbound",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "Tag",
"egress": "Egress",
"egressHint": "Run an HTTP test to show egress IP and country.",
"outboundStatus": "Trạng thái đầu ra",
"sendThrough": "Gửi qua",
"targetStrategy": "Chiến lược đích",
"modeRealDelay": "Độ trễ thực",
"testModeTooltip": "TCP: probe dial nhanh. HTTP: yêu cầu đầy đủ qua xray. Độ trễ thực: tổng thời gian gồm cả thiết lập kết nối.",
"testAll": "Kiểm tra tất cả",
"httpStatus": "Trạng thái HTTP",
"breakdownConnect": "Kết nối proxy",
"breakdownTls": "TLS qua outbound",
"breakdownTtfb": "Byte đầu tiên",
"country": "Quốc gia",
"server": "Máy chủ",
"city": "Thành phố",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ Không có bản ghi IP!"
},
"email": {}
}
}
+1 -16
View File
@@ -1180,10 +1180,6 @@
"metricsListenDesc": "在此 address:port 上暴露 Xray 的 Prometheus 风格指标(例如 127.0.0.1:11111)。留空则禁用。请绑定到本地回环并通过反向代理转发——它没有身份验证。",
"metricsTag": "指标标签",
"save": "保存",
"restartSuccess": "Xray 已成功重新启动",
"stopSuccess": "Xray 已成功停止",
"restartError": "重启 Xray 时发生错误。",
"stopError": "停止 Xray 时发生错误。",
"basicTemplate": "基础配置",
"advancedTemplate": "高级配置",
"generalConfigs": "常规配置",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "尝试备用地址族之前等待的毫秒数。150–250 毫秒是不错的起点。",
"RoutingStrategy": "配置路由域策略",
"RoutingStrategyDesc": "设置 DNS 解析的整体路由策略",
"outboundTestUrl": "出站测试 URL",
"outboundTestUrlDesc": "测试出站连接时使用的 URL",
"Torrent": "屏蔽 BitTorrent 协议",
"Inbounds": "入站",
"Outbounds": "出站",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "标签",
"egress": "出口",
"egressHint": "执行 HTTP 测试以显示出口 IP 和所在国家/地区。",
"outboundStatus": "出站状态",
"sendThrough": "发送通过",
"targetStrategy": "目标解析策略",
"modeRealDelay": "真实延迟",
"testModeTooltip": "TCP: 快速 dial-only 探测。HTTP: 通过 xray 的完整请求。真实延迟: 含建立连接的总耗时。",
"testAll": "全部测试",
"httpStatus": "HTTP 状态",
"breakdownConnect": "代理连接",
"breakdownTls": "经由出站的 TLS",
"breakdownTtfb": "首字节",
"country": "国家",
"server": "服务器",
"city": "城市",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ 没有 IP 记录!"
},
"email": {}
}
}
+1 -16
View File
@@ -1172,10 +1172,6 @@
},
"xray": {
"save": "儲存",
"restartSuccess": "Xray 已成功重新啟動",
"stopSuccess": "Xray 已成功停止",
"restartError": "重新啟動 Xray 時發生錯誤。",
"stopError": "停止 Xray 時發生錯誤。",
"importRules": "匯入規則",
"exportRules": "匯出規則",
"importOutbounds": "匯入出站",
@@ -1206,8 +1202,6 @@
"FreedomHappyEyeballsTryDelayDesc": "嘗試備用位址族之前等待的毫秒數。150–250 毫秒是不錯的起點。",
"RoutingStrategy": "配置路由域策略",
"RoutingStrategyDesc": "設定 DNS 解析的整體路由策略",
"outboundTestUrl": "出站測試 URL",
"outboundTestUrlDesc": "測試出站連線時使用的 URL",
"Torrent": "遮蔽 BitTorrent 協議",
"Inbounds": "入站",
"Outbounds": "出站",
@@ -1355,18 +1349,9 @@
},
"outbound": {
"tag": "標籤",
"egress": "出口",
"egressHint": "執行 HTTP 測試以顯示出口 IP 與所在國家/地區。",
"outboundStatus": "出站狀態",
"sendThrough": "傳送通過",
"targetStrategy": "目標解析策略",
"modeRealDelay": "真實延遲",
"testModeTooltip": "TCP: 快速 dial-only 探測。HTTP: 透過 xray 的完整請求。真實延遲: 含建立連線的總耗時。",
"testAll": "全部測試",
"httpStatus": "HTTP 狀態",
"breakdownConnect": "代理連線",
"breakdownTls": "經由出站的 TLS",
"breakdownTtfb": "首位元組",
"country": "國家",
"server": "伺服器",
"city": "城市",
@@ -1675,4 +1660,4 @@
"noIpRecord": "❗ 沒有 IP 記錄!"
},
"email": {}
}
}