Browse Source

refactor: 默认关闭ow

pull/67/head
xiaojunnuo 4 years ago
parent
commit
dad33bc86d
  1. 26
      README.md
  2. BIN
      doc/speed.png
  3. 19
      packages/core/src/config/index.js
  4. 2
      packages/gui/package.json
  5. 2
      packages/gui/src/view/components/setup-ca.vue
  6. 29
      packages/gui/src/view/pages/index.vue
  7. 2
      packages/gui/src/view/pages/server.vue
  8. 27
      packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js

26
README.md

@ -38,13 +38,12 @@
* 某些npm install的时候,并且使用cnpm也无法安装时,可以尝试开启npm代理再试
### 6、 增强功能
* 众所周知的原因,不能在这里展示太多,自己下载来安装看看吧
* 众所周知的原因,不能说太多,怕被查水表,默认关闭,感兴趣的可以私下交流
* 反正开了这个之后,上面那些dns优选什么的特性好像都不香了
* 建议遇到打不开的网站,可以将域名添加到增强功能自定义域名配置中(注意:是不是似曾相识? (●゚ω゚●)没有注意~~)
***安全警告***:
* 请勿使用来源不明的服务地址,有隐私和账号泄露风险
* 本应用内置服务端承诺不收集任何信息。介意者请慎用
* 本应用及服务端承诺不收集任何信息。介意者请使用安全模式
* 建议自建服务端(增强功能页面右上角点击查看自建服务端方法)
## 快速开始
@ -92,9 +91,30 @@
|zip 下载 |![](./doc/download-before.png) |![](./doc/download.png)秒下的,实在截不到速度的图 |
## 模式说明(v1.5.0 准备发布)
### 安全模式
* 此模式:关闭拦截、关闭增强、开启dns优选、开启测速
* 最安全,无需安装证书,可以在浏览器地址栏左侧查看域名证书
* 功能也最弱,只有特性1,相当于查询github的国外ip,手动改hosts一个意思。
* github的可访问性不稳定,取决于IP测速,如果有绿色ip存在,那就**有可能**可以直连访问。
![](./doc/speed.png)
### 默认模式
* 此模式:开启拦截、关闭增强、开启dns优选、开启测速
* 需要安装证书
* 功能上包含特性1/2/3/4。
### 增强模式
* 此模式:开启拦截、开启增强、开启dns优选、关闭测速
* 需要安装证书
* 功能上包含特性1/2/3/4/5
* 由于敏感原因,默认关闭,感兴趣的可以私下交流
## 最佳实践
把dev-sidecar一直开着就行了
建议遇到打开比较慢的国外网站,可以优先尝试将该域名添加到dns设置中(注意:被GFW封杀的无效)
也可以将域名添加到增强功能的自定义域名配置中,言尽于此。

BIN
doc/speed.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

19
packages/core/src/config/index.js

