记录下华为云ECS上部署GOST,实现一个ip替身[稳定IP]

SaoGa 2026-07-07 02:12 1


本文档用于在华为云 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`:替换成实际密码。


修改后重启


最新回复 (4)
  • SaoGa 楼主 07-07 02:16
    1

    我是有个要换个ip使用某个软件的需求,并且还要长期IP不变。用别人的多少有点不可控,于是就折腾了一个IP替身。

  • yeluo001 07-07 02:21
    2

    跑一个singbox是不是效果也是一样的,然后使用端通过规则分流

  • gggwl2021 07-07 02:24
    3

    singbox也能做,不过得看软件兼容性,建议先跑个模拟环境测试下稳定性。

  • SaoGa 楼主 07-07 04:00
    4

    感谢指出!

    特意去看了下:



    sing-box的路由规则支持按 auth_user 匹配,然后转发到不同 outbound;而 GOST 更擅长按服务、端口、监听地址、链路来组织。




    后面我再试试sing-box ^-^

* 帖子来源Linux.do
返回