refactor: dns设置
							parent
							
								
									651a509069
								
							
						
					
					
						commit
						2be957968e
					
				|  | @ -6,5 +6,7 @@ | |||
|     "lerna": "^3.22.1" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "d2-crud-x": "^2.12.0", | ||||
|     "sqlite3": "^5.0.0" | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| const Shell = require('./shell') | ||||
| const lodash = require('lodash') | ||||
| const defConfig = require('./config/index.js') | ||||
| const proxyConfig = require('./lib/proxy/common/config') | ||||
| let configTarget = lodash.cloneDeep(defConfig) | ||||
| function _deleteDisabledItem (target, objKey) { | ||||
|   const obj = lodash.get(target, objKey) | ||||
|  | @ -55,6 +56,16 @@ const configApi = { | |||
|       return !item.exists | ||||
|     }) | ||||
|     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 | ||||
|       return method({ list: noSetList }) | ||||
|     } | ||||
|  |  | |||
|  | @ -10,73 +10,78 @@ module.exports = { | |||
|           '/.*/.*/releases/download/', | ||||
|           '/.*/.*/archive/' | ||||
|         ], | ||||
|         redirect: 'https://download.fastgit.org' | ||||
|         redirect: 'download.fastgit.org' | ||||
|       }, | ||||
|       { | ||||
|         regexp: [ | ||||
|           '/.*/.*/raw/', | ||||
|           '/.*/.*/blame/' | ||||
|         ], | ||||
|         redirect: 'https://hub.fastgit.org' | ||||
|         redirect: 'hub.fastgit.org' | ||||
|       } | ||||
|     ], | ||||
|     // 'codeload.github.com': [
 | ||||
|     //     {
 | ||||
|     //         regexp: '.*',
 | ||||
|     //         redirect:"https://download.fastgit.org"
 | ||||
|     //         redirect:"download.fastgit.org"
 | ||||
|     //     }
 | ||||
|     // ],
 | ||||
|     'raw.githubusercontent.com': [ | ||||
|       { | ||||
|         proxy: 'https://raw.fastgit.org' | ||||
|       } | ||||
|     ], | ||||
|     'raw.githubusercontent.com': [{ proxy: 'raw.fastgit.org' }], | ||||
|     'github.githubassets.com': [ | ||||
|       { | ||||
|         proxy: 'https://assets.fastgit.org' | ||||
|         proxy: 'assets.fastgit.org' | ||||
|       } | ||||
|     ], | ||||
|     'customer-stories-feed.github.com': [ | ||||
|       { | ||||
|         proxy: 'https://customer-stories-feed.fastgit.org' | ||||
|         proxy: 'customer-stories-feed.fastgit.org' | ||||
|       } | ||||
|     ], | ||||
| 
 | ||||
|     // google cdn
 | ||||
|     // https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
 | ||||
|     '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': [ | ||||
|       { | ||||
|         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': [ | ||||
|       { | ||||
|         proxy: 'https://themes.loli.net' | ||||
|         proxy: 'themes.loli.net', | ||||
|         backup: ['themes.proxy.ustclug.org'] | ||||
|       } | ||||
|     ], | ||||
|     'fonts.gstatic.com': [ | ||||
|       { | ||||
|         proxy: 'https://fonts-gstatic.proxy.ustclug.org' | ||||
|       } | ||||
|     'themes.googleusercontent.com': [ | ||||
|       { proxy: 'google-themes.proxy.ustclug.org' } | ||||
|     ], | ||||
|     'www.google.com': [ | ||||
|       { | ||||
|         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 }], | ||||
|     'www.googleapis.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': [ | ||||
|       { | ||||
|         regexp: '/sqlite3/.*', | ||||
|         redirect: 'http://npm.taobao.org/mirrors' | ||||
|         redirect: 'npm.taobao.org/mirrors' | ||||
|       } | ||||
|     ], | ||||
|     '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' }], | ||||
|     'downloads.lede-project.org': [{ proxy: 'lede.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' }] | ||||
|   }, | ||||
|   dns: { | ||||
|     providers: { | ||||
|       aliyun: { | ||||
|         type: 'https', | ||||
|         server: 'https://dns.alidns.com/dns-query', | ||||
|         server: 'dns.alidns.com/dns-query', | ||||
|         cacheSize: 1000 | ||||
|       }, | ||||
|       usa: { | ||||
|         type: 'https', | ||||
|         server: 'https://cloudflare-dns.com/dns-query', | ||||
|         server: 'cloudflare-dns.com/dns-query', | ||||
|         cacheSize: 1000 | ||||
|       } | ||||
|     }, | ||||
|  | @ -114,11 +118,15 @@ module.exports = { | |||
|       PHANTOMJS_CDNURL: 'https://npm.taobao.org/mirrors/phantomjs/', | ||||
|       ELECTRON_MIRROR: 'https://npm.taobao.org/mirrors/electron/', | ||||
|       CYPRESS_DOWNLOAD_MIRROR: 'https://cdn.cypress.io', | ||||
|       NVM_NODEJS_ORG_MIRROR: 'http://npm.taobao.org/mirrors/node', | ||||
|       CHROMEDRIVER_CDNURL: 'http://npm.taobao.org/mirrors/chromedriver', | ||||
|       OPERADRIVER: 'http://npm.taobao.org/mirrors/operadriver', | ||||
|       ELECTRON_BUILDER_BINARIES_MIRROR: 'http://npm.taobao.org/mirrors/electron-builder-binaries/', | ||||
|       PYTHON_MIRROR: 'http://npm.taobao.org/mirrors/python' | ||||
|       NVM_NODEJS_ORG_MIRROR: 'https://npm.taobao.org/mirrors/node', | ||||
|       CHROMEDRIVER_CDNURL: 'https://npm.taobao.org/mirrors/chromedriver', | ||||
|       OPERADRIVER: 'https://npm.taobao.org/mirrors/operadriver', | ||||
|       ELECTRON_BUILDER_BINARIES_MIRROR: 'https://npm.taobao.org/mirrors/electron-builder-binaries/', | ||||
|       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: { | ||||
|  |  | |||
|  | @ -16,8 +16,7 @@ module.exports = { | |||
|         if (target.indexOf('*') < 0) { | ||||
|           continue | ||||
|         } | ||||
|         const regexp = target.replace('.', '\\.') | ||||
|           .replace('*', '.*') | ||||
|         const regexp = target.replace(/\./g, '\\.').replace(/\*/g, '.*') | ||||
|         if (hostname.match(regexp)) { | ||||
|           providerName = dnsConfig.mapping[target] | ||||
|         } | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ module.exports = { | |||
|     const url = req.url | ||||
|     let redirect | ||||
|     if (typeof interceptOpt.redirect === 'string') { | ||||
|       redirect = interceptOpt.redirect + url | ||||
|       redirect = rOptions.protocol + '//' + interceptOpt.redirect + url | ||||
|     } else { | ||||
|       redirect = interceptOpt.redirect(url) | ||||
|     } | ||||
|  |  | |||
							
								
								
									
										75
									
								
								test/test.js
								
								
								
								
							
							
						
						
									
										75
									
								
								test/test.js
								
								
								
								
							|  | @ -19,25 +19,58 @@ | |||
| //   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 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'))); | ||||
| // const fs = require('fs')
 | ||||
| // 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')));
 | ||||
| 
 | ||||
| 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
	
	 xiaojunnuo
						xiaojunnuo