@ -53,14 +53,13 @@ module.exports = {
'github'
],
desc: 'clone加速复制链接脚本'
},
'/.*': {
proxy: 'gh.docmirror.top/_proxy',
backup: [
'github.com'
]
}
// '/.*': {
// proxy: 'gh.docmirror.top/_proxy',
// backup: [
// 'github.com'
// ],
// desc: '如果出现dev-sidecar报错,可能是加速地址dns被污染了,需要将本条配置删除'
// }
},
'api.github.com': {
'^/_private/browser/stats$': {
@ -117,9 +116,9 @@ module.exports = {
backup: ['fonts-gstatic.proxy.ustclug.org']
}
},
// 'clients*.google.com': { '.*': { abort: true } },
// 'www.googleapis.com': { '.*': { abort: true } },
// 'lh*.googleusercontent.com': { '.*': { abort: true } },
'clients*.google.com': { '.*': { abort: false, desc: '设置abort:true可以快速失败,节省时间' } },
'www.googleapis.com': { '.*': { abort: false, desc: '设置abort:true可以快速失败,节省时间' } },
'lh*.googleusercontent.com': { '.*': { abort: false, desc: '设置abort:true可以快速失败,节省时间' } },
// mapbox-node-binary.s3.amazonaws.com/sqlite3/v5.0.0/napi-v3-win32-x64.tar.gz
'*.s3.amazonaws.com': {
'/sqlite3/.*': {

2
packages/gui/package.json

@ -1,6 +1,6 @@
{
"name": "@docmirror/dev-sidecar-gui",
"version": "1.4.0",
"version": "1.5.0-pre",
"private": false,
"license": "MPL-2.0",
"scripts": {

2
packages/gui/src/view/components/setup-ca.vue

@ -15,7 +15,7 @@
<a-button type="primary" style="float:right" @click="doSetup()">点此去安装</a-button>
</template>
<div>
<b>本应用正常使用必须安装和信任CA根证书</b>该证书是应用启动时本地随机生成的<br/>
<b>本应用在非安全模式必须安装和信任CA根证书</b>该证书是应用启动时本地随机生成的<br/>
<template v-if="this.systemPlatform === 'mac'">
1点击右上角点此去安装按钮打开钥匙串<br/>
2然后按如下图步骤将随机生成的根证书设置为始终信任<br/>

29
packages/gui/src/view/pages/index.vue

@ -20,18 +20,18 @@
<div class="box">
<div class="mode-bar" style="margin:20px;" v-if="config && config.app">
<a-radio-group v-model="config.app.mode" button-style="solid" @change="modeChange">
<a-tooltip placement="topLeft" title="启用测速,关闭拦截,关闭增强(功能最弱,不稳定,不需要信任证书,最安全)">
<a-tooltip placement="topLeft" title="启用测速,关闭拦截,关闭增强(功能最弱,不稳定,不需要安装证书,最安全)">
<a-radio-button value="safe">
安全模式
</a-radio-button>
</a-tooltip>
<a-tooltip placement="topLeft" title="启用测速,关闭增强(此模式不fan qiang,但不是很稳定)">
<a-tooltip placement="topLeft" title="关闭测速,启用拦截,关闭增强(功能稍强,需要安装证书)">
<a-radio-button value="default">
默认模式
</a-radio-button>
</a-tooltip>
<a-tooltip placement="topLeft" title="启用增强,关闭测速(安全模式或默认模式访问不了github时,请使用此模式)">
<a-radio-button value="ow">
<a-tooltip placement="topLeft" title="关闭测速,启用增强,启用拦截(敏感原因,默认关闭,感兴趣的话可以私下交流)">
<a-radio-button :disabled="!this.setting.overwall" value="ow">
增强模式
</a-radio-button>
</a-tooltip>
@ -77,8 +77,7 @@
</div>
<a-modal title="捐赠" v-model="donateModal" width="550px" cancelText="不了" okText="支持一下" @ok="goDonate">
<div>* 随着越来越多用户来使用我的1m带宽的小服务器已经满负荷运转了</div>
<div>* 请大家不要看油管视频把带宽留给想要访问github的同学致敬爱学习的你</div>
<div>* 如果觉得好用请给我一点鼓励感谢</div>
<div class="payQrcode">
<img height="200px" src="/pay.jpg"/>
</div>
@ -163,18 +162,18 @@ export default {
methods: {
async modeChange () {
const mode = this.config.app.mode
if (mode === 'ow') {
this.config.server.intercept.enabled = true
this.config.server.dns.speedTest.enabled = false
this.config.plugin.overwall.enabled = true
} else if (mode === 'default') {
this.config.server.intercept.enabled = true
this.config.server.dns.speedTest.enabled = true
this.config.plugin.overwall.enabled = false
} else if (mode === 'safe') {
if (mode === 'safe') {
this.config.server.intercept.enabled = false
this.config.server.dns.speedTest.enabled = true
this.config.plugin.overwall.enabled = false
} else if (mode === 'default') {
this.config.server.intercept.enabled = true
this.config.server.dns.speedTest.enabled = false
this.config.plugin.overwall.enabled = false
} else if (mode === 'ow') {
this.config.server.intercept.enabled = true
this.config.server.dns.speedTest.enabled = false
this.config.plugin.overwall.enabled = true
}
this.$api.config.save(this.config).then(() => {
this.$message.info('设置已保存')

2
packages/gui/src/view/pages/server.vue

@ -99,7 +99,7 @@
</a-checkbox>
</a-form-item>
<a-form-item label="自动测试间隔" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input-number id="inputNumber" v-model="getSpeedTestConfig().interval" :step="1000" :min="1" />
<a-input-number id="inputNumber" v-model="getSpeedTestConfig().interval" :step="1000" :min="1" /> ms
</a-form-item>
<div>使用以下dns获取ip进行测速</div>
<a-row style="margin-top:10px">

27
packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js

@ -126,6 +126,33 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e
}
})
}
// if (rOptions.agent) {
// const lookup2 = (hostname, options, callback) => {
// const tester = speedTest.getSpeedTester(hostname)
// if (tester) {
// const ip = tester.pickFastAliveIp()
// if (ip) {
// log.info(`-----${hostname} use alive ip from agent:${ip}-----`)
// callback(null, ip, 4)
// return
// }
// }
// dns.lookup(hostname).then(ip => {
// isDnsIntercept = { dns, hostname, ip }
// if (ip !== hostname) {
// log.info(`----request url :${url},use ip from agent :${ip}----`)
// callback(null, ip, 4)
// } else {
// log.info(`request url :${url},use hostname :${hostname}`)
// defaultDns.lookup(hostname, options, callback)
// }
// })
// }
// if (rOptions.agent.options) {
// rOptions.agent.options.lookup = lookup2
// }
// rOptions.agent.lookup = lookup2
// }
}
}

Loading…
Cancel
Save