..
搭建拥有安全证书的 Gost 隧道
Gost 是 GO 语言实现的安全隧道,但是其默认 TLS 自签证书并不安全,参考这篇文章:为什么Gost TLS隧道的默认配置不安全,本篇博文记录如何正确搭建 Relay over wss 隧道,并将其转发到服务器上的 Cloudflare Warp 代理。
安装 certbot
acme.sh 太麻烦了,这里用 certbot。我的系统是 Debian,其他系统可以查看官方文档介绍的安装方法。这里注意域名需要完整域名,同时要把防火墙的 80 端口打开用于认证。
sudo apt install cerbot # 安装
sudo certbot certonly -d "<你的网站域名>" # 生成证书
sudo ls /etc/letsencrypt/live/<你的网站域名> # 看看成功没
配置 warp
这里就不用那些乱七八糟的第三方客户端了,用官方的 warp-cli,warp+ 密钥可以自己找,网上有很多。
warp-cli register # 注册
warp-cli set-mode proxy # 设置代理模式
warp-cli set-lisence <你的 WARP 密钥> # 设置密钥
warp-cli set-proxy-port 7865 # 设置代理端口
warp-cli connect # 连接到 Warp
配置 gost
随便找个地方放 gost,配置文件如下。我这里用 53 端口连接,转发到 7865 端口上的 socks 代理。
services:
- name: service-0
addr: :53
handler:
type: relay
auth:
username: <配置用户名称>
password: <配置连接密码>
chain: chain-0
listener:
type: wss
tls:
certFile: "/etc/letsencrypt/live/<你的网站域名>/fullchain.pem"
keyFile: "/etc/letsencrypt/live/<你的网站域名>/private.pem"
chains:
- name: chain-0
hops:
- name: node-0
addr: :7865
connector:
type: socks
dialer:
type: tcp
把文件保存为 gost.yml
,然后在当前目录运行 gost
,会自动检索配置文件。
连接到隧道
客户端配置如下:
services:
- name: service-0
addr: :2333
handler:
type: socks
chain: chain-0
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: <你的服务器域名或ip>:53
connector:
type: relay
auth:
username: <配置用户名称>
password: <配置连接密码>
dialer:
type: wss
保存为gost.yml
,同目录运行 gost
即可连接,socks 代理地址 127.0.0.1
,端口 2333
。