环境变量参考
本文列出 daemon (futu-opend) / CLI (futucli / futu-mcp) 支持的全部
FUTU_* 环境变量, 用途, 默认值, 与配套 CLI flag.
凭据 (Credentials)
| Env var |
用途 |
默认 |
配套 CLI flag |
FUTU_ACCOUNT |
登录账号 hint。futucli unlock-trade / futu-mcp 未传 --trade-pwd-account 时可用它选择账号级交易密码;部分 helper 脚本也用它启动 daemon |
(按需) |
daemon 请优先用 --login-account <ACCOUNT> |
FUTU_PWD |
登录密码 (明文 / 32-hex MD5 自动判别) |
(必填或用 CLI flag) |
--login-pwd <PWD> |
FUTU_TRADE_PWD |
交易解锁密码 (futucli unlock / MCP unlock) |
(按需) |
--trade-pwd <PWD> |
FUTU_TRADE_PWD_ACCOUNT |
账号级交易密码 keychain lookup 的账号 hint |
(按需) |
--trade-pwd-account <ACCOUNT> |
FUTU_MCP_API_KEY |
futu-mcp --keys-file scope 模式的进程级 API key;也可作为工具调用默认 key |
(scope 模式必填或 per-call 传入) |
futu-mcp --api-key <KEY> |
安全提示: 推荐用 systemd EnvironmentFile=/etc/futu-opend.env (mode 0600)
传, 不在 shell history / ps aux 暴露明文.
连接地址 (Connection)
| Env var |
用途 |
默认 |
FUTU_GATEWAY |
MCP / futucli 连 daemon 的 gRPC 地址 |
127.0.0.1:11111 |
FUTU_REST_URL |
futucli 连 daemon 的 REST URL |
http://127.0.0.1:11112 |
FUTU_ADDR |
examples/live_test 用的 daemon 地址 |
127.0.0.1:11111 |
浏览器入口 / Metrics 安全
| Env var |
用途 |
默认 |
FUTU_REST_ALLOWED_ORIGINS |
REST CORS Origin allowlist, 逗号分隔;* / any / all 表示开发用 wildcard |
已配置 REST key 时只允许 loopback;legacy unauth 模式保持 wildcard 兼容 |
FUTU_WS_ALLOWED_ORIGINS |
WebSocket handshake Origin allowlist, 逗号分隔 |
未设置时只允许 loopback Origin;非浏览器客户端无 Origin 时不走此检查 |
FUTU_METRICS_PUBLIC=1 |
/metrics 回退为公开访问并保留明文 key_id label |
默认按 auth posture 保护 /metrics,且 metrics 中 key_id redacted |
生产建议:
- Browser UI 场景显式配置 exact origin,例如
https://app.example.com。
FUTU_METRICS_PUBLIC=1 只建议在 metrics 端口由防火墙 / sidecar 严格保护时使用。
长跑 daemon 加固 (Long-running hardening, v1.4.103+)
兼容 env opt-in, default OFF。也可以用 futu-opend
--client-sig-proactive-refresh / --client-sig-reactive-refresh 或 TOML
client_sig_proactive_refresh = true / client_sig_reactive_refresh = true
打开。详细见
长跑 daemon 部署指南.
| Env var |
用途 |
默认 |
风险 |
FUTU_CLIENT_SIG_PROACTIVE_REFRESH=1 |
在 client_sig 失效前 1h 主动调 refresh |
OFF |
低 — 单次 refresh 行为;请先用非关键账户验证服务端接受度 |
FUTU_CLIENT_SIG_REACTIVE_REFRESH=1 |
tcp_login 持续失败 (≥3 次) 时反应式 refresh |
OFF |
中 — ret_type=15 含义不止 client_sig 失效 (含反刷限流 / 风控), 多账号 daemon 误 refresh 可能影响其他账号; 单账号场景安全 |
FUTU_QOT_RELOGIN_BACKOFF_MS |
QOT login health 自愈 ladder, 4 个毫秒值: fail0,fail1,fail2,fail3+ |
60000,120000,240000,600000 |
中 — 只给真机验证 / 长跑排障调短;生产不建议频繁 relogin |
何时切 default ON: 需要足够的真实部署样本证明这两个开关不会触发额外限流或风控。
当前仍是 experimental opt-in。
客户端 (CLI / SDK / MCP)
| Env var |
用途 |
默认 |
FUTU_CLI_AUTO_IDEM=1 |
futucli 自动派生 idempotency_key (基于参数 hash) — place-order/modify/cancel |
OFF |
FUTU_UPDATE_CHECK_URL |
futucli version --check / futucli doctor 更新检查的 version.json URL 覆盖 |
未设置时用 https://futuapi.com/version.json;入口不可用、非 2xx 或 schema 不兼容时 fail closed |
行情配额调试
| Env var |
用途 |
默认 |
FUTU_HISTORY_KL_QUOTA_MAX |
覆盖本进程历史 K 线 quota 周期内可请求的唯一 stock 数上限;未设置时跟随账号动态额度 |
未设置(冷启动回退 100) |
FUTU_HISTORY_KL_QUOTA_PERIOD_SECS |
历史 K 线 quota 周期长度 (秒) |
604800 (7 天) |
说明:历史 K 线总额度优先使用登录后 CMD6024 返回的账号动态额度(例如官方 OpenD UI 展示的历史 K 线额度)。FUTU_HISTORY_KL_QUOTA_MAX 只用于显式覆盖 / 压测 / 调试;冷启动且尚未拿到动态额度时会先按 C++ 默认值 100 fail-closed。
交易诊断
| Env var |
用途 |
默认 |
FUTU_HISTORY_ORDER_AUDIT=1 |
打开 history-orders backend row 过滤 / 投影审计日志,用于排查 Rust 与官方 C++ history order 数量或字段差异 |
OFF |
测试 / Chaos engineering
| Env var |
用途 |
默认 |
FUTU_E2E_SIM_ACC |
E2E 测试用 sim 账号 |
(test-only) |
FUTU_E2E_SIM_PWD |
E2E 测试用 sim 密码 |
(test-only) |
FUTU_E2E_SIM_PLATFORM |
E2E 测试 platform (futunn / moomoo) |
futunn |
FUTU_CHAOS_ENABLE=1 |
chaos test 故障注入开关 |
OFF |
FUTU_MULTI_VERSION_GUARD_STRICT=1 |
multi_version_smoke.sh 严格模式 (binary fingerprint diff 命中 → exit 1) |
(ship.sh A9 自动设) |
| Env var |
用途 |
FUTU_MULTI_VERSION_GUARD_STRICT=1 |
A9 stage 强设, ship-blocker fail 阻塞发版 |
FUTU_MV_CACHE_DIR |
scripts/multi_version_smoke.sh 下载历史二进制的缓存目录 |
| Env var |
用途 |
默认 |
FUTU_OPEND_RS_GIT_SHA |
覆盖编译进 device_alias / 版本诊断里的 git SHA |
build script 自动读取 git rev-parse --short HEAD |
命名约定
FUTU_<SUBSYSTEM>_<FEATURE>_<ACTION>=<VALUE>:
FUTU_ prefix — 所有 daemon / CLI / SDK 共享 namespace
- subsystem:
CLIENT_SIG / TRADE / CLI / E2E / CHAOS 等
- feature/action: 描述功能本身, 不暴露内部编号 (例如不用
INTERNAL_123, 而用 PROACTIVE_REFRESH 描述行为)
- value: 一律
1 = enable, 其他 / unset = disable
与 CLI flag 的关系
CLI flag 优先级 > env var > 配置文件 > 内置默认. 同时存在时 CLI flag wins.
例: FUTU_PWD=foo futu-opend --login-pwd bar → 用 bar (CLI flag).