From 76de3c6422b3b0d5448da5826277a93190fd0b19 Mon Sep 17 00:00:00 2001 From: ospab Date: Sat, 13 Jun 2026 01:57:20 +0300 Subject: [PATCH] Remove Reality/XTLS UI from ostp-gui, ostp-flutter, ostp-control --- ostp-control/src/lib/i18n.ts | 20 -------------------- ostp-flutter/lib/ui/home_screen.dart | 17 ----------------- ostp-flutter/lib/ui/settings_screen.dart | 6 ------ ostp-gui/src/i18n.js | 6 ++---- ostp-gui/src/index.html | 7 ------- ostp-gui/src/main.js | 24 ++---------------------- 6 files changed, 4 insertions(+), 76 deletions(-) diff --git a/ostp-control/src/lib/i18n.ts b/ostp-control/src/lib/i18n.ts index 8e5c73a..a83310a 100644 --- a/ostp-control/src/lib/i18n.ts +++ b/ostp-control/src/lib/i18n.ts @@ -40,8 +40,6 @@ export const translations = { db_core_version: 'Версия ядра', db_listen_addr: 'Порт прослушивания', db_api_bind: 'Адрес API', - db_reality_status: 'Статус Reality', - db_reality_dest: 'Домен маскировки', db_outbound_proxy: 'Исходящий прокси', db_fallback_status: 'TCP Fallback', db_fallback_target: 'Сервер Fallback', @@ -119,11 +117,7 @@ export const translations = { st_ui_fb_enable: 'Перенаправлять неопознанный TCP трафик на веб-сервер', st_ui_fb_port: 'Входной TCP-порт (listen)', st_ui_fb_target: 'Целевой веб-сервер (target)', - st_ui_rl_title: 'Параметры маскировки Reality (XTLS)', - st_ui_rl_enable: 'Активировать обфускацию Reality', st_ui_rl_dest: 'Маскировочный домен-назначение (dest)', - st_ui_rl_pri: 'Приватный ключ Reality (X25519)', - st_ui_rl_pub: 'Публичный ключ Reality (pbk)', st_ui_rl_sid: 'Короткий SID сессии (8 байт hex)', st_ui_rl_sni: 'Список SNI доменов (через запятую)', st_ui_ob_title: 'Исходящий трафик (Outbound Routing)', @@ -136,14 +130,10 @@ export const translations = { st_ui_ob_action_proxy: 'Через прокси (proxy)', tl_title: 'Инструменты', - tl_subtitle: 'Генератор ключей Reality, резервное копирование и диагностика', - tl_keygen_title: 'Генератор ключей Reality (X25519)', - tl_keygen_desc: 'Для маскировки Reality требуется пара ключей X25519. Сгенерируйте их здесь или выполните команду `ostp --generate-key` на сервере.', tl_keygen_btn: 'Сгенерировать ключи', tl_keygen_pub: 'Публичный ключ (pbk)', tl_keygen_pri: 'Приватный ключ (private_key)', tl_keygen_sid: 'Предлагаемый SID сессии (sid)', - tl_keygen_copy: 'Копировать и применить в Reality', tl_keygen_applied: 'Ключи сгенерированы! Скопируйте их и вставьте во вкладку Настроек.', tl_backup_title: 'Резервное копирование', tl_backup_desc: 'Экспортируйте текущую конфигурацию сервера в файл или восстановите настройки из файла бэкапа.', @@ -234,8 +224,6 @@ export const translations = { db_core_version: 'Core Version', db_listen_addr: 'Listen Port', db_api_bind: 'API Address', - db_reality_status: 'Reality Obfuscation', - db_reality_dest: 'Masquerade Destination', db_outbound_proxy: 'Outbound Proxy', db_fallback_status: 'TCP Fallback', db_fallback_target: 'Fallback Target', @@ -313,11 +301,7 @@ export const translations = { st_ui_fb_enable: 'Forward unrecognized TCP traffic to web server', st_ui_fb_port: 'Input TCP port (listen)', st_ui_fb_target: 'Target web server (target)', - st_ui_rl_title: 'Reality Obfuscation Parameters (XTLS)', - st_ui_rl_enable: 'Activate Reality obfuscation', st_ui_rl_dest: 'Masquerade domain destination (dest)', - st_ui_rl_pri: 'Reality private key (X25519)', - st_ui_rl_pub: 'Reality public key (pbk)', st_ui_rl_sid: 'Short session SID (8 bytes hex)', st_ui_rl_sni: 'SNI domains list (comma separated)', st_ui_ob_title: 'Outbound Routing', @@ -330,14 +314,10 @@ export const translations = { st_ui_ob_action_proxy: 'Proxy (proxy)', tl_title: 'Tools', - tl_subtitle: 'Reality key generation, config backups, and diagnostics', - tl_keygen_title: 'Reality X25519 Keypair Generator', - tl_keygen_desc: 'Reality masquerade requires an X25519 keypair. Generate it here or run `ostp --generate-key` on the server.', tl_keygen_btn: 'Generate Keypair', tl_keygen_pub: 'Public Key (pbk)', tl_keygen_pri: 'Private Key (private_key)', tl_keygen_sid: 'Suggested Session SID (sid)', - tl_keygen_copy: 'Copy and Apply to Reality Config', tl_keygen_applied: 'Keypair generated! Copy and paste them into Settings tab.', tl_backup_title: 'Configuration Backups', tl_backup_desc: 'Export current server configuration to a file, or restore it by uploading a backup file.', diff --git a/ostp-flutter/lib/ui/home_screen.dart b/ostp-flutter/lib/ui/home_screen.dart index 273fd0a..67c02d6 100644 --- a/ostp-flutter/lib/ui/home_screen.dart +++ b/ostp-flutter/lib/ui/home_screen.dart @@ -119,14 +119,6 @@ class _HomeScreenState extends State with TickerProviderStateMixin { "enabled": muxEnabled, "sessions": int.tryParse(muxSessions) ?? 2, }, - "reality": { - "enabled": widget.prefs.getBool('reality_enabled') ?? false, - "dest": "", - "private_key": "", - "pbk": widget.prefs.getString('pbk') ?? "", - "sid": widget.prefs.getString('sid') ?? "", - "sni_list": [] - }, "tun": { "enable": true, "stack": tunStack @@ -215,14 +207,6 @@ class _HomeScreenState extends State with TickerProviderStateMixin { "enabled": muxEnabled, "sessions": int.tryParse(muxSessions) ?? 2, }, - "reality": { - "enabled": widget.prefs.getBool('reality_enabled') ?? false, - "dest": "", - "private_key": "", - "pbk": widget.prefs.getString('pbk') ?? "", - "sid": widget.prefs.getString('sid') ?? "", - "sni_list": [] - }, "tun": { "enable": true, "stack": tunStack @@ -336,7 +320,6 @@ class _HomeScreenState extends State with TickerProviderStateMixin { await widget.prefs.setString('mtu', mtu.toString()); await widget.prefs.setString('transport_mode', mode['t'] as String); await widget.prefs.setBool('wss', mode['w'] as bool); - await widget.prefs.setBool('reality_enabled', mode['r'] as bool); _updateLatestConfigJson(); setState(() { diff --git a/ostp-flutter/lib/ui/settings_screen.dart b/ostp-flutter/lib/ui/settings_screen.dart index 1593d02..4393f1f 100644 --- a/ostp-flutter/lib/ui/settings_screen.dart +++ b/ostp-flutter/lib/ui/settings_screen.dart @@ -35,7 +35,6 @@ class _SettingsScreenState extends State { bool _obscureKey = true; bool _debugMode = false; bool _wss = false; - bool _realityEnabled = false; String _transportMode = 'udp'; // 'udp' | 'uot' String _tunStack = 'ostp'; // 'system' | 'ostp' bool _muxEnabled = false; @@ -58,7 +57,6 @@ class _SettingsScreenState extends State { _pbkCtrl = TextEditingController(text: widget.prefs.getString('pbk') ?? ''); _sidCtrl = TextEditingController(text: widget.prefs.getString('sid') ?? ''); _wss = widget.prefs.getBool('wss') ?? false; - _realityEnabled = widget.prefs.getBool('reality_enabled') ?? false; _transportMode = widget.prefs.getString('transport_mode') ?? 'udp'; _tunStack = widget.prefs.getString('tun_stack') ?? 'ostp'; _debugMode = widget.prefs.getBool('debug_mode') ?? false; @@ -96,7 +94,6 @@ class _SettingsScreenState extends State { widget.prefs.setString('ex_processes', _processesCtrl.text.trim()); widget.prefs.setBool('debug_mode', _debugMode); widget.prefs.setBool('wss', _wss); - widget.prefs.setBool('reality_enabled', _realityEnabled); widget.prefs.setString('transport_mode', _transportMode); widget.prefs.setString('tun_stack', _tunStack); widget.prefs.setString('stealth_sni', _stealthSniCtrl.text.trim()); @@ -234,7 +231,6 @@ class _SettingsScreenState extends State { _pbkCtrl.text = uri.queryParameters['pbk'] ?? ''; _sidCtrl.text = uri.queryParameters['sid'] ?? ''; _wss = uri.queryParameters['wss'] == 'true'; - _realityEnabled = uri.queryParameters['reality'] == 'true'; final type = uri.queryParameters['type'] ?? 'udp'; _transportMode = type == 'tcp' || type == 'http' ? 'uot' : 'udp'; _importCtrl.clear(); @@ -400,8 +396,6 @@ class _SettingsScreenState extends State { }); }), const SizedBox(height: 16), - _buildTextField('Reality PublicKey (pbk)', _pbkCtrl, hint: 'Публичный ключ сервера'), - _buildTextField('Reality ShortId (sid)', _sidCtrl, hint: 'Опционально (необязательно)'), ], ), ), diff --git a/ostp-gui/src/i18n.js b/ostp-gui/src/i18n.js index 7b5bb2c..63653e4 100644 --- a/ostp-gui/src/i18n.js +++ b/ostp-gui/src/i18n.js @@ -31,8 +31,7 @@ const translations = { label_mtu: 'MTU Size', label_transport: 'Transport Protocol', label_sni: 'Stealth SNI (Fake Host)', - label_pbk: 'Reality PublicKey (pbk)', - label_sid: 'Reality ShortId (sid)', + label_mtu: 'MTU Size', label_mux: 'Multiplexing (Mux)', mux_hint: 'Run multiple streams over one connection', @@ -92,8 +91,7 @@ const translations = { label_mtu: 'Размер MTU', label_transport: 'Транспортный протокол', label_sni: 'Маскировочный SNI', - label_pbk: 'Reality PublicKey (pbk)', - label_sid: 'Reality ShortId (sid)', + label_mtu: 'Размер MTU', label_mux: 'Мультиплексирование (Mux)', mux_hint: 'Несколько потоков через одно соединение', diff --git a/ostp-gui/src/index.html b/ostp-gui/src/index.html index 67efd77..b226725 100644 --- a/ostp-gui/src/index.html +++ b/ostp-gui/src/index.html @@ -220,13 +220,6 @@
- - -
- -
- -
diff --git a/ostp-gui/src/main.js b/ostp-gui/src/main.js index 613b957..f3ddbc8 100644 --- a/ostp-gui/src/main.js +++ b/ostp-gui/src/main.js @@ -284,8 +284,7 @@ async function loadConfigIntoForm() { inTransport.value = c.transport?.mode || 'udp'; inSni.value = c.transport?.stealth_sni || ''; inWss.checked = !!c.transport?.wss; - inPbk.value = c.reality?.pbk || ''; - inSid.value = c.reality?.sid || ''; + inMtu.value = c.mtu || ''; inTun.checked = !!c.tun?.enable; if (inKillSwitch) inKillSwitch.checked = !!c.tun?.kill_switch; @@ -347,20 +346,6 @@ async function handleSave(silent = false) { rawConfig.transport.stealth_sni = inSni.value.trim() || undefined; rawConfig.transport.wss = inWss.checked; - const pbk = inPbk.value.trim(); - if (pbk) { - rawConfig.reality = { - enabled: true, - dest: '', - private_key: '', - pbk: pbk, - sid: inSid.value.trim(), - sni_list: [] - }; - } else { - delete rawConfig.reality; - } - const mtuStr = inMtu.value.trim(); if (mtuStr) rawConfig.mtu = parseInt(mtuStr, 10); else delete rawConfig.mtu; @@ -508,12 +493,7 @@ window.addEventListener('DOMContentLoaded', async () => { rawConfig.transport.mode = mode.t; rawConfig.transport.wss = mode.w; - if (mode.r) { - rawConfig.reality = rawConfig.reality || {}; - rawConfig.reality.enabled = true; - } else if (rawConfig.reality) { - rawConfig.reality.enabled = false; - } + await invoke('save_config', { jsonContent: JSON.stringify(rawConfig, null, 2) });