配置

RelayCore 的配置来源有四层,优先级为 命令行参数 > 环境变量 > 配置文件 > 内置默认。因此一次性的覆盖不需要改文件,而需要跨命令存活的设置写进 $RELAY_DATA_DIR/config.toml。

relay-core config init 会生成一份带注释的配置文件,relay-core config show 打印生效中的配置(文件值覆盖默认值),relay-core config path 打印文件位置。配置文件写坏了会直接报错,而不是静默回落到默认值——静默忽略一个拼写错误,等于让守护进程用你没有要求的设置运行。

默认数据目录

默认目录为 ~/.relay-core(可通过 RELAY_DATA_DIR 覆盖)。HTTPS 拦截相关文件:

  • ca_cert.pem — CA 证书
  • ca_key.pem — CA 私钥
  • ca_cert.json — CA 元数据(持久化加载所需)

使用 relay-core ca generate 生成证书后,守护进程会从上述路径读取;证书不存在时会在首次启动时自动创建(HTTPS 拦截仍需 ca install 把该 CA 装入系统信任库,纯 HTTP 则不需要)。

同一目录下还有 daemon.db(流量与审计的 SQLite)、daemon.json(发现清单)与日志。CLI 与 MCP 默认共用这份目录;要隔离实验时设置不同的 RELAY_DATA_DIR,或使用 relay-core start --in-memory。

流量保留(retention)

自 0.13.1 起,产品默认最多保留 5000 条流量,且超过 7 天删除(审计事件默认仍不设界)。热数据内存 LRU 约 200 条;落盘仍走 SQLite。可用 MCP clear_flows 或策略里的 retention 立刻清空 / 调整边界;显式把 retention 设成全空表示永不裁剪。

配置文件

# ~/.relay-core/config.toml — 只写需要改的键,其余用内置默认
[daemon]
api_port = 8082        # 控制 API / Web UI 端口(被占则回落到临时端口)
mcp_port = 18083       # MCP 端点端口
mcp = true             # 是否由守护进程服务 MCP 端点
idle_timeout = 0       # 无流量多少秒后停代理;0 = 永不自动关闭
save_stream = ""       # 将每个流量更新以 JSONL 追加到该文件(空 = 不录制)

[proxy]
port = 8080            # 未显式指定监听端口时,start / run 使用的端口

[client]
autostart_daemon = true   # MCP 桥是否可以在没有守护进程时自行拉起一个

[tui]
# theme = "relay"      # relay | slate | high-contrast(TUI 主题,见下文)

环境变量

变量说明
RELAY_DATA_DIR数据目录(默认 ~/.relay-core)
RELAY_CA_CERTCA 证书路径(须与 RELAY_CA_KEY 成对);同时作用于 relay-core 与 relay-core-probe
RELAY_CA_KEYCA 私钥路径(须与 RELAY_CA_CERT 成对)
RUST_LOG日志过滤级别(如 info、debug、trace)。CLI 帮助里写的 RELAY_LOG 目前不会被读取
RELAY_CORE_TUI_THEME--theme 缺省时的 TUI 配色(relay、slate、high-contrast)。见 TUI 主题。
RELAYCORE_UPSTREAM_PASSWORD上游代理 HTTP Basic 认证密码,与 --upstream-auth-user 配合。绝不要通过命令行参数传入密码(会进入 shell 历史)。见 代理模式 § 上游。
RELAY_API_PORT / RELAY_MCP_PORT / RELAY_PROXY_PORT守护进程与代理的端口覆盖(对应 --api-port / --mcp-port / --listen)
RELAY_PROXY_IDLE_TIMEOUT无流量多少秒后停代理;0 表示永不自动停
RELAY_MCP_URL / RELAY_MCP_TOKEN让 MCP 桥直接使用指定端点,而跳过对守护进程的发现
RELAY_MCP_NO_AUTOSTART设为 1 时,MCP 桥不得自行启动守护进程

路径优先级:CLI 参数 > 环境变量 > 默认数据目录。

TUI 主题

TUI 的主题取自上面这份配置文件的 [tui].theme——同一个文件、同一个读取器,因此 relay-core config show 也看得到它。解析顺序:--theme 参数 > RELAY_CORE_TUI_THEME 环境变量 > 文件中的 [tui].theme > 默认(relay)。

CLI 常用参数

relay-core start [options]      # 守护进程 + 代理(幂等)
relay-core run [options]        # 同一个守护进程,前台运行

  -l/--listen <ADDR>     代理监听地址(默认 127.0.0.1:8080)
  --ca-cert <PATH>       CA 证书路径(可选,覆盖默认)
  --ca-key <PATH>        CA 私钥路径(须与 --ca-cert 成对)
  --api-port <PORT>      控制 API / Web UI 端口(被占则回落临时端口)
  --api-token <TOKEN>    Bearer 令牌(守护进程默认自动生成并写入清单)
  --mcp-port <PORT>      由守护进程服务 MCP 端点
  --rules <PATH>         加载规则文件(JSON/YAML)
  --script <PATH>        加载 Deno 脚本
  --script-env-allow      脚本可读取的环境变量名(逗号分隔)
  --ui                   前台守护进程 + TUI(TUI 是它的客户端)
  --theme <NAME>         TUI 配色
  --upstream <URL>       将所有流量路由到上级代理
  --save-stream <PATH>   将每个流量更新以 JSONL 追加到磁盘

生产环境建议

  • 仅本机使用时绑定 127.0.0.1,避免暴露到局域网
  • 启用 --api-port 时配合 --api-token 限制访问
  • 团队共享 CA 时统一 RELAY_DATA_DIR 或显式指定 --ca-cert / --ca-key