关于代理服务器的一些备忘
原文链接 http://menglei.tk/2016/10/29/youknow/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
Node.js代理服务器
出于信息安全的需求,很多公司对于员工电脑访问外网都会有很多特别的限制,比如某国内大型上市IT解决方案供应商,所有的员工电脑必须通过某个指定的HTTP代理服务器访问互联网资源,并且还要进行用户名密码的验证,导致很多无法设置代理服务器的软件以及仅支持socks5代理的软件都无法使用,甚至想要在调试应用的时候调用一些第三方api都需要做很多特殊设置。
比如正常的Node.js在做HTTP请求的时候,代码如下:
var http = require('http');
var opt = {
host: 'api.example.com', //要访问的服务器地址或者域名
port: 8080, //要访问的服务器端口
method: 'POST', //方法
path: '/api', //路径
headers: { //请求headers
//request headers
}
}
var req = http.request(opt, function(res){
var body = '';
res.on('data', function(buf){
body += buf;
}).on('end', function(){
console.log(body); //print response
});
}).on('error', function(err){
console.log('err: ' + err.message);
});
req.end('request payload');
如果请求需要经过代理进行访问的时候,代码如下:
var http = require('http');
var username = ''; //proxy username
var password = ''; //proxy user password
var opt = {
host: '127.0.0.1', //代理服务器地址
port: 8080, //代理服务器端口
method: 'POST',
path: 'http://api.exmaple.com:8080/api', //真实请求URL
headers: {
'Proxy-Authentication': 'Base ' + new Buffer(username + ':' + password).toString('base64'), //如果代理服务器需要用户名密码,就加上这一行
//其他的请求header
}
};
//其余部分和之前相同,没有变化
NPM代理服务器
由于众所周知的原因,国内的网络,你懂的,有时候访问npm的时候就会抽风,造成一些意想不到的麻烦,不过还好,国内的淘宝团队建立了一个npm的镜像,地址是 https://npm.taobao.org/
,国内的开发者可以访问这里地址,速度非常快,同时可以使用以下命令,将npm的安装源替换为淘宝提供的源,加速模块的安装:
npm config set registry = 'https://registry.npm.taobao.org'
如果只是想在安装某一个模块的时候临时需要使用淘宝的源,可以按照以下操作,单次安装有效:
npm install koa@next --registry=https://registry.npm.taobao.org
同样,对于像某大型上市IT解决方案供应商的网络那样,只有经过代理才能访问外网的情况,则需要按照以下方法来设置代理服务器,这样执行之后,所有执行npm安装模块的时候,都会通过该代理服务器访问外网进行下载,只需要执行 npm config get proxy
即可查看设置的代理服务器是否正确:
npm config set proxy = 'http://username:password@proxy.example.com:8080'
CCproxy 与 Proxifier 代理
由于某些特殊的应用程序可能并不支持代理服务器的设置,或者设置的代理服务器不支持输入用户名密码,或者仅支持socks5代理,对于这些特殊情况,可以考虑使用ccproxy或者proxifier解决。
CCproxy是一款国人开发的代理服务器软件,免费版支持三用户同时在线使用,对于一般个人用户来说完全足够,该软件支持二级代理功能,可以在软件内设置上级代理的地址与用户名密码,同时转为本机的一个无用户名密码的代理,此时,本机上的无法设置代理用户名密码的软件就可以使用ccproxy进行代理上网了。
Proxifier是国外开发的一款全局代理软件,在该软件中设置好上级代理的信息,运行之后,会抓取本机的所有访问流量,同时将流量直接转发至代理服务器,无论软件是否设置代理与否,这样就保证了很多无法设置代理服务器的软件也可以访问外网。同时,启用proxifier之后,上面的Node.js和NPM在访问外网的时候就无需再进行其余设置了,proxifier会直接抓取其访问流量并转发至代理服务器。同时该软件还可以进行代理规则的配置,可以设置指定名称的软件访问网络不经过代理,或者设置多个代理,对于不同的目标,走不同的代理服务器,功能非常强大。
关于Shadowsocks
略。。。