Skip to content
/ nowall Public

基于node.js写的一个代理工具,支持http/https访问

Notifications You must be signed in to change notification settings

xioxu/nowall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

nowall, no wall & now all


由于工作原因,需要频繁访问外文网站,但一些纯技术网站也经常访问不了,虽然也花钱买过不少vpn工具,但发现很难有哪个vpn可以长期快速稳定,至于免费的翻墙工具那更是只能蹦跶几天,时不时的就要花时间找能用的代理或者vpn,简直是烦透了,也太浪费时间!

再加上这段时间迷上了node.js,感觉node应该比较适合这样的高IO低CPU的场景,故而也就有了nowall

为了可以长期稳定的做科(chao)研(xi),窃以为只有使用自己独立的代理服务器,才有这个可能,这样没有形成规模,也就不会引起别人注意了!

Goagent走的就是这样的路子,只是它过于依赖GAE,导致goagent过段时间就得升级一次,稍嫌麻烦,所以很久也没用goagent了,不知它现在怎样,尚能饭否?

nowall预期目标是支持各个平台,这样可供我们选择的免费空间也就更多些。

下边是nowall的一些特性:

  1. 支持http及https请求的的代理
  2. 服务端代理同时提供http和https两种协议,需要补充的是https实际上使用的是spdy协议(google推出的一种协议),所以理论上说速度应该更快,比https那是铁板钉钉的快,比http尚有争论。 当然使用它的前提是您的服务器要允许你https访问。
  3. 支持代理服务器的cdn加速访问。 这个就基本可以解决一些云平台被封的问题,例如加速我们的代理服务端部署在GAE上,那如果我们有自己的域名的话,就可以通过CDN站点指向我们的GAE服务器,继而就可以通过这个域名访问了。

目前nowall支持代理http和https访问,但代码还要进一步优化。

下边是下一步计划:

  • 研究websocket,SPDY协议,考虑使用这些协议优化代理连接速度。(已完成)
  • 开发其他语言的nowall服务端版本,以期支持更多服务器。

通用部署简单说明

###服务端 使用nowall前,您需要准备好一个可以访问国外网站的服务器,目前由于服务端只有node.js版本的,所以您的服务器需要支持node.js。 之后您只需要将代码中的server/node.js文件夹下的内容upload到您的服务器,运行server.js即可(第一次执行前需要运行npm install,另外推荐使用forever启动server.js),当然您也许需要修改config.json来修改代理端口。

###客户端

  • 第一版毫无疑问,您得先安装好node.js
  • 为支持https访问,本程序模拟goagent的原理,在本地会生成证书,所以您需要在 本地安装好openssl,安装方法可以参考相关教程,安装完成后您应该可以在打开命令行后执行openssl得到正确的反馈。 同时您需要将local文件夹下的ca.crt导入到您浏览器的根目录,您可能问我如何保证这个证书的安全,说实话我也没办法保证,所以您不怕麻烦的话就自己生成ca.key和ca.crt覆盖我提供的也可以。
  • 最后打开local文件夹,修改config.json,运行start.js(第一次执行前需要运行npm install)。 注:windows下安装openssl可以直接从http://slproweb.com/products/Win32OpenSSL.html 下载编译好的,先下载安装Visual C++ 2008 Redistributables,再下载安装Win32 OpenSSL v1.0.1j Light,安装完成后需要将openssl所在目录加入环境变量path,使得命令行可以访问openssl。

然后在浏览器上配置上http代理,即可正常使用, chrome推荐使用Switchy!,那还是极好的!

最后感谢https://www.zybuluo.com/mdeditor 提供这么好的工具,使我可以迅速的写出一个md文件!

另:

  1. 本程序不太适合没有技术背景的人使用,毕竟它需要找服务器、做配置,另外本人也不会对您的问题有问必答,敬请谅解!
  2. 仅推荐使用本程序做学习、娱乐只用,消极人士及愤青直接请好走,勿使用!
  3. 请勿二次封装本程序以做商用!
  4. 为了更多人的利益,具体的个云平台的配置方法请自行看代码研究,本人不会发布任何针对某平台的教程。

About

基于node.js写的一个代理工具,支持http/https访问

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published