起因

目前在许多学校中存在着教务外包、运维人员技术差、服务器资源少等问题,所以一般教务系统都不会暴露在外网中。但成绩查询、课表查询这种刚需,让我不得不研究一下如何将内网穿透出去。

分析

目前我已知的内网穿透方式有:ssh tunnel、frp、ngrok、花生壳,但ssh tunnel速度一般,花生壳高昂的服务价格已经不在考虑之列,加之手里已经有 vps,所以倾向于用现有的资源,在frp与ngrok中进行比对选择。

ngrok(https://github.com/inconshreveable/ngrok

  1. ngrok1为开源版本,存在许多已知问题(http模式有内存泄露bug),ngrok2闭源,并且官方好像并不打算开源,只会开源client端
  2. ngrok需要自己编译程序,因为ngrok采用的是证书验证,而且证书直接编译到exe文件里面去了,所以必须自行编译客户端与服务器端

frp(https://github.com/fatedier/frp

  1. 完全开源
  2. 有中文文档
  3. 未来计划:frps 支持直接反向代理,类似 haproxy;frpc 支持负载均衡到后端不同服务。

这样一对比,发现frp完全符合我的需求,所以有了下面一套解决方案:

解决方案

现在已经入手树莓派,坐等到货开始折腾,后续会继续记录整套方案的实施过程。
另外推荐frp一键脚本:http://www.lu8.win/frp.html,该站还有ngrok、n2n的一键脚本。

最后修改:2018 年 04 月 22 日
如果觉得我的文章对你有用,请随意赞赏