Files
gate_scout_order/onchain_scout_gate/docs/本地部署-SOCKS5代理.md
T
2026-05-16 22:25:48 +08:00

8.8 KiB
Raw Blame History

本地部署说明(含 SOCKS5 代理 socks5h://127.0.0.1:1080

云服务器部署:若主机在境外且可直连 api.gateio.ws,请将 config.yamlproxy.enabled 设为 false,无需 SOCKS。详见 交易系统部署说明.md §8 与 多执行器与信号转发归档.md §7。

本文说明如何在本机部署 onchain_scout_gateGate USDT 永续监控 + 可选 Gemma 漏斗 + Web 看板),并在访问 Gate 行情、企业微信等外网接口时使用 本地 SOCKS5 代理。环境变量统一使用 **socks5h://127.0.0.1:1080h = 主机名在代理端解析,等同 curl 的 socks5h,推荐)。端口 **1080 与 Clash / v2rayN / Sing-box 等本地 SOCKS 入站一致。


1. 前置条件

1.1 系统与软件

项目 说明
操作系统 Windows 10/11 或 Linux / macOS 均可
Python 3.10+(推荐 3.11 / 3.12
代理客户端 本机已运行 SOCKS5 监听 **127.0.0.1:1080**(常见为 Clash / v2rayN 的「本地 SOCKS5 端口」)
浏览器 用于打开 http://127.0.0.1:8088(或你在 config.yaml 中配置的端口)

1.2 代理必须可用(自检)

在启动本服务前,请先确认 1080 端口 SOCKS5 已连通外网(否则 Gate 行情请求会超时或 TLS 失败)。

Windows PowerShell(若已安装 curl 且 curl 支持 socks5h):

curl -x socks5h://127.0.0.1:1080 -I "https://api.gateio.ws" --max-time 15

期望看到 HTTP 状态行(如 HTTP/1.1 200HTTP/2 302 等),而不是长时间卡住或 Connection refused

说明socks5h 表示把 DNS 也走代理(推荐,避免 DNS 污染)。Python 侧下文使用等价思路。


2. 获取代码与目录

将仓库(或 onchain_scout 目录)放到本机任意路径,例如:

  • WindowsC:\opt\onchain_scout
  • Linux/opt/onchain_scout

下文以 **onchain_scout 为项目根目录**(即包含 config.yamlrequirements.txtapp/ 的那一层)。


3. Python 虚拟环境

3.1 WindowsPowerShell

cd C:\opt\onchain_scout
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
pip install -r requirements.txt

若执行策略禁止激活脚本:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

3.2 Linux / macOS

cd /opt/onchain_scout
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt

3.3 SOCKS5 与 httpx

本项目通过 httpx 访问 Gate 行情(及按需的企业微信 Webhook)。走 SOCKS5 需要安装带 socks 依赖的 httpx。requirements.txt 中已使用:

httpx[socks]==0.27.2

若你曾单独安装过无 extras 的 httpx,请在本虚拟环境中重新执行:

pip install -r requirements.txt

4. 配置文件 config.yaml

  1. 若不存在,从示例复制:
 copy config.example.yaml config.yaml
  1. 至少修改:
  • auth.username / auth.password:登录 Web 看板用(生产环境请使用强密码)。
  • wecom.webhook:企业微信群机器人 Webhook(若暂不用推送,可先填占位,但触发类推送仍可能失败,可先关相关逻辑或接受报错日志)。
  • monitor.min_24h_quote_volume_usdt:成交额过滤(默认一千万量级,按 README 说明)。
  • **gemma**:若本机已装 Ollama 且要跑漏斗,将 enabled: true 并设置 model;否则保持 enabled: false
  • **proxy**:访问 Gate 行情需走本机 SOCKS 时,设 proxy.enabled: trueproxy.url 一般为 **socks5h://127.0.0.1:1080**(与 Clash 等本地 SOCKS 端口一致)。本机 Ollama 不会使用该代理
  1. 不要将 config.yaml 提交到公开仓库(内含密钥与 Webhook)。

5. 代理写入 config.yaml(推荐,无需环境变量)

config.yaml 根级增加或修改 **proxy** 段(与 config.example.yaml 一致):

proxy:
  enabled: true
  url: "socks5h://127.0.0.1:1080"

说明:

  • **socks5h://**:配置里可继续写(与 curl 习惯一致)。程序在创建 httpx 客户端时会自动改成 socks5://,因部分环境下 httpx/socksio 不认 socks5h 会报 Unknown scheme;改为 socks5 后由本机解析 DNS 再走 SOCKS。若仍异常,可直接在配置里写 **socks5://127.0.0.1:1080**。
  • 作用范围Gate 行情相关 httpx 请求使用 config.yaml 中的 proxy;企业微信当前实现为直连。不会gemma.ollama_base_url(本机 Ollama)套代理。
  • **proxy.enabled: false:Gate 客户端仍可使用系统环境变量中的 HTTP_PROXY / ALL_PROXYtrust_env=True);启用配置代理后则固定走 proxy.url**,并 trust_env=False,避免与环境变量冲突。

