使用ngrok+shadowsocks穿透内网校外也能畅快看论文

每次毕业的师兄师姐让我帮忙下载文献的时候,我就感觉到在学校的好处,那就是有无穷无尽的学术资源可以使用。要知道,一篇普通的文献,动不动都是几十甚至上百刀。虽然我还在学校,但是如果要到校外去,比如寒假回家,就无法看论文了,科研就无法继续。虽然很多学校都有VPN,但是不知道其它学校的情况是什么样子的,而我们学校的VPN总是无法使用,似乎很久没有人维护了。况且就算可以使用VPN,但是总还是觉得使用VPN的感觉不好,必须在不用的时候断开,否则就会拖慢整体的网速。

Shadowsocks是基于sock5的一款代理软件,ngrok则是一款开源的内网穿透软件,之所以需要用到ngrok,这是因为大部分学校内部的计算,是置于防火墙里边的,无法直接在校外访问。我们使用如下示意图描述整个项目的部署。

Images

安装ngrok服务端

此处的公网服务器,我们选择闲置的腾讯云服务器,使用如下的代码,下载并安装服务端。

  • 安装依赖项

  • 下载代码

  • 设置域名解析
    这里假设我有一个域名为example.com, 首先我设置一个A记录,ngrok -> ip_of_my_tencent_server,另外我在设置一个泛域名解析, *.ngrok -> ip_of_my_tencent_server

  • 生成ssl证书

  • 复制证书到配置的目录中

  • 编译ngrok服务器端

  • 编译ngrok客户端

注明: 对于不同的系统,请根据需求自定义,以下是常见的参数

常见编译错误

  • 出现301跳转错误

解决办法: 执行如下命令

  • 一直卡在gopkg.in/inconshreveable/go-update.v0 (download)

解决办法: 安装更新的git即可,然后再进行编译。

运行ngrok服务端

服务端执行以下命令运行程序

注明: 以上端口都是可以改变的,httpAddr以及httpsAddr分别是反向代理http以及https站点的端口。而tunnelAddr是ngrok客户端连接服务端的端口。

学校服务器配置

  • 安装shadowsocks

注明: 不同版本安装的方法也差不多,甚至windows也可以使用这个方法安装。简单的使用可以参考如下命令:

更新复杂的配置,请自行学习,这里不做过多的说明。

  • 运行ngrok客户端
    从服务器中编译出来的客户端中下载适应与客户端系统的ngrok版本。编写一个ngrok.yml文件,内容如下

然后使用如下命令运行程序:

终端配置

下载一个shadowsocks客户端,将pac文件中的域名替换成各大学术网站以及学校网站的域名,然后使用如下的配置,运行程序,我们就可以再其它地方使用学校的学术资源来。

shadowsocks客户端示例配置

本教程涉及到的内容太多,所以有些地方显得比较简略,比如如何安装新版的git,相关信息只要百度或者Google必能找到。



发表评论

电子邮件地址不会被公开。 必填项已用*标注