本文档用于在华为云 ECS 上部署 GOST v3.2.6 SOCKS5 代理服务。记录下,如违规我马上改正。
1. 部署信息
- 服务器:`root@【公网ip】`
- 安装目录:`/opt/gost`
- GOST 包:`gost_3.2.6_linux_amd64v3.tar.gz` 里面就一个执行文件
- 配置文件:`/opt/gost/config.yaml` 配置文件
- systemd 服务:`/etc/systemd/system/gost.service` 服务自动重启
- 监听端口:`10800` 随自己喜欢
- 代理协议:SOCKS5
注意:`amd64v3` 包要求 ECS CPU 支持 amd64 v3 指令集。如果启动时报 `Illegal instruction`,需要换普通 `linux_amd64` 包。
华为云可以用这个有v3的!
2. 本地文件
本地需要准备 3 个文件
D:\Downloads\gost_3.2.6_linux_amd64v3.tar.gz github在ecs上网不通
D:\windsurfNextWS\tiyufanshui\config.yaml
D:\windsurfNextWS\tiyufanshui\gost.service
3. 上传文件
在 Windows PowerShell 执行:
C:\\Windows\\System32\\OpenSSH\\scp.exe "D:\\Downloads\\gost_3.2.6_linux_amd64v3.tar.gz" root@【替换你的公网ip】:/opt/gost/
C:\\Windows\\System32\\OpenSSH\\scp.exe "D:\\windsurfNextWS\\tiyufanshui\\config.yaml" root@【替换你的公网ip】:/opt/gost/config.yaml
C:\\Windows\\System32\\OpenSSH\\scp.exe "D:\\windsurfNextWS\\tiyufanshui\\gost.service" root@【替换你的公网ip】:/etc/systemd/system/gost.service
我的scp没加path,用了绝对路径,ecs要建/opt/gost/目录。
如果 `/opt/gost` 目录不存在,先登录 ECS 创建:
mkdir -p /opt/gost
4. GOST 配置文件
`/opt/gost/config.yaml` 内容:
services:
- name: "socks5-multi"
addr: ":10800"
handler:
type: socks5
auther: socks5-users
listener:
type: tcp
authers:
- name: socks5-users
auths:
- username: "user01"
password: "YourStr0ng!Pass@01"
- username: "user02"
password: "YourStr0ng!Pass@02"
log:
output: "/var/log/gost.log"
level: info
如需改账号密码,只改 `authers.auths` 下的 `username` 和 `password`。
5. systemd 服务文件
`/etc/systemd/system/gost.service` 内容:
[Unit]
Description=GOST SOCKS5 Proxy Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/gost
ExecStart=/opt/gost/gost -C /opt/gost/config.yaml
Restart=always
RestartSec=5s
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
6. 解压和安装
SSH 用ECS它自带的vnc也一样 登录 ECS:
C:\\Windows\\System32\\OpenSSH\\ssh.exe root@【替换你的公网ip】
在 ECS 上执行:
cd /opt/gost
tar -xzf gost_3.2.6_linux_amd64v3.tar.gz
ls -la
chmod +x /opt/gost/gost
/opt/gost/gost -V
7. 启动服务
在 ECS 上执行:
systemctl daemon-reload
systemctl enable gost
systemctl restart gost
systemctl status gost --no-pager
确认端口监听:
ss -lntp | grep 10800
查看日志:
journalctl -u gost -n 80 --no-pager
tail -n 80 /var/log/gost.log
8. 华为云安全组
当前 ECS 只跑 GOST SOCKS5 服务时,安全组按最小开放原则配置。
添加入方向规则:
| 1 | 允许 | TCP | `10800` | `0.0.0.0/0` | GOST SOCKS5 |
出方向规则保持默认即可:
| 允许 | 全部 | 全部 | `0.0.0.0/0` |
不需要开放 UDP,不需要开放 GOST 的其他端口。
如果 systemd 正常、`ss` 能看到 `10800` 监听,但外网连不上,优先检查安全组和服务器防火墙。
9. 常见问题
systemctl 启动失败
查看具体错误:
systemctl status gost --no-pager
journalctl -u gost -n 100 --no-pager
检查华为云安全组是否放行 TCP `10800`。
10. 更新配置后的重启流程
修改 `/opt/gost/config.yaml` 后执行:
systemctl restart gost
systemctl status gost --no-pager
journalctl -u gost -n 50 --no-pager
11. 多IP 出口方案
多IP 出口方案
如果需要实现不同代理显示不同公网 IP,一台 ECS 可以绑定多个 EIP,但前提是:
1. ECS 网卡上有多个私有 IP。
2. 每个私有 IP 分别绑定一个 EIP。
3. GOST 的不同服务绑定不同私有 IP。
示例结构:
ECS 网卡 eth0
私有IP 192.168.0.10 -> 绑定 EIP-A
私有IP 192.168.0.11 -> 绑定 EIP-B
私有IP 192.168.0.12 -> 绑定 EIP-C
外部使用时可以做到:
EIP-A:10800 -> user01/pass01 -> 出口 EIP-A
EIP-B:10800 -> user02/pass02 -> 出口 EIP-B
EIP-C:10800 -> user03/pass03 -> 出口 EIP-C
这里的端口都是 `10800`,但公网 IP 不同,所以不会端口冲突。
如果是同一个公网 IP、同一个端口,只靠不同用户名决定不同出口 IP,这不是 GOST 基础配置的常规做法,通常需要插件、额外代理层或更复杂的系统路由。
13. 查看 ECS 私有 IP
在 ECS 上执行:
ip addr
确认多个私有 IP 已经出现在网卡上,例如:
192.168.0.10
192.168.0.11
192.168.0.12
这些是 GOST 配置里要填写的 IP,不是公网 EIP。
14. 多 EIP 同端口配置示例
下面示例中,三个服务都监听 `10800`,但分别绑定到不同私有 IP,并使用不同账号密码。
`/opt/gost/config.yaml`:
services:
- name: "socks5-eip-a"
addr: "192.168.0.10:10800"
metadata:
interface: 192.168.0.10
handler:
type: socks5
auther: user-a
listener:
type: tcp
- name: "socks5-eip-b"
addr: "192.168.0.11:10800"
metadata:
interface: 192.168.0.11
handler:
type: socks5
auther: user-b
listener:
type: tcp
- name: "socks5-eip-c"
addr: "192.168.0.12:10800"
metadata:
interface: 192.168.0.12
handler:
type: socks5
auther: user-c
listener:
type: tcp
authers:
- name: user-a
auths:
- username: "user01"
password: "PassA"
- name: user-b
auths:
- username: "user02"
password: "PassB"
- name: user-c
auths:
- username: "user03"
password: "PassC"
log:
output: "/var/log/gost.log"
level: info
替换项:
- `192.168.0.10`、`192.168.0.11`、`192.168.0.12`:替换成 ECS 上真实私有 IP。
- `user01/user02/user03`:替换成实际用户名。
- `PassA/PassB/PassC`:替换成实际密码。
修改后重启