Gost 代理部署

系统:Centos 7.9

前提

启动 gost 服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cat start.sh
#!/bin/bash

# 下面的四个参数需要改成你的
DOMAIN="YOU.DOMAIN.NAME"
USER="username"
PASS="password"
PORT=443

BIND_IP=0.0.0.0
CERT_DIR=/etc/letsencrypt
CERT=${CERT_DIR}/live/${DOMAIN}/fullchain.pem
KEY=${CERT_DIR}/live/${DOMAIN}/privkey.pem
sudo docker run -d --name gost \
-v ${CERT_DIR}:${CERT_DIR}:ro \
--net=host ginuerzh/gost \
-L "http2://${USER}:${PASS}@${BIND_IP}:${PORT}?cert=${CERT}&key=${KEY}&probe_resist=code:404&knock=www.google.com"

sh start.sh 启动 gost

关于 gost 的参数, 你可以参看其文档:Gost Wiki,上面我设置一个参数 probe_resist=code:404 意思是,如果服务器被探测,或是用浏览器来访问,返回404错误,也可以返回一个网页(如:probe_resist=file:/path/to/file.txt 或其它网站 probe_resist=web:example.com/page.html

Ps: 使用 Cloudflare 的注意事项

上述的方法并不支持 Cloudflare CDN,如果你想使用了 Cloudflare CDN,你需要使用 WebSocket 协议,如下所示,你需要使用 mwss 协议。

1
gost -L=mwss://username:password@:443?cert=/path/to/your/cert/file\&key=/path/to/your/key/file

在 CloudFlare 上,请将TLS/SSL设置为 完全

如果你的客户端只能使用 socks 协议,你还要在客户端这边转一下:

1
gost -L socks://:YourLocalPort -F mwss://username:password@example.com:443

然后在其他软件中设置socks5代理即可

证书自动化更新

crontab -e 编辑定时任务

1
2
0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * /usr/bin/docker restart gost

客户端设置(此处只说Chrome代理配置)

可以使用 Chrome 插件 SwitchyOmega进行代理设置。在 SwitchyOmega 中,你需要设置一个代理服务器。

  1. 打开 SwitchyOmega 的设置页面,点击左边导航栏上的“New Profile”,输入一个名字,比如“代理”。
  2. 然后在 Protocol 中选择 HTTPS, 填上你的 Gost 的 VPS 服务器和端口号。
  3. 点后面的 🔒 按钮,输入 Gost 服务器的用户名和密码。