Skip to content

Commit

Permalink
feature: Linux 也支持系统代理排除域名功能
Browse files Browse the repository at this point in the history
  • Loading branch information
wangliang181230 committed Oct 1, 2024
1 parent 0fff380 commit 463c3e4
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 48 deletions.
8 changes: 4 additions & 4 deletions packages/core/src/shell/scripts/set-system-proxy/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -269,8 +269,6 @@ const executor = {
// 延迟加载config
loadConfig()

// const local = 'localhost, 127.0.0.0/8, ::1'

// https
const setProxyCmd = [
'gsettings set org.gnome.system.proxy mode manual',
Expand All @@ -285,8 +283,10 @@ const executor = {
setProxyCmd.push("gsettings set org.gnome.system.proxy.http host ''")
setProxyCmd.push('gsettings set org.gnome.system.proxy.http port 0')
}
// ignore-hosts
// setProxyCmd.push(`gsettings set org.gnome.system.proxy ignore-hosts "${local}"`)

// 设置排除域名(ignore-hosts)
const excludeIpStr = getProxyExcludeIpStr("', '")
setProxyCmd.push(`gsettings set org.gnome.system.proxy ignore-hosts "['${excludeIpStr}']"`)

await exec(setProxyCmd)
} else { // 关闭代理
Expand Down
85 changes: 41 additions & 44 deletions packages/gui/src/view/pages/proxy.vue
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</div>
</a-form-item>

<!-- 以下功能仅windows支持,mac和linux暂不支持 -->
<!-- 以下两个功能仅windows支持,mac和linux暂不支持 -->
<a-form-item v-if="isWindows()" label="设置环境变量" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.proxy.setEnv" >
是否同时修改<code>HTTPS_PROXY</code>环境变量(不好用,不建议勾选)
Expand All @@ -46,49 +46,46 @@
<div class="form-help">解决<code>OneNote</code>、<code>MicrosoftStore</code>、<code>Outlook</code>等<code>UWP应用</code>开启代理后无法访问网络的问题</div>
</a-form-item>

<!-- 以下功能仅windows和macos支持,linux暂不支持 -->
<div v-if="isWindows() || isMac()">
<hr/>
<a-form-item label="排除国内域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.proxy.excludeDomesticDomainAllowList" >
是否排除国内域名白名单
</a-checkbox>
</a-form-item>
<a-form-item label="自动更新国内域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.proxy.autoUpdateDomesticDomainAllowList" >
是否自动更新国内域名白名单
</a-checkbox>
<div class="form-help">
开启自动更新并启动系统代理时,将会异步从下面的远程地址下载国内域名白名单文件到本地。<br/>
注:只要下载成功后,即使关闭自动更新功能,也会优先读取最近下载的文件!
</div>
</a-form-item>
<a-form-item label="远程国内域名地址" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input v-model="config.proxy.remoteDomesticDomainAllowListFileUrl" :title="config.proxy.remoteDomesticDomainAllowListFileUrl"></a-input>
<div class="form-help">
远程国内域名白名单文件内容可以是<code>base64</code>编码格式,也可以是未经过编码的
</div>
</a-form-item>
<hr/>
<a-form-item label="自定义排除域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="10">
<a-col :span="22">
<span>访问的域名或IP符合下列配置时,将跳过系统代理</span>
</a-col>
<a-col :span="2">
<a-button type="primary" icon="plus" @click="addExcludeIp()"/>
</a-col>
</a-row>
<a-row :gutter="10" v-for="(item,index) of excludeIpList" :key='index'>
<a-col :span="22">
<a-input :disabled="item.value === false" v-model="item.key"></a-input>
</a-col>
<a-col :span="2">
<a-button type="danger" icon="minus" @click="delExcludeIp(item,index)"/>
</a-col>
</a-row>
</a-form-item>
</div>
<hr/>
<a-form-item label="排除国内域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.proxy.excludeDomesticDomainAllowList" >
是否排除国内域名白名单
</a-checkbox>
</a-form-item>
<a-form-item label="自动更新国内域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-checkbox v-model="config.proxy.autoUpdateDomesticDomainAllowList" >
是否自动更新国内域名白名单
</a-checkbox>
<div class="form-help">
开启自动更新并启动系统代理时,将会异步从下面的远程地址下载国内域名白名单文件到本地。<br/>
注:只要下载成功后,即使关闭自动更新功能,也会优先读取最近下载的文件!
</div>
</a-form-item>
<a-form-item label="远程国内域名地址" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input v-model="config.proxy.remoteDomesticDomainAllowListFileUrl" :title="config.proxy.remoteDomesticDomainAllowListFileUrl"></a-input>
<div class="form-help">
远程国内域名白名单文件内容可以是<code>base64</code>编码格式,也可以是未经过编码的
</div>
</a-form-item>
<hr/>
<a-form-item label="自定义排除域名" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="10">
<a-col :span="22">
<span>访问的域名或IP符合下列配置时,将跳过系统代理</span>
</a-col>
<a-col :span="2">
<a-button type="primary" icon="plus" @click="addExcludeIp()"/>
</a-col>
</a-row>
<a-row :gutter="10" v-for="(item,index) of excludeIpList" :key='index'>
<a-col :span="22">
<a-input :disabled="item.value === false" v-model="item.key"></a-input>
</a-col>
<a-col :span="2">
<a-button type="danger" icon="minus" @click="delExcludeIp(item,index)"/>
</a-col>
</a-row>
</a-form-item>
</div>
<template slot="footer">
<div class="footer-bar">
Expand Down

0 comments on commit 463c3e4

Please sign in to comment.