
1.业务需求
在企业跨境访问、云服务器运维、数据采集和安全中转等业务场景中,Linux 服务器常被用作 统一网络出口 或 代理中继节点。通过部署代理服务,可以实现以下目标:
- 稳定访问外网:将内网或受限网络的流量统一经由代理节点转发,提高跨境连接稳定性;
- 安全加密传输:通过 HTTPS 或 SOCKS5 隧道加密数据,避免中间人攻击;
- 集中流量控制与日志分析:在代理节点统一记录访问日志、监控流量状况;
- 降低维护复杂度:希望软件轻量、部署简单、性能可靠,可一键运行。
传统方案(如 Squid 或 3proxy)虽然功能全面,但配置复杂、依赖繁多、资源占用高,不适合在轻量云主机或容器环境下使用。
而由 Go 语言编写的 GOST(Go Simple Tunnel) 天生跨平台、轻量高效,支持 HTTP、SOCKS、HTTPS、TLS、WebSocket、QUIC 等协议,可快速搭建多类型代理服务。
2.技术选型
为选择合适的代理技术,我们综合比较了当前主流方案:
|-------|---------------------------------|------------|------------|---------|--------------|
| 对比项 | GOST | 3proxy | Squid | HAProxy | Shadowsocks |
| 编写语言 | Go | C | C++ | C | Go/Python |
| 支持协议 | HTTP、SOCKS4/5、HTTPS、TLS、WS、QUIC | HTTP、SOCKS | HTTP、HTTPS | TCP/UDP | SOCKS5、自定义加密 |
| 部署复杂度 | 简单(单文件) | 中等 | 高 | 高 | 中等 |
| 性能 | 高(Go 并发模型) | 高 | 中 | 高 | 高 |
| 资源占用 | 低 | 低 | 高 | 中 | 中 |
| 安全性 | 支持多层加密、认证 | 支持基本认证 | 支持 TLS | 强 | 强 |
| 跨平台 | ✅ | ✅ | ❌ | ✅ | ✅ |
选型结论:
- 对于轻量场景(单机中转、容器代理):GOST 是最佳选择;
- 对于需要 HTTPS 加密、代理级联、灵活转发的中间层:GOST 具备优于 Squid 的部署简易性;
- GOST 一次部署即可提供 HTTP + SOCKS5 + HTTPS 三类代理,性能和稳定性兼顾。

3.落地实施
3.1启动 HTTP 代理
sudo ./gost -L http://:8080
-
监听本地 8080 端口,提供 HTTP 代理;
-
若需认证:
sudo ./gost -L "http://user:pass@:8080"
3.2启动 SOCKS5 代理
sudo ./gost -L socks5://:1080
-
支持 TCP 与 UDP 转发;
-
若需要用户名密码:
sudo ./gost -L "socks5://user:pass@:1080"
3.3启动 HTTPS 代理(HTTP+TLS)
生成证书
sudo mkdir -p /etc/gost/certs
cd /etc/gost/certs
sudo openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem -subj "/CN=yourdomain.com"
启动代理
sudo /usr/local/bin/gost -L http+tls://:8443?cert=/etc/gost/certs/cert.pem&key=/etc/gost/certs/key.pem
3.4多协议组合运行
同时启用 HTTP、SOCKS5、HTTPS 三种代理:
sudo ./gost \
-L http://:8080 \
-L socks5://:1080 \
-L http+tls://:8443?cert=/etc/gost/certs/cert.pem&key=/etc/gost/certs/key.pem
或者使用配置文件 /etc/gost/config.json:
{
"services": [
{"name": "http", "addr": ":8080", "handler": {"type": "http"}},
{"name": "socks5","addr": ":1080", "handler": {"type": "socks5"}},
{"name": "https", "addr": ":8443", "handler": {"type": "http",
"tls": {"cert": "/etc/gost/certs/cert.pem","key": "/etc/gost/certs/key.pem"}}
}
]
}
运行:
sudo ./gost -C /etc/gost/config.json
5. 创建 systemd 服务
新建 /etc/systemd/system/gost.service:
[Unit]
Description=GO Simple Tunnel (gost)
After=network.target
[Service]
ExecStart=/usr/local/bin/gost -C /etc/gost/config.json
Restart=on-failure
User=nobody
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable --now gost
sudo systemctl status gost -l

6. 测试与验证
查看监听端口
sudo netstat -tulnp | grep gost

访问测试
curl -x http://127.0.0.1:8080 https://ipinfo.io
curl -x socks5://127.0.0.1:1080 https://ipinfo.io
curl -x https://127.0.0.1:8443 --proxy-cacert /etc/gost/certs/cert.pem https://ipinfo.io

4.复盘总结
成果回顾
通过本文实践,我们在 Linux 环境中成功完成了从源码编译到运行的全过程:
- 编译得到独立的 GOST 二进制程序;
- 分别部署了 HTTP、SOCKS5、HTTPS 三种代理;
- 配置 systemd 实现开机自启与自动重启;
- 通过 curl 验证所有代理协议均工作正常。
方案优势
- 轻量与高性能:
- 单文件部署,无需依赖,启动速度快;
- Go 并发模型保障高并发性能,能承载数千连接;
- 多协议并行:
- 一条命令即可同时启动多种代理;
- HTTP/HTTPS/SOCKS5 共存,覆盖所有主流需求;
- 安全与可扩展性:
- HTTPS 通道提供 TLS 加密,确保传输安全;
- 后续可级联上游代理(
-F参数),构建多层安全中转。
优化与扩展方向
- 服务化与监控
- 集成 Prometheus 监控端点,实时监控连接与带宽。
- 安全加固
- 使用 Let's Encrypt 免费证书替换自签证书;
- 在 HTTP/SOCKS5 中启用用户认证,防止滥用。
- 自动化部署
- 使用 Ansible、Docker 或 Kubernetes 批量部署多个节点;
- 结合 CI/CD(GitLab Runner)实现自动更新。
- 多层级代理链
- 使用
-F参数连接远端 HTTPS 上游,实现链式代理: - 有效增强跨地域网络稳定性与安全性。
- 使用