From 448fd07e2dee1f7bdb9b23b8e7d3aece6ac16830 Mon Sep 17 00:00:00 2001 From: starknt <1431880400@qq.com> Date: Tue, 26 Nov 2024 23:55:15 +0800 Subject: [PATCH] fix: system proxy setting --- packages/core/package.json | 2 +- .../shell/scripts/set-system-proxy/index.js | 14 +++- packages/gui/package.json | 2 +- packages/gui/vue.config.js | 16 ++-- pnpm-lock.yaml | 81 +++++++++++++++++-- 5 files changed, 95 insertions(+), 20 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index a6b91d2..4eade37 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -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", diff --git a/packages/core/src/shell/scripts/set-system-proxy/index.js b/packages/core/src/shell/scripts/set-system-proxy/index.js index 4137eee..91df57c 100644 --- a/packages/core/src/shell/scripts/set-system-proxy/index.js +++ b/packages/core/src/shell/scripts/set-system-proxy/index.js @@ -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) { // 设置全局代理所需的环境变量 diff --git a/packages/gui/package.json b/packages/gui/package.json index a47595d..778d3de 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -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", diff --git a/packages/gui/vue.config.js b/packages/gui/vue.config.js index c7a7703..d339af5 100644 --- a/packages/gui/vue.config.js +++ b/packages/gui/vue.config.js @@ -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', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3353b99..eb97944 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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)