gost:GO 语言实现的安全隧道与端口转发工具安装使用指南
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/ginuerzh/gost |
| v2 文档 | https://v2.gost.run |
| 新版本 | https://github.com/go-gost/gost(v3,https://gost.run) |
| 开源协议 | MIT |
| 主要语言 | Go(约 99.4%) |
| Star 数 | 约 18k |
GOST(GO Simple Tunnel) 是用 Go 语言实现的安全隧道工具。
现状:本仓库(ginuerzh/gost,即 v2)已进入维护阶段,不再增加新功能,已被新仓库 go-gost/gost 取代,新功能在 v3 开发。本文按 v2 README 记录其安装与隧道用法。
特性:
- 多端口监听;
- 可设置转发代理,支持多级转发(代理链);
- 支持标准 HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5 代理协议;
- 支持多种隧道类型:TCP/UDP 端口转发、Shadowsocks、SNI、HTTP2、QUIC、KCP、SSH 等;
- TCP/UDP 透明代理、权限控制、负载均衡、路由控制、DNS 解析与代理、TUN/TAP 设备。

二、官方图片
上图为 gost 仓库在 GitHub 上的社交预览图。
三、环境要求
- 单一 Go 二进制,无运行时依赖;
- 服务端:一台有公网 IP 的服务器;
- 客户端:需要通过隧道出网的机器;
- 可选:Docker、Homebrew、Snap 环境用于快速安装。
四、安装步骤
1. 二进制文件(推荐)
从 Releases 下载对应平台的预编译二进制:https://github.com/ginuerzh/gost/releases
2. 源码编译
git clone https://github.com/ginuerzh/gost.git
cd gost/cmd/gost
go build
3. Docker
docker run --rm ginuerzh/gost -V
4. Homebrew / Snap
brew install gost
sudo snap install core
sudo snap install gost
五、使用方法
1. 不设置转发代理(标准代理)
作为标准 HTTP/SOCKS5 代理:
gost -L=:8080
设置代理认证:
gost -L=admin:123456@localhost:8080
多端口监听(HTTP2 + SOCKS5 + Shadowsocks):
gost -L=http2://:443 -L=socks5://:1080 -L=ss://aes-128-cfb:123456@:8338
2. 设置转发代理(客户端经中转)
gost -L=:8080 -F=192.168.1.1:8081
带转发认证:
gost -L=:8080 -F=http://admin:123456@192.168.1.1:8081
3. 多级转发代理(代理链)
gost -L=:8080 -F=quic://192.168.1.1:6121 -F=socks5+wss://192.168.1.2:1080 -F=http2://192.168.1.3:443 ... -F=a.b.c.d:NNNN
gost 按 -F 顺序把请求经代理链最终转发到末端,每个节点可以是任意 HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks 代理。
4. 本地 TCP/UDP 端口转发
# 本地 TCP 2222 -> 192.168.1.1:22
gost -L=tcp://:2222/192.168.1.1:22
# 本地 UDP 5353 -> 192.168.1.1:53,超时 60 秒
gost -L=udp://:5353/192.168.1.1:53?ttl=60
5. 远程端口转发
gost -L=rtcp://:2222/192.168.1.1:22 -F=socks5://172.24.10.1:1080
6. HTTP2 / QUIC / KCP / SSH
# HTTP2 代理模式
gost -L=http2://:443 # 服务端
gost -L=:8080 -F=http2://server_ip:443 # 客户端
# QUIC
gost -L=quic://:6121 # 服务端
gost -L=:8080 -F=quic://server_ip:6121
# KCP
gost -L=kcp://:8388
gost -L=:8080 -F=kcp://server_ip:8388
7. Shadowsocks
gost -L=ss://chacha20:123456@:8338
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
六、常见问题 FAQ
-
ginuerzh/gost 和 go-gost/gost 什么关系? 前者是 v2(本仓库),已停止加新功能;v3 在 go-gost/gost 开发,文档见 gost.run。
-
最简单启动一个代理?
gost -L=:8080即可,客户端把 HTTP/SOCKS5 代理指向该端口。 -
怎么转发到中间服务器? 用
-F指定转发代理,可多级串联成代理链。 -
UDP 转发有什么注意? 若有代理链,末端必须是 gost SOCKS5 代理,用 UDP over TCP 转发;可用
ttl设置空闲超时。 -
KCP/QUIC 有什么限制? 二者只能作为代理链的第一个节点。
-
自定义 TLS 证书怎么放? 在运行目录放
cert.pem和key.pem,或用参数?cert=...&key=...指定。
七、跳转链接
- GitHub 仓库:https://github.com/ginuerzh/gost
- v2 文档:https://v2.gost.run
- 新版本(v3):https://github.com/go-gost/gost
- Releases:https://github.com/ginuerzh/gost/releases