跳转至

配置与 ChatEnv

配置层 保存什么 何时生效
ChatEnv / 进程环境变量 根目录、订阅、代理认证、转换器地址 后续 CLI 读取;不会通知运行中的引擎
本地 config.yaml 端口、主机地址、引擎及日志路径 CLI 生成配置、管理服务时使用
clash/config.yaml Mihomo 实际读取的生成配置 启动或显式重载/重启后

字段与优先级

提供者别名和存储目录统一为小写 chatclash。

字段 默认值 / 用途 敏感
CHATCLASH_HOME 未设置时为有效 CHATARCH_HOME 下的 chatclash,通常 ~/.chatarch/chatclash 否
CHATCLASH_SUBSCRIPTION_URL 无;订阅配置生成所需 URL 是
CHATCLASH_PROXY_AUTH 无;user:password,改为 LAN/非 loopback 监听时必需 是
CHATCLASH_SUBCONVERTER_URL 无;可选转换器基础 URL 否,但不要在地址中嵌入秘密

配置优先级为 进程 CHATCLASH_* 环境变量 > 当前 ChatEnv 配置 > 默认值;命令支持的显式参数用于该次操作。根目录支持 ~ 展开。若活动配置已存储 CHATCLASH_HOME,仅改变 CHATARCH_HOME 不会覆盖它。

默认活动文件为 ~/.chatarch/envs/chatclash/.env,命名配置为同目录的 NAME.env。自定义 CHATARCH_HOME 后,ChatEnv 存储根目录随之变化。请通过 ChatEnv 管理,不要将秘密复制到源码仓库或公开文档。

初始化与自动化

首次使用优先交互输入:

chatclash init -i
chatenv cat -t chatclash
chatclash sub status -I

cat 默认脱敏。自动化应由受控的秘密管理工具注入环境变量,再按变量名传入,而不是将值写进命令参数:

chatclash init --url-env CHATCLASH_SUBSCRIPTION_URL --proxy-auth-env CHATCLASH_PROXY_AUTH -I
chatclash sub set --url-env CHATCLASH_SUBSCRIPTION_URL -I

-i 强制交互,-I 禁止提示。--yes 不会补齐缺少的配置或绕过校验。init、sub set、ChatEnv 写入都不会自动重载 Mihomo。

切换与导入配置

chatenv new office -t chatclash -I --yes
chatenv use office -t chatclash -I
chatenv set CHATCLASH_SUBCONVERTER_URL=http://127.0.0.1:25500
chatenv cat -t chatclash

new 建立命名配置,不代表秘密已填好;use 选择当前配置。chatenv set KEY=VALUE 不带 -t。ChatClash 没有 --profile 参数,通过 ChatEnv 选择后再运行 ChatClash。现有 shell 中的同名环境变量仍优先,切换前应清除不再需要的覆盖值。

已有权限受控的 KEY=VALUE 输入可经标准输入导入;不要打印内容或开启 shell 跟踪:

(
  set +x
  chatenv paste --stdin --profile office -I --yes < "$HOME/.chatarch/imports/chatclash.env"
)
chatenv use office -t chatclash -I
chatenv cat -t chatclash

输入文件由操作者安全准备,至少包含所需 CHATCLASH_* 字段;不要提交该文件。省略 --profile office 会写入活动配置。paste 读取整个 KEY=VALUE 流,不是 paste KEY --stdin。提供者发现要求见安装。

目录和初始化边界

默认路径 用途
~/.chatarch/chatclash/config.yaml 本机运行布局与监听参数
~/.chatarch/chatclash/clash/config.yaml 引擎配置,可能包含节点凭证与认证
~/.chatarch/chatclash/bin/mihomo 独立于 Python 环境的引擎
~/.chatarch/chatclash/clash/backups/ 配置备份,同样按秘密保护
~/.chatarch/chatclash/logs/、run/、cache/ 本机运行状态
~/.config/systemd/user/chatclash-mihomo.service 操作系统要求的薄入口;指向 ChatArch 目录

chatclash init --home "$HOME/.chatarch/chatclash-lab" -i 初始化指定目录,并通常将根目录保存到当前 ChatEnv 配置。--local-only 只初始化本地文件,不保存根目录到 ChatEnv:

CHATCLASH_HOME="$HOME/.chatarch/chatclash-lab" chatclash init --local-only -I
CHATCLASH_HOME="$HOME/.chatarch/chatclash-lab" chatclash status -I

后续每次命令必须使用相同根目录;不要误操作默认部署。切换配置或根目录不会迁移文件,也不会改写既有 systemd unit 指向。

监听默认值与安全

项目 默认值
HTTP / SOCKS 端口 7890 / 7891
代理绑定 / 本机连接地址 127.0.0.1 / 127.0.0.1
管理端口 127.0.0.1:9090,默认未设置 controller secret
可选转换器 本地启动默认为 127.0.0.1:25500

端口与主机地址不属于 ChatEnv 字段。新安装的 HTTP/SOCKS 配置为 allow-lan: false 且仅绑定 127.0.0.1。若用 proxy set --bind-host 改为 LAN/非 loopback 而没有认证,生成操作会失败并保留原配置;先通过 ChatEnv 安全地配置 CHATCLASH_PROXY_AUTH,再改绑定。修改代理绑定不会自动限制 controller 绑定:

chatclash proxy set --bind-host 127.0.0.1 --proxy-host 127.0.0.1 -I -y
chatclash proxy validate -I
chatclash mihomo restart -I

先保证已有生成配置与引擎。新生成的 controller 固定为 loopback 127.0.0.1:9090;旧 :9090 或其他外部绑定需刷新生成配置后才会迁移。局域网代理认证不等于 controller 认证。当前 CLI 没有 controller secret/绑定专用参数,不要假设存在,也不要以手工修改生成 YAML 作为长期配置方案。

下一步:运维与安全代理环境变量 · CLI 树。