fix(macos): prioritize network interfaces for reliable proxy setup

This commit is contained in:
Tunglies 2026-01-30 08:53:42 +08:00
parent 9a0703676b
commit 63a77b1c7d
No known key found for this signature in database
GPG Key ID: B9B01B389469B3E8
3 changed files with 7 additions and 95 deletions

96
Cargo.lock generated
View File

@ -2386,7 +2386,7 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
dependencies = [ dependencies = [
"memoffset 0.9.1", "memoffset",
"rustc_version 0.4.1", "rustc_version 0.4.1",
] ]
@ -3102,20 +3102,6 @@ dependencies = [
"zerocopy", "zerocopy",
] ]
[[package]]
name = "handlebars"
version = "3.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3"
dependencies = [
"log",
"pest",
"pest_derive",
"quick-error",
"serde",
"serde_json",
]
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.12.3" version = "0.12.3"
@ -3677,22 +3663,6 @@ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]]
name = "interfaces"
version = "0.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb6250a98af259a26fd5a4a6081fccea9ac116e4c3178acf4aeb86d32d2b7715"
dependencies = [
"bitflags 2.10.0",
"cc",
"handlebars",
"lazy_static",
"libc",
"nix",
"serde",
"serde_derive",
]
[[package]] [[package]]
name = "interprocess" name = "interprocess"
version = "2.2.3" version = "2.2.3"
@ -3714,7 +3684,7 @@ version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86" checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86"
dependencies = [ dependencies = [
"memoffset 0.9.1", "memoffset",
] ]
[[package]] [[package]]
@ -4211,15 +4181,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]
[[package]] [[package]]
name = "memoffset" name = "memoffset"
version = "0.9.1" version = "0.9.1"
@ -4412,19 +4373,6 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
[[package]]
name = "nix"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset 0.7.1",
"pin-utils",
]
[[package]] [[package]]
name = "nodrop" name = "nodrop"
version = "0.1.14" version = "0.1.14"
@ -5046,39 +4994,6 @@ dependencies = [
"ucd-trie", "ucd-trie",
] ]
[[package]]
name = "pest_derive"
version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68f9dbced329c441fa79d80472764b1a2c7e57123553b8519b36663a2fb234ed"
dependencies = [
"pest",
"pest_generator",
]
[[package]]
name = "pest_generator"
version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bb96d5051a78f44f43c8f712d8e810adb0ebf923fc9ed2655a7f66f63ba8ee5"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.114",
]
[[package]]
name = "pest_meta"
version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "602113b5b5e8621770cfd490cfd90b9f84ab29bd2b0e49ad83eb6d186cef2365"
dependencies = [
"pest",
"sha2 0.10.9",
]
[[package]] [[package]]
name = "petgraph" name = "petgraph"
version = "0.8.3" version = "0.8.3"
@ -7265,10 +7180,9 @@ dependencies = [
[[package]] [[package]]
name = "sysproxy" name = "sysproxy"
version = "0.4.3" version = "0.4.4"
source = "git+https://github.com/clash-verge-rev/sysproxy-rs?branch=0.4.3#9f1258ceee11604bdef92937151f36e776bf83c8" source = "git+https://github.com/clash-verge-rev/sysproxy-rs?branch=0.4.4#bbc5f834415ce376119515581008447098084f74"
dependencies = [ dependencies = [
"interfaces",
"iptools", "iptools",
"log", "log",
"thiserror 2.0.18", "thiserror 2.0.18",
@ -8752,7 +8666,7 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
dependencies = [ dependencies = [
"memoffset 0.9.1", "memoffset",
"tempfile", "tempfile",
"winapi", "winapi",
] ]

View File

@ -6,6 +6,7 @@
- 修复无网络时无限请求 IP 归属查询 - 修复无网络时无限请求 IP 归属查询
- 修复 WebDAV 页面重试逻辑 - 修复 WebDAV 页面重试逻辑
- 修复 Linux 通过 GUI 安装服务模式权限不符合预期 - 修复 Linux 通过 GUI 安装服务模式权限不符合预期
- 修复 macOS 因网口顺序导致无法正确设置代理
<details> <details>
<summary><strong> ✨ 新增功能 </strong></summary> <summary><strong> ✨ 新增功能 </strong></summary>
@ -18,7 +19,4 @@
<details> <details>
<summary><strong> 🚀 优化改进 </strong></summary> <summary><strong> 🚀 优化改进 </strong></summary>
- 后端性能优化
- 前端性能优化
</details> </details>

View File

@ -71,7 +71,7 @@ reqwest = { version = "0.13.1", features = [
"form", "form",
] } ] }
regex = "1.12.2" regex = "1.12.2"
sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs", branch = "0.4.3", features = [ sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs", branch = "0.4.4", features = [
"guard", "guard",
] } ] }
network-interface = { version = "2.0.5", features = ["serde"] } network-interface = { version = "2.0.5", features = ["serde"] }