起因
目前在许多学校中存在着教务外包、运维人员技术差、服务器资源少等问题,所以一般教务系统都不会暴露在外网中。但成绩查询、课表查询这种刚需,让我不得不研究一下如何将内网穿透出去。
分析
目前我已知的内网穿透方式有:ssh tunnel、frp、ngrok、花生壳,但ssh tunnel速度一般,花生壳高昂的服务价格已经不在考虑之列,加之手里已经有 vps,所以倾向于用现有的资源,在frp与ngrok中进行比对选择。
ngrok(https://github.com/inconshreveable/ngrok)
- ngrok1为开源版本,存在许多已知问题(http模式有内存泄露bug),ngrok2闭源,并且官方好像并不打算开源,只会开源client端
- ngrok需要自己编译程序,因为ngrok采用的是证书验证,而且证书直接编译到exe文件里面去了,所以必须自行编译客户端与服务器端
frp(https://github.com/fatedier/frp)
- 完全开源
- 有中文文档
- 未来计划:frps 支持直接反向代理,类似 haproxy;frpc 支持负载均衡到后端不同服务。
这样一对比,发现frp完全符合我的需求,所以有了下面一套解决方案:
解决方案现在已经入手树莓派,坐等到货开始折腾,后续会继续记录整套方案的实施过程。
另外推荐frp一键脚本:http://www.lu8.win/frp.html,该站还有ngrok、n2n的一键脚本。
网友评论