吾志所向,一往无前;愈挫愈奋,再接再厉

免费AWS基于gost搭建科学上网

Posted on By Eironn

最早我的翻墙都是基于github 上的new-pac这个仓库学习的,主要是自己搭建的ssr方式。

后来我看这篇文章中新增了很多新的技术,比如v2ray、Brook、trojan等等很多新的技术。

后来后发现了一个介绍了更多实测的网址左耳朵的翻墙教程,这篇文章更深入的讲解了翻墙的最新方法以及原理。

这里不做重复性的讲解,只讲我参照这篇教程,选取其中的aws + gost的选型,来做的搭建过程。

一.为什么选择aws+gost?

google cloud其实更快,但是我已经免费使用了两年了,续期我算了一下最低配的一个月要5美元左右,有点贵。

而aws同样可以免费1年,但是以后续费可能价格会更低一些。

gost是上面左耳朵提到的最为隐蔽的一种翻墙方式,也是作者是非推荐的,并且实际在操作过程中,实现也是很简单的。

二.准备工作

在开始前先多看几遍准备工作,不然可能半途发现不适合自己。

1.注册aws,创建实例的教程可以参考这篇,写的很好了。教程地址

注册时候,一定要在aws的页面,选择右上角的区域,选择香港地区,这里的延迟我测了一下最低(具体不同地区可能会有差异)。

2.注册aws需要提供信用卡信息,但是担心扣费的话注册成功后换一个虚拟的信用卡会好一些。知乎-如何让aws绑定虚拟信用卡

3.在第一步中,创建系统映像(AMI)时,一定要先搜索关键字Ubuntu,然后选择ubutnu18的这个版本。至于原因,是因为有人基于Ubuntu18提供了一个安装的脚本,安装翻墙的时候非常方便。

4.当你的实例启动成功以后,需要到安全组里,开放一些端口。包括:

HTTP的80端口。SSH的22端口(默认就有)。自定义TCP的1443端口。HTTPS的443端口。所有ICMP-IPv4。

稍微解释一下,1443是我转发https请求要用到的端口,不用默认的443是因为这个服务器要用443作为我域名博客的访问地址。ICMP协议是允许ping命令的执行,不然我ping我的域名或者ip会没有响应的。

5.拥有一个自己的域名。我是在nameliso上注册的自己的域名(考察过这个域名商还不错,查了不少资料)

6.将域名解析改到你的aws的实例的外网上。nameliso域名解析教程

只需要配置A和CNAME即可,其他的都可以删掉。

如何判断域名解析是否生效,可以使用ping你的域名,看看转发的ip是否是你指定的aws ip即可。

三.开始搭建

1.在你创建aws实例过程中,会下载一个pem的文件,然后利用这个文件,登录到你的aws控制台。

最好登录以后把你本机的pubkey加入到免密登录里面中,以后登录就不依赖于这个文件了。但是这个文件最好存个档。

2.创建一个文件,比如install.sh,把教程中提供的安装脚本代码复制进去,并赋予文件可执行权限chmod 700 install.sh

3.执行这个脚本,同级目录下执行./install.sh,会让你选择要进行的操作。

按照顺序执行,12348。

其中需要注意的是,当要求你输入域名时,输入的是完整的,如www.xxx.com

当要求你输入用户名密码时,用户名密码是我们客户端连接服务端进行流量伪装的认证信息,要记住这个用户名密码,当客户端使用时需要配置。

执行3安装ssl证书,只有看到congratulation时,才说明你成功了。

执行4安装gost服务时,需要使用命令docker ps查看gost是否已经启动,如果没有启动,那么执行docker ps -a查找到容器,看一下日志确认错误信息docker logs -t -f --tail=100 容器id

当执行8的时候,会报权限问题,需要使用sudo ./install.sh最高权限

当一切都已经成功,那么可以在本地验证下结果。

我的客户端是Ubuntu,原来使用的是ssr,因此我终端执行gost -L socks5://:1080 -F 'https://用户名:密码@www.xxx.com:1443'后,打开google成功。

续期问题:
我的自动续期不好用。需要登录root账号,然后找80占用的端口lsof -i:80,kill -9 进程id,kill掉所有的。
然后停掉gost服务(docker容器,停止并删除)。
执行install.sh,重新执行3和4