Featured image of post 使用GOST自由组建网络

使用GOST自由组建网络

这件事情还要从突破学校网络限制说起……

背景

首先diss一下自己的学校——佛山市第一中学。

初中的时候,所在的佛山市华英学校,教室的电教平台是可以访问网络的。有时候,同学们遇到某些难题,或者某些难懂的概念,就可以进行在线查询。由于老师不常在,到了晚修之类的时候,这种方式就成为了同学们提高自我的绝佳途径以及引发同学们讨论和思考的trigger.

中考填报志愿的时候,佛山市第一中学的宣传栏上面有一张图片——学生使用电子阅览平台查阅资料。当时便觉得高中也是可以延续初中这种查阅模式。

但是,上了高中才发现完全不是这样子。所有的教师电子阅览平台都被网关级别断网,各种协议——无论UDP还是TCP,甚至ICMP协议(ping)都被丢包。情有可原吧,初中的时候,我所在的地方是“卓越班”,同学们基本上都是中考能考到市前两百的,大家自然也是学习为主。不过高中并没有将重点班和普通班分开地点,所以是统一配置电子阅览平台。有些同学,在某些可以联网的时候,比如学校进行云会议的前后,便不顾一切钻空子上网玩游戏、看直播等等,每次级组广播都会严厉批评。学校大概也是很无奈。

高一高二的时候,有线网络无法上网矛盾还不凸显。当时学校允许携带手机,因此同学们都可以在放学后查阅资料。不过到了高三,学校开始改变政策,禁止学生在校园内使用手机了。顿时,矛盾凸显了出来。甚至很多时候,老师想要给同学们分享一些在线资源都不得不放弃。另外是我们学校很神奇地将班级扣分查询网站设在了阿里云的外网服务器上,也就意味着,在学校里面,居然不能查询到班级扣分。另外一点,高三没有什么机会回家,很多事物如果堆在家里做,会来不及。

但是在此之外,我们还有学校漫游WiFi可以使用,那是专门给老师手机使用的。我们班的电教委员联系了老师,解释了需要查阅资料以及查询班级扣分的情况,老师也同意主动给我们班的电教平台进行登录认证。于是,矛盾再次缓和了。

事情发生在2020年的12月,据说有同学使用某些手段,在老师不知情的情况下窃取了老师的账号密码,偷偷携带平板电脑回来上网打游戏被抓到。于是学校开始联系外包公司重新开发了网络认证系统,并且部署到全校除了机房的所有网络接口上,包括功能场室的用来放映PPT的电脑。现在的网络认证系统非常严格,每个老师只能同时两台设备在线,一台有线一台无线,一旦有新的设备登入,旧的设备就会被弹出。电教平台和老师的电脑冲突了,问题便出现了。

好在有一点,去年10月至12月我在准备信息学奥赛,需要一台电脑搭建模拟评测环境,电脑老师热心地在机房配备了一台电脑。现在虽然奥赛已经搞完了,但是老师懒得再把它搬走。前面说了,机房是不需要进行网络认证的,所以这台电脑可以作为代理上网的跳板机。

可以搭建代理的软件很多,包括CCProxy等,但是据朋友sunnyhu2003推荐,发现了这个十分轻量,但是又异常强大的工具—— GOST

内网代理上网

以我的配置为例,由于跳板机使用的是Ubuntu Server 20.04 LTS,在配置的时候已经安装好了Docker,便直接使用Docker。

一行命令完成:

1
docker run -d -p 1080:1080/tcp -p 8080:8080/tcp ginuerzh/gost -L http://:8080 -L gost -L socks5://:1080

然后就可以使用HTTP或者SOCKS5代理了。经过实测,浏览器和各类App都能够正常上网。

GOST

GOST绝不仅仅只有搭建内网代理服务器这一个功能。对于其他功能,我们可以打开 GOST Wiki 查看。

从GOST的全名,GO Simple Tunnel,我们可以知道,GOST本质上是一个在互联网上建立传输隧道的工具。不仅可以实现代理外访,还可以实现跳板链、内网穿透等多种强大功能(据说内网穿透性能比FRP更好),并且支持很多很多的传输协议——包括但不限于HTTP、HTTPS、SOCKS、Websocket、SSH、QUIC等。

简单的配置,请参考 快速开始

参考链接:

  1. https://github.com/ginuerzh/gost
  2. https://docs.ginuerzh.xyz/gost/
Built with Hugo
主题 StackJimmy 设计