diff --git a/src/main/ipc.ts b/src/main/ipc.ts
index e4db5ec210..e337d0d247 100644
--- a/src/main/ipc.ts
+++ b/src/main/ipc.ts
@@ -94,17 +94,14 @@ export function registerIpc(mainWindow: BrowserWindow, app: Electron.App) {
let proxyConfig: ProxyConfig
if (proxy === 'system') {
+ // system proxy will use the system filter by themselves
proxyConfig = { mode: 'system' }
} else if (proxy) {
- proxyConfig = { mode: 'fixed_servers', proxyRules: proxy }
+ proxyConfig = { mode: 'fixed_servers', proxyRules: proxy, proxyBypassRules: bypassRules }
} else {
proxyConfig = { mode: 'direct' }
}
- if (bypassRules) {
- proxyConfig.proxyBypassRules = bypassRules
- }
-
await proxyManager.configureProxy(proxyConfig)
})
diff --git a/src/main/services/ProxyManager.ts b/src/main/services/ProxyManager.ts
index 48b6da6fa7..620a6a5fef 100644
--- a/src/main/services/ProxyManager.ts
+++ b/src/main/services/ProxyManager.ts
@@ -1,5 +1,4 @@
import { loggerService } from '@logger'
-import { defaultByPassRules } from '@shared/config/constant'
import axios from 'axios'
import { app, ProxyConfig, session } from 'electron'
import { socksDispatcher } from 'fetch-socks'
@@ -10,9 +9,13 @@ import { ProxyAgent } from 'proxy-agent'
import { Dispatcher, EnvHttpProxyAgent, getGlobalDispatcher, setGlobalDispatcher } from 'undici'
const logger = loggerService.withContext('ProxyManager')
-let byPassRules = defaultByPassRules.split(',')
+let byPassRules: string[] = []
const isByPass = (hostname: string) => {
+ if (byPassRules.length === 0) {
+ return false
+ }
+
return byPassRules.includes(hostname)
}
@@ -98,7 +101,7 @@ export class ProxyManager {
await this.configureProxy({
mode: 'system',
proxyRules: currentProxy?.proxyUrl.toLowerCase(),
- proxyBypassRules: this.config.proxyBypassRules
+ proxyBypassRules: undefined
})
}, 1000 * 60)
}
@@ -131,7 +134,7 @@ export class ProxyManager {
this.monitorSystemProxy()
}
- byPassRules = config.proxyBypassRules?.split(',') || defaultByPassRules.split(',')
+ byPassRules = config.proxyBypassRules?.split(',') || []
this.setGlobalProxy(this.config)
} catch (error) {
logger.error('Failed to config proxy:', error as Error)
diff --git a/src/renderer/src/pages/settings/GeneralSettings.tsx b/src/renderer/src/pages/settings/GeneralSettings.tsx
index 9f1f82f56c..7437c9c714 100644
--- a/src/renderer/src/pages/settings/GeneralSettings.tsx
+++ b/src/renderer/src/pages/settings/GeneralSettings.tsx
@@ -229,7 +229,7 @@ const GeneralSettings: FC = () => {
>
)}
- {(storeProxyMode === 'custom' || storeProxyMode === 'system') && (
+ {storeProxyMode === 'custom' && (
<>