diff --git a/src-tauri/src/core/sysopt.rs b/src-tauri/src/core/sysopt.rs index 342d930a..9f00c7b9 100644 --- a/src-tauri/src/core/sysopt.rs +++ b/src-tauri/src/core/sysopt.rs @@ -123,6 +123,12 @@ impl Sysopt { sysproxy.enable = enable; sysproxy.bypass = bypass.unwrap_or(DEFAULT_BYPASS.into()); + let port = Config::verge() + .latest() + .verge_mixed_port + .unwrap_or(Config::clash().data().get_mixed_port()); + sysproxy.port = port; + if registry_mode { #[cfg(windows)] sysproxy.set_system_proxy_with_registry()?; diff --git a/src-tauri/src/feat.rs b/src-tauri/src/feat.rs index bbadb7a9..774ff41e 100644 --- a/src-tauri/src/feat.rs +++ b/src-tauri/src/feat.rs @@ -225,6 +225,7 @@ pub async fn patch_verge(patch: IVerge) -> Result<()> { let system_proxy = patch.enable_system_proxy; let proxy_bypass = patch.system_proxy_bypass; let language = patch.language; + let port = patch.verge_mixed_port; match { #[cfg(target_os = "windows")] @@ -249,7 +250,7 @@ pub async fn patch_verge(patch: IVerge) -> Result<()> { if auto_launch.is_some() { sysopt::Sysopt::global().update_launch()?; } - if system_proxy.is_some() || proxy_bypass.is_some() { + if system_proxy.is_some() || proxy_bypass.is_some() || port.is_some() { sysopt::Sysopt::global().update_sysproxy()?; sysopt::Sysopt::global().guard_proxy(); }