搭建基于Gost的HTTPS代理

友mixool推荐基于gost搭建的https代理脚本,感觉很简单实用,于是分享详细的搭建教程。以前俺写过caddy正向代理,说白了这就是另一个https正向代理实现方法,不过更简单。

申请域名和填写DNS记录

首先你要注册一个免费域名,这个可以到Freenom上免费搞一个,不多讲。

域名注册好后,需要添加两条DNS记录,如果没有v6IP的话,就填一个v4IP的A记录,如下:

Name (prefix) Type TTL Target
A 3600 这里填写vps上的v4IP
AAAA 3600 这是v6IP,没有可不填

上面完成后,就开始服务端的配置了。

申请SSL证书

安装certbot

apt install certbot

certbot申请证书

certbot certonly --standalone --email youmail@mail -d xxxx.com -d www.xxxx.com

运行完成后,会生成类似下面路径的证书,俺们要记下公钥、私钥的路径:

1
2
/etc/letsencrypt/live/xxxx.com/fullchain.pem    #证书公钥,xxxx.com是你的域名
/etc/letsencrypt/live/xxxx.com/privkey.pem #证书私钥

下载Gost

wget -O - https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz | gzip -d > /usr/bin/gost

chmod +x /usr/bin/gost

注册system服务

vi /etc/systemd/system/gost.service 填入下面内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=gost
[Service]
ExecStart=/usr/bin/gost -L=https://uname:password@:443?cert=/etc/letsencrypt/live/xxxx.com/fullchain.pem&key=/etc/letsencrypt/live/xxxx.com/privkey.pem

#下面是probe_resistance防嗅探,通过代理访问 http://login.localhost 唯一地址触发407验证,而避免其它代理页返回407验证而暴露了自己是一个转发代理。
#此功能默认关闭,把上面一行#号注释掉,再把下面一行前面#号去掉即可开启,注意证书路径。
#ExecStart=/usr/bin/gost -L=https://uname:password@:443?probe_resist=code:400&knock=login.localhost&cert=/etc/letsencrypt/live/xxxx.com/fullchain.pem&key=/etc/letsencrypt/live/xxxx.com/privkey.pem

Restart=always
User=root
[Install]
WantedBy=multi-user.target

重载system服务 systemctl daemon-reload

下面就可以启动gost了:

systemctl start gost #启动gost

systemctl restart gost #重启gost

systemctl enable gost #开机自启

systemctl status gost #查看状态

服务端到此也就部署完成了,下面来折腾客户端。https正向代理,不必多讲,安全、快捷,电脑端不用另装客户端,移动端软件大部分支持https代理。

客户端配置

电脑端浏览器安装SwitchyOmega插件,新建一个代理情景模式,代理协议填写HTTPS,代理服务器填写你的域名,端口填写你使用的端口,没有另外设置的话就填443,最后点击右边小锁,填写你的用户名和密码。就可以使用了,如果需要分流的话,可以另建立一个自动切换模式。

在SwitchyOmega插件上设置代理自动分流模式,另新建一个自动切换模式,设置如下图:

AutoProxy:https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

移动端,俺们以小火箭和Quantumult X为例,小火箭,选择https代理,服务器填写你的域名,其它看图:

Quantumult X 配置文件/编辑/server_local字头下填写:

http=你的域名:443, username=用户名, password=密码, over-tls=true, tls-host=你的域名, fast-open=false, udp-relay=false, tag=gost

最后推荐几个移动端支持https代理软件,iOS:Quantumult X ,小火箭, Android:Clash Surfboard.

参考: