diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 457d8726..deb181dc 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -38,24 +38,19 @@ module.exports = { 'github.com': { '/.*/.*/releases/download/': { redirect: 'download.fastgit.org', - desc: 'release文件加速下载跳转地址', - sni: 'baidu.com' + desc: 'release文件加速下载跳转地址' }, '/.*/.*/archive/': { - redirect: 'download.fastgit.org', - sni: 'baidu.com' + redirect: 'download.fastgit.org' }, - '/.*/.*/blame/': { - redirect: 'hub.fastgit.org', - sni: 'baidu.com' + redirect: 'hub.fastgit.org' }, '^/[^/]+/[^/]+(/releases(/.*)?)?$': { script: [ 'github' ], - desc: 'clone加速复制链接脚本', - sni: 'baidu.com' + desc: 'clone加速复制链接脚本' }, '/.*': { proxy: 'github.com', @@ -63,6 +58,30 @@ module.exports = { desc: '目前禁掉sni就可以直接访问,如果后续github.com的ip被封锁,只能再走proxy模式', sni: 'baidu.com' } + // '/.*/.*/raw11/': { + // replace: '(.+)\\/raw\\/(.+)', + // proxy: 'raw.fastgit.org$1/$2', + // sni: 'baidu.com' + // } + }, + 'github-releases.githubusercontent.com': { + '.*': { + proxy: 'github-releases.githubusercontent.com', + sni: 'baidu.com' + } + }, + 'raw.githubusercontent.com': { + proxy: 'raw.githubusercontent.com', + sni: 'baidu.com' + }, + 'github.githubassets.com': { + '.*': { + proxy: 'github.githubassets.com', + sni: 'baidu.com' + } + }, + 'customer-stories-feed.github.com': { + '.*': { proxy: 'customer-stories-feed.fastgit.org' } }, 'api.github.com': { '^/_private/browser/stats$': { @@ -70,23 +89,6 @@ module.exports = { desc: 'github的访问速度分析上传,没有必要,直接返回成功' } }, - '/.*/.*/raw11/': { - replace: '(.+)\\/raw\\/(.+)', - proxy: 'raw.fastgit.org$1/$2' - }, - 'raw.11githubusercontent.com': { - '.*': { proxy: 'raw.fastgit.org' } - }, - // 'github.githubassets.com': { - // '.*': { - // proxy: 'assets-gh.docmirror.top/_proxy', - // test: 'https://github.githubassets.com/favicons/favicon.svg', - // desc: '静态资源加速' - // } - // }, - 'customer-stories-feed.github.com': { - '.*': { proxy: 'customer-stories-feed.fastgit.org' } - }, // google cdn 'www.google.com': { '/recaptcha/.*': { proxy: 'www.recaptcha.net' } diff --git a/packages/core/start/user_config.json5 b/packages/core/start/user_config.json5 index b745d13c..44f31d6c 100644 --- a/packages/core/start/user_config.json5 +++ b/packages/core/start/user_config.json5 @@ -3,7 +3,7 @@ autoStart: { enabled: true, }, - mode: 'safe', + mode: 'default', }, plugin: { node: { diff --git a/packages/mitmproxy/src/lib/interceptor/impl/sni.js b/packages/mitmproxy/src/lib/interceptor/impl/sni.js new file mode 100644 index 00000000..b912b40e --- /dev/null +++ b/packages/mitmproxy/src/lib/interceptor/impl/sni.js @@ -0,0 +1,13 @@ +module.exports = { + requestIntercept (context, interceptOpt) { + const { rOptions } = context + if (interceptOpt.sni != null) { + rOptions.servername = interceptOpt.sni + console.log('sni replace', rOptions.hostname, rOptions.servername) + } + return true + }, + is (interceptOpt) { + return !!interceptOpt.sni + } +} diff --git a/packages/mitmproxy/src/lib/interceptor/index.js b/packages/mitmproxy/src/lib/interceptor/index.js index 0a50ec3f..3f8b461e 100644 --- a/packages/mitmproxy/src/lib/interceptor/index.js +++ b/packages/mitmproxy/src/lib/interceptor/index.js @@ -3,6 +3,7 @@ const redirect = require('./impl/redirect') const abort = require('./impl/abort') const success = require('./impl/success') const script = require('./impl/script') -const modules = [proxy, redirect, abort, script, success] +const sni = require('./impl/sni') +const modules = [proxy, redirect, abort, script, success, sni] module.exports = modules diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 9a3a14dc..b2635072 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -54,7 +54,7 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e if (!reqIncpt.requestIntercept) { continue } - const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next) + const goNext = reqIncpt.requestIntercept(context, req, res, ssl) if (goNext) { next() return