基于 SSH 跳板的多协议代理服务配置(GOST) 作者: Shine 时间: 2025-08-06 分类: 神奇技巧 评论 本配置通过 [`gost`](https://github.com/go-gost/gost) 搭建一个代理服务,使用 **SSH 服务器作为跳板**,在本地提供 **SOCKS5 / HTTP 自动识别代理接口**。 适用于: - 局域网代理出口(走内网/专线 SSH 隧道) - 内网穿透访问远程服务器 - 将公司服务器作为中转跳板代理上网 --- ## 🧭 总览 - **代理入口**:本地监听端口 `31080` - **代理协议**:自动识别(SOCKS5、HTTP、HTTPS CONNECT) - **跳板方式**:通过 SSH 登录远程服务器 `10.10.1.2:22` - **认证方式**:SSH 用户名 + 密码(也可替换为私钥) ## 服务定义 ```yaml services: - name: service-alibaba-cloud-proxy addr: ":1080" handler: type: auto chain: chain-alibaba-cloud-dev listener: type: tcp ``` * `name`: 服务名称(可选) * `addr`: 本地监听地址和端口,`:1080` 表示监听所有 IP 的 1080 端口 * `handler.type: auto`: 自动识别代理协议(SOCKS5、HTTP、tunnel 等) * `handler.chain`: 指定使用的代理链 * `listener.type: tcp`: 使用 TCP 监听 --- ## 代理链定义 ```yaml chains: - name: chain-alibaba-cloud-dev hops: - name: hop-alibaba-cloud-dev nodes: - name: node-alibaba-cloud-dev # SSH Server addr: 10.10.1.2:22 connector: type: sshd dialer: type: sshd auth: username: root password: "example.password" ``` ### 说明: * `chain-alibaba-cloud-dev`: 代理链名称 * `hops`: 跳板链路(支持多跳) * `addr`: SSH 服务器地址及端口(默认 22) * `connector`: 建立连接使用 SSH * `dialer`: 转发请求也使用 SSH * `auth`: SSH 登录认证信息(用户名/密码) --- ## 使用方式 1. 启动 gost: ```bash gost -C gost.yaml ``` 2. 设置系统或浏览器代理为: ``` socks5://127.0.0.1:1080 ``` 或 HTTP: ``` http://127.0.0.1:1080 ``` 3. 测试: ```bash curl --socks5 127.0.0.1:1080 https://ipinfo.io ``` --- ## 安全建议 * 避免明文存储密码(可使用环境变量或加密配置方式) * 生产环境建议使用 SSH 私钥认证 * 加防火墙限制,仅允许可信 IP 使用此代理端口 --- ## 参考 * GOST GitHub: [https://github.com/go-gost/gost](https://github.com/go-gost/gost) * 支持协议文档: [https://gost.run](https://gost.run)