6. PM2 守护进程(推荐)

6.1 安装 PM2

需已安装 Node.js,然后全局安装 PM2

npm install -g pm2

6.2 准备虚拟环境与配置

  1. 项目根目录已创建 .venvpip install -r requirements.txt 完成。
  2. config.yaml 已按上文填写(含 proxyapp.port 等)。
  3. 确保存在目录 **runtime/**(用于日志与 SQLite;首次启动会自动创建亦可)。

6.3 使用仓库内 ecosystem 启动

仓库提供 **deploy/ecosystem.config.cjs**

  • **cwd**:自动设为项目根(deploy 的上一级)。
  • **script**:根据操作系统选择 **.venv/Scripts/python.exeWindows** 或 **.venv/bin/pythonLinux/macOS**。
  • **args**python -m app.main监听地址与端口完全由 config.yamlapp.host / app.port 决定,无需改 ecosystem 里的端口。

在项目根目录执行:

cd /opt/onchain_scout   # 或你的实际路径
pm2 start deploy/ecosystem.config.cjs
pm2 status
pm2 logs onchain-scout

常用维护命令:

命令 说明
pm2 restart onchain-scout 热重启(改 config.yaml 后需重启生效)
pm2 stop onchain-scout 停止
pm2 delete onchain-scout 从进程列表移除
pm2 save 保存当前进程列表
pm2 startup 生成开机自启脚本(按屏幕提示执行一次)

标准输出与错误会写入项目 **runtime/pm2-out.log****runtime/pm2-error.log**(见 ecosystem 内配置)。

6.4 Windows 说明

PowerShellcmd 中同样可使用 pm2 start deploy\ecosystem.config.cjs。若 python.exe 路径不对,请确认虚拟环境目录名为 .venv 且位于项目根。


7. 前台启动(调试用)

不经过 PM2、仅本地调试时,无需再设置 ALL_PROXY 等环境变量(代理已由 config.yamlproxy 段控制):

cd C:\opt\onchain_scout
.\.venv\Scripts\Activate.ps1
python -m app.main

app.host / app.portconfig.yaml 为准。


8. 验证

  1. 代理:本机 SOCKS 入站已监听;config.yamlproxy.enabled: true
  2. Web:浏览器访问 http://127.0.0.1:<app.port>,登录后「监控池配置」JSON 中应出现 **proxy** 字段(enabled / url)。
  3. Gate:等待一个 poll_interval 周期,看日志是否仍有 TLS/连接错误;若有,尝试 socks5 或检查端口。
  4. Ollamagemma.enabled: true 时,访问 127.0.0.1:11434 proxy.url,一般无需 NO_PROXY

9. 常见问题(FAQ

Q1Connection refused 连 Gate / 代理

  • 本机代理未开或端口不是 1080
  • proxy.enabled 未设为 trueproxy.url 写错。

Q2:改了 config.yaml 不生效

  • PM2 下需执行 **pm2 restart onchain-scout** 重新加载进程与配置。

Q3:企业微信推送失败

  • 多为 Webhook 无效;若走代理仍失败,检查代理是否允许访问 qyapi.weixin.qq.com

Q4pip / git 走代理

  • 与应用程序无关;可在安装依赖的终端自行 export HTTPS_PROXY=...不必写进应用 config.yaml)。

10. 备忘

cd /opt/onchain_scout
pm2 start deploy/ecosystem.config.cjs && pm2 save

文档版本:与仓库 onchain_scout_gate 当前结构对应;请以 README.mddeploy/ecosystem.config.cjsapp/main.py 为准。