refactor: dns设置
parent
651a509069
commit
2be957968e
|
@ -6,5 +6,7 @@
|
||||||
"lerna": "^3.22.1"
|
"lerna": "^3.22.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"d2-crud-x": "^2.12.0",
|
||||||
|
"sqlite3": "^5.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const Shell = require('./shell')
|
const Shell = require('./shell')
|
||||||
const lodash = require('lodash')
|
const lodash = require('lodash')
|
||||||
const defConfig = require('./config/index.js')
|
const defConfig = require('./config/index.js')
|
||||||
|
const proxyConfig = require('./lib/proxy/common/config')
|
||||||
let configTarget = lodash.cloneDeep(defConfig)
|
let configTarget = lodash.cloneDeep(defConfig)
|
||||||
function _deleteDisabledItem (target, objKey) {
|
function _deleteDisabledItem (target, objKey) {
|
||||||
const obj = lodash.get(target, objKey)
|
const obj = lodash.get(target, objKey)
|
||||||
|
@ -55,6 +56,16 @@ const configApi = {
|
||||||
return !item.exists
|
return !item.exists
|
||||||
})
|
})
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
|
const context = {
|
||||||
|
ca_cert_path: proxyConfig.getDefaultCACertPath()
|
||||||
|
}
|
||||||
|
for (const item of noSetList) {
|
||||||
|
if (item.value.indexOf('${') >= 0) {
|
||||||
|
for (const key in context) {
|
||||||
|
item.value = item.value.replcace(new RegExp('${' + key + '}', 'g'), context[key])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
const method = type === 'npm' ? Shell.setNpmEnv : Shell.setSystemEnv
|
const method = type === 'npm' ? Shell.setNpmEnv : Shell.setSystemEnv
|
||||||
return method({ list: noSetList })
|
return method({ list: noSetList })
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,73 +10,78 @@ module.exports = {
|
||||||
'/.*/.*/releases/download/',
|
'/.*/.*/releases/download/',
|
||||||
'/.*/.*/archive/'
|
'/.*/.*/archive/'
|
||||||
],
|
],
|
||||||
redirect: 'https://download.fastgit.org'
|
redirect: 'download.fastgit.org'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
regexp: [
|
regexp: [
|
||||||
'/.*/.*/raw/',
|
'/.*/.*/raw/',
|
||||||
'/.*/.*/blame/'
|
'/.*/.*/blame/'
|
||||||
],
|
],
|
||||||
redirect: 'https://hub.fastgit.org'
|
redirect: 'hub.fastgit.org'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 'codeload.github.com': [
|
// 'codeload.github.com': [
|
||||||
// {
|
// {
|
||||||
// regexp: '.*',
|
// regexp: '.*',
|
||||||
// redirect:"https://download.fastgit.org"
|
// redirect:"download.fastgit.org"
|
||||||
// }
|
// }
|
||||||
// ],
|
// ],
|
||||||
'raw.githubusercontent.com': [
|
'raw.githubusercontent.com': [{ proxy: 'raw.fastgit.org' }],
|
||||||
{
|
|
||||||
proxy: 'https://raw.fastgit.org'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'github.githubassets.com': [
|
'github.githubassets.com': [
|
||||||
{
|
{
|
||||||
proxy: 'https://assets.fastgit.org'
|
proxy: 'assets.fastgit.org'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'customer-stories-feed.github.com': [
|
'customer-stories-feed.github.com': [
|
||||||
{
|
{
|
||||||
proxy: 'https://customer-stories-feed.fastgit.org'
|
proxy: 'customer-stories-feed.fastgit.org'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
// google cdn
|
// google cdn
|
||||||
// https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
|
|
||||||
'ajax.googleapis.com': [
|
'ajax.googleapis.com': [
|
||||||
{
|
{
|
||||||
proxy: 'https://ajax.proxy.ustclug.org'
|
proxy: 'ajax.loli.net',
|
||||||
|
backup: ['ajax.proxy.ustclug.org'],
|
||||||
|
case: 'ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'fonts.googleapis.com': [
|
'fonts.googleapis.com': [
|
||||||
{
|
{
|
||||||
proxy: 'https://fonts.proxy.ustclug.org'
|
proxy: 'fonts.loli.net',
|
||||||
|
backup: ['fonts.proxy.ustclug.org'],
|
||||||
|
case: 'https://fonts.googleapis.com/css?family=Oswald'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'themes.googleapis.com': [
|
'themes.googleapis.com': [
|
||||||
{
|
{
|
||||||
proxy: 'https://themes.loli.net'
|
proxy: 'themes.loli.net',
|
||||||
|
backup: ['themes.proxy.ustclug.org']
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'fonts.gstatic.com': [
|
'themes.googleusercontent.com': [
|
||||||
{
|
{ proxy: 'google-themes.proxy.ustclug.org' }
|
||||||
proxy: 'https://fonts-gstatic.proxy.ustclug.org'
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
'www.google.com': [
|
'www.google.com': [
|
||||||
{
|
{
|
||||||
regexp: '/recaptcha/.*',
|
regexp: '/recaptcha/.*',
|
||||||
proxy: 'https://www.recaptcha.net'
|
proxy: 'www.recaptcha.net'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'fonts.gstatic.com': [
|
||||||
|
{
|
||||||
|
proxy: 'fonts-gstatic.proxy.ustclug.org',
|
||||||
|
backup: ['gstatic.loli.net']
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'clients*.google.com': [{ abort: true }],
|
'clients*.google.com': [{ abort: true }],
|
||||||
'www.googleapis.com': [{ abort: true }],
|
'www.googleapis.com': [{ abort: true }],
|
||||||
'lh*.googleusercontent.com': [{ abort: true }],
|
'lh*.googleusercontent.com': [{ abort: true }],
|
||||||
// https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v5.0.0/napi-v3-win32-x64.tar.gz
|
// mapbox-node-binary.s3.amazonaws.com/sqlite3/v5.0.0/napi-v3-win32-x64.tar.gz
|
||||||
'*.s3.amazonaws.com': [
|
'*.s3.amazonaws.com': [
|
||||||
{
|
{
|
||||||
regexp: '/sqlite3/.*',
|
regexp: '/sqlite3/.*',
|
||||||
redirect: 'http://npm.taobao.org/mirrors'
|
redirect: 'npm.taobao.org/mirrors'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'registry-1.docker.io': [{ proxy: 'docker.mirrors.ustc.edu.cn' }],
|
'registry-1.docker.io': [{ proxy: 'docker.mirrors.ustc.edu.cn' }],
|
||||||
|
@ -85,19 +90,18 @@ module.exports = {
|
||||||
'archive.cloudera.com': [{ regexp: '/cdh5/.*', proxy: 'cloudera.proxy.ustclug.org' }],
|
'archive.cloudera.com': [{ regexp: '/cdh5/.*', proxy: 'cloudera.proxy.ustclug.org' }],
|
||||||
'downloads.lede-project.org': [{ proxy: 'lede.proxy.ustclug.org' }],
|
'downloads.lede-project.org': [{ proxy: 'lede.proxy.ustclug.org' }],
|
||||||
'downloads.openwrt.org': [{ proxy: 'openwrt.proxy.ustclug.org' }],
|
'downloads.openwrt.org': [{ proxy: 'openwrt.proxy.ustclug.org' }],
|
||||||
'themes.googleusercontent.com': [{ proxy: 'google-themes.proxy.ustclug.org' }],
|
|
||||||
'secure.gravatar.com': [{ proxy: 'gravatar.proxy.ustclug.org' }]
|
'secure.gravatar.com': [{ proxy: 'gravatar.proxy.ustclug.org' }]
|
||||||
},
|
},
|
||||||
dns: {
|
dns: {
|
||||||
providers: {
|
providers: {
|
||||||
aliyun: {
|
aliyun: {
|
||||||
type: 'https',
|
type: 'https',
|
||||||
server: 'https://dns.alidns.com/dns-query',
|
server: 'dns.alidns.com/dns-query',
|
||||||
cacheSize: 1000
|
cacheSize: 1000
|
||||||
},
|
},
|
||||||
usa: {
|
usa: {
|
||||||
type: 'https',
|
type: 'https',
|
||||||
server: 'https://cloudflare-dns.com/dns-query',
|
server: 'cloudflare-dns.com/dns-query',
|
||||||
cacheSize: 1000
|
cacheSize: 1000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -114,11 +118,15 @@ module.exports = {
|
||||||
PHANTOMJS_CDNURL: 'https://npm.taobao.org/mirrors/phantomjs/',
|
PHANTOMJS_CDNURL: 'https://npm.taobao.org/mirrors/phantomjs/',
|
||||||
ELECTRON_MIRROR: 'https://npm.taobao.org/mirrors/electron/',
|
ELECTRON_MIRROR: 'https://npm.taobao.org/mirrors/electron/',
|
||||||
CYPRESS_DOWNLOAD_MIRROR: 'https://cdn.cypress.io',
|
CYPRESS_DOWNLOAD_MIRROR: 'https://cdn.cypress.io',
|
||||||
NVM_NODEJS_ORG_MIRROR: 'http://npm.taobao.org/mirrors/node',
|
NVM_NODEJS_ORG_MIRROR: 'https://npm.taobao.org/mirrors/node',
|
||||||
CHROMEDRIVER_CDNURL: 'http://npm.taobao.org/mirrors/chromedriver',
|
CHROMEDRIVER_CDNURL: 'https://npm.taobao.org/mirrors/chromedriver',
|
||||||
OPERADRIVER: 'http://npm.taobao.org/mirrors/operadriver',
|
OPERADRIVER: 'https://npm.taobao.org/mirrors/operadriver',
|
||||||
ELECTRON_BUILDER_BINARIES_MIRROR: 'http://npm.taobao.org/mirrors/electron-builder-binaries/',
|
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://npm.taobao.org/mirrors/electron-builder-binaries/',
|
||||||
PYTHON_MIRROR: 'http://npm.taobao.org/mirrors/python'
|
PYTHON_MIRROR: 'https://npm.taobao.org/mirrors/python'
|
||||||
|
},
|
||||||
|
system: {
|
||||||
|
// eslint-disable-next-line no-template-curly-in-string
|
||||||
|
NODE_EXTRA_CA_CERTS: '${ca_cert_path}'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setting: {
|
setting: {
|
||||||
|
|
|
@ -16,8 +16,7 @@ module.exports = {
|
||||||
if (target.indexOf('*') < 0) {
|
if (target.indexOf('*') < 0) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
const regexp = target.replace('.', '\\.')
|
const regexp = target.replace(/\./g, '\\.').replace(/\*/g, '.*')
|
||||||
.replace('*', '.*')
|
|
||||||
if (hostname.match(regexp)) {
|
if (hostname.match(regexp)) {
|
||||||
providerName = dnsConfig.mapping[target]
|
providerName = dnsConfig.mapping[target]
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ module.exports = {
|
||||||
const url = req.url
|
const url = req.url
|
||||||
let redirect
|
let redirect
|
||||||
if (typeof interceptOpt.redirect === 'string') {
|
if (typeof interceptOpt.redirect === 'string') {
|
||||||
redirect = interceptOpt.redirect + url
|
redirect = rOptions.protocol + '//' + interceptOpt.redirect + url
|
||||||
} else {
|
} else {
|
||||||
redirect = interceptOpt.redirect(url)
|
redirect = interceptOpt.redirect(url)
|
||||||
}
|
}
|
||||||
|
|
75
test/test.js
75
test/test.js
|
@ -19,25 +19,58 @@
|
||||||
// console.log('stderr:' + stderr)
|
// console.log('stderr:' + stderr)
|
||||||
// })
|
// })
|
||||||
|
|
||||||
// var HttpsProxyAgent = require('https-proxy-agent')
|
|
||||||
// var proxy = 'http://127.0.0.1:1181'
|
|
||||||
// var agent = new HttpsProxyAgent(proxy)
|
|
||||||
// console.log('111',process.env.NODE_EXTRA_CA_CERTS)
|
|
||||||
// const https = require('https')
|
|
||||||
// https_options = {
|
|
||||||
// "agent": agent,
|
|
||||||
// };
|
|
||||||
// https.get('https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', https_options,(res) => {
|
|
||||||
// console.log('状态码:', res.statusCode)
|
|
||||||
// console.log('请求头:', res.headers)
|
|
||||||
//
|
|
||||||
// res.on('data', (d) => {
|
|
||||||
// process.stdout.write(d)
|
|
||||||
// })
|
|
||||||
// }).on('error', (e) => {
|
|
||||||
// console.error(e)
|
|
||||||
// })
|
|
||||||
|
|
||||||
const fs = require('fs')
|
// const fs = require('fs')
|
||||||
const content = fs.readFileSync('C:\\Users\\Administrator\\.dev-sidecar\\dev-sidecar.ca.crt')
|
// const content = fs.readFileSync('C:\\Users\\Administrator\\.dev-sidecar\\dev-sidecar.ca.crt')
|
||||||
console.log('content:',JSON.stringify(content.toString().replace(new RegExp('\r\n','g'),'\n')));
|
// console.log('content:',JSON.stringify(content.toString().replace(new RegExp('\r\n','g'),'\n')));
|
||||||
|
|
||||||
|
function testCa() {
|
||||||
|
const https = require('https')
|
||||||
|
const fs = require('fs')
|
||||||
|
const content = fs.readFileSync('C:\\Users\\Administrator\\.dev-sidecar\\dev-sidecar.ca.crt')
|
||||||
|
process.env.NODE_EXTRA_CA_CERTS = 'C:\\Users\\Administrator\\.dev-sidecar\\dev-sidecar.ca.crt'
|
||||||
|
process.env.GLOBAL_AGENT_HTTP_PROXY = "http://127.0.0.1:1181"
|
||||||
|
process.env.GLOBAL_AGENT_HTTPS_PROXY = "http://127.0.0.1:1181"
|
||||||
|
console.log('111', process.env.NODE_EXTRA_CA_CERTS)
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
agent : new https.Agent({
|
||||||
|
proxy: "http://127.0.0.1:1181"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log('options', options)
|
||||||
|
|
||||||
|
https.get('https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js',options, (res) => {
|
||||||
|
console.log('状态码:', res.statusCode)
|
||||||
|
console.log('请求头:', res.headers)
|
||||||
|
|
||||||
|
res.on('data', (d) => {
|
||||||
|
process.stdout.write(d)
|
||||||
|
})
|
||||||
|
}).on('error', (e) => {
|
||||||
|
console.error(e)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function testRequest(){
|
||||||
|
// process.env.NODE_EXTRA_CA_CERTS='C:\\Users\\Administrator\\.dev-sidecar\\dev-sidecar.ca.crt'
|
||||||
|
console.log(process.env.NODE_EXTRA_CA_CERTS)
|
||||||
|
const request = require("request").defaults({
|
||||||
|
proxy: "http://127.0.0.1:1181"
|
||||||
|
})
|
||||||
|
request("https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js",(error, response, body)=>{
|
||||||
|
if(error){
|
||||||
|
console.error(error)
|
||||||
|
}else{
|
||||||
|
console.log(body)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// testCa()
|
||||||
|
|
||||||
|
testRequest()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue