fix: system proxy setting

pull/401/head
starknt 2024-11-26 23:55:15 +08:00
parent 65737525e1
commit 448fd07e2d
5 changed files with 95 additions and 20 deletions

View File

@ -16,7 +16,7 @@
"test": "mocha"
},
"dependencies": {
"@mihomo-party/sysproxy": "^2.0.4",
"@starknt/sysproxy": "^0.0.1",
"@vscode/sudo-prompt": "^9.3.1",
"fix-path": "^3.0.0",
"iconv-lite": "^0.6.3",

View File

@ -182,17 +182,25 @@ function getProxyExcludeIpStr (split) {
const executor = {
async windows (exec, params = {}) {
const sysproxy = require('@mihomo-party/sysproxy')
const sysproxy = require('@starknt/sysproxy')
const { ip, port, setEnv } = params
if (ip != null) { // 设置代理
// 延迟加载config
loadConfig()
log.info('设置windows系统代理:', ip, port, setEnv)
// https
let proxyAddr = `https=http://${ip}:${port}`
// http
if (config.get().proxy.proxyHttp) {
proxyAddr = `http=http://${ip}:${port - 1};${proxyAddr}`
}
// 读取排除域名
const excludeIpStr = getProxyExcludeIpStr(';')
sysproxy.triggerManualProxy(true, ip, port, excludeIpStr)
// 设置代理,同时设置排除域名
sysproxy.triggerManualProxyByUrl(true, proxyAddr, excludeIpStr)
if (setEnv) {
// 设置全局代理所需的环境变量

View File

@ -22,8 +22,8 @@
"dependencies": {
"@docmirror/dev-sidecar": "workspace:*",
"@docmirror/mitmproxy": "workspace:*",
"@mihomo-party/sysproxy": "^2.0.4",
"@natmri/platform-napi": "^0.0.7",
"@starknt/sysproxy": "^0.0.1",
"@vscode/sudo-prompt": "^9.3.1",
"adm-zip": "^0.5.16",
"ant-design-vue": "^1.7.8",

View File

@ -37,14 +37,14 @@ module.exports = defineConfig({
// Ref: https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/1891
customFileProtocol: './',
externals: [
'@mihomo-party/sysproxy',
'@mihomo-party/sysproxy-win32-ia32-msvc',
'@mihomo-party/sysproxy-win32-x64-msvc',
'@mihomo-party/sysproxy-win32-arm64-msvc',
'@mihomo-party/sysproxy-linux-x64-gnu',
'@mihomo-party/sysproxy-linux-arm64-gnu',
'@mihomo-party/sysproxy-darwin-x64',
'@mihomo-party/sysproxy-darwin-arm64',
'@starknt/sysproxy',
'@starknt/sysproxy-win32-ia32-msvc',
'@starknt/sysproxy-win32-x64-msvc',
'@starknt/sysproxy-win32-arm64-msvc',
'@starknt/sysproxy-linux-x64-gnu',
'@starknt/sysproxy-linux-arm64-gnu',
'@starknt/sysproxy-darwin-x64',
'@starknt/sysproxy-darwin-arm64',
'@natmri/platform-napi',
'@natmri/platform-napi-win32-ia32-msvc',
'@natmri/platform-napi-win32-x64-msvc',

View File

@ -29,9 +29,9 @@ importers:
packages/core:
dependencies:
'@mihomo-party/sysproxy':
specifier: ^2.0.4
version: 2.0.4
'@starknt/sysproxy':
specifier: ^0.0.1
version: 0.0.1
'@vscode/sudo-prompt':
specifier: ^9.3.1
version: 9.3.1
@ -72,12 +72,12 @@ importers:
'@docmirror/mitmproxy':
specifier: workspace:*
version: link:../mitmproxy
'@mihomo-party/sysproxy':
specifier: ^2.0.4
version: 2.0.4
'@natmri/platform-napi':
specifier: ^0.0.7
version: 0.0.7
'@starknt/sysproxy':
specifier: ^0.0.1
version: 0.0.1
'@vscode/sudo-prompt':
specifier: ^9.3.1
version: 9.3.1
@ -262,7 +262,7 @@ importers:
specifier: ^19.1.9
version: 19.1.9
electron-builder:
specifier: ^25.0.6
specifier: ^25.1.8
version: 25.1.8(electron-builder-squirrel-windows@25.1.8(dmg-builder@25.1.8))
electron-icon-builder:
specifier: ^2.0.1
@ -1537,6 +1537,46 @@ packages:
'@soda/get-current-script@1.0.2':
resolution: {integrity: sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==}
'@starknt/sysproxy-darwin-arm64@0.0.1':
resolution: {integrity: sha512-8o8QP888Wpe+vwfz6vbWRpO8bLcEzXAuA8j9PE6h27CmAty/P4/9zgaTXq18lBcVNGDpPdriDYcbOYN+26Q8dw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@starknt/sysproxy-linux-arm64-gnu@0.0.1':
resolution: {integrity: sha512-dfoga7fITnYbgurCfheWKAhru9/kEf4MMmjkHjVRUgbsp517Smulj6BC01f4xphsAbZsBaSPyln4Q8rjhb64lQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@starknt/sysproxy-linux-x64-gnu@0.0.1':
resolution: {integrity: sha512-v6lJeOpGPfVGp52H0fmirlgM1OWgSJ7xJatakiw3Vh9J07F9137Jb3RaL0CYCXup4JYA7H0MtCgGN0uzxAVz8w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@starknt/sysproxy-win32-arm64-msvc@0.0.1':
resolution: {integrity: sha512-MSP07YYX2ETwZ0UryD2zMp/UiDFLvOqFKHBY2u8C5KRXSw/HQhnVqK79BzOhlvD76u15RNIrqXOUiRSibQaD3A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@starknt/sysproxy-win32-ia32-msvc@0.0.1':
resolution: {integrity: sha512-Yo9LpUX51MVujEXi7X1lboa2g8jw/YmhuTTE6tAbBIXOm/7Yg4LlaU1JjS1LmalMr7I/3osb7btAyt//tUfJ7Q==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
'@starknt/sysproxy-win32-x64-msvc@0.0.1':
resolution: {integrity: sha512-gjpSEpiq9S1KPdGbY02AA4nlWeH/HyfxMJaqjy7xXEBskb0Vb3teCtke+FH9olErnvOdkKcyT4Dp5UK1dMDv/Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@starknt/sysproxy@0.0.1':
resolution: {integrity: sha512-oOGGSs/wRZXbIlK4wokD3fGK5f7QRfY49XbZEhsBUx5ClNG0JrJVB/mGaJ1y7rVZuTh6pWMj5g19atZE1z1oYQ==}
engines: {node: '>= 10'}
'@stylistic/eslint-plugin@2.10.1':
resolution: {integrity: sha512-U+4yzNXElTf9q0kEfnloI9XbOyD4cnEQCxjUI94q0+W++0GAEQvJ/slwEj9lwjDHfGADRSr+Tco/z0XJvmDfCQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -8654,6 +8694,33 @@ snapshots:
'@soda/get-current-script@1.0.2': {}
'@starknt/sysproxy-darwin-arm64@0.0.1':
optional: true
'@starknt/sysproxy-linux-arm64-gnu@0.0.1':
optional: true
'@starknt/sysproxy-linux-x64-gnu@0.0.1':
optional: true
'@starknt/sysproxy-win32-arm64-msvc@0.0.1':
optional: true
'@starknt/sysproxy-win32-ia32-msvc@0.0.1':
optional: true
'@starknt/sysproxy-win32-x64-msvc@0.0.1':
optional: true
'@starknt/sysproxy@0.0.1':
optionalDependencies:
'@starknt/sysproxy-darwin-arm64': 0.0.1
'@starknt/sysproxy-linux-arm64-gnu': 0.0.1
'@starknt/sysproxy-linux-x64-gnu': 0.0.1
'@starknt/sysproxy-win32-arm64-msvc': 0.0.1
'@starknt/sysproxy-win32-ia32-msvc': 0.0.1
'@starknt/sysproxy-win32-x64-msvc': 0.0.1
'@stylistic/eslint-plugin@2.10.1(eslint@9.15.0)(typescript@5.6.3)':
dependencies:
'@typescript-eslint/utils': 8.14.0(eslint@9.15.0)(typescript@5.6.3)