CLI 参考
tiyi CLI 是驱动 UI 的同一个 ConnectRPC API 的瘦客户端。本页按资源整理当前 v3.5.3 运维命令;示例只列常用 flag。写入前请运行 tiyi <command> --help,并以已安装二进制为准。
鉴权模式
CLI 用两种方式之一与太一通信。本地命令不需要 token;远程命令需要 API URL 与一个 JWT。
| 模式 | flag | 鉴权 | 使用场景 |
|---|---|---|---|
| 本地管理 socket | (默认) | Unix socket 上的 OS 文件权限 | 跑在与 tiyi run 同一主机上。 |
| 远程 | --api URL --token JWT |
Authorization: Bearer header 中的 HS256 JWT |
从工作站或 CI runner 操作。 |
从用户名/密码取一个 JWT:
$ tiyi auth login --api http://controller:8080 --username admin
# 输入密码,打印 JWT,可选写入 ~/.config/tiyi/credentials
诊断
在安装前后都可以在目标主机上运行 tiyi doctor,它默认不会修改系统,只高亮提示配置加载错误、systemd 可用性、sudo PATH 问题、已安装服务的状态目录所有权问题,以及 API / 仪表盘与代理端口的监听占用。如果还没有安装 systemd unit,状态目录所有权检查会跳过,除非传入 --service-user/--service-group 或显式请求修复。状态目录修复必须显式执行且需要 root:sudo tiyi doctor --fix-state-ownership。
$ tiyi doctor
$ tiyi doctor --mode agent
$ tiyi doctor --proxy-http-addr :8180 --proxy-https-addr :18443
$ sudo tiyi doctor --fix-state-ownership
声明式 apply
kubectl 风格入口。一份 YAML、一条命令、一行审计:
$ tiyi apply -f site.yaml
# 预览 apply、显示按资源 diff、提示确认、最后真正 apply
与 UI 用同一个验证器和写入器。带 --yes 跳过提示。一个文件中的多个资源按依赖顺序 apply。
站点
tiyi site list
tiyi site get <name|id>
tiyi site create --name N --host H --upstream-url URL [--tls none|managed-acme|uploaded] [--tls-http-behavior redirect|acme-only|serve-both]
tiyi site update <id> [...flag]
tiyi site enable <id>
tiyi site disable <id>
tiyi site delete <id>
tiyi site routing get <id>
tiyi site routing set <id> --route /api=UPSTREAM_ID --unmatched default|404
tiyi site policy-override get <id>
tiyi site policy-override set <id> [--blocking-pl N --inbound-threshold N ...]
tiyi site policy-override delete <id>
上游
tiyi upstream list
tiyi upstream get <name|id>
tiyi upstream create --name N --endpoint-url URL [--endpoint-url URL2 ...]
tiyi upstream update <id> [...flag]
tiyi upstream delete <id> # 若任何站点引用,拒绝(UPSTREAM_IN_USE)
证书
tiyi cert list
tiyi cert get <id>
tiyi cert upload --name N --cert-pem FILE --key-pem FILE
tiyi cert issue DOMAIN --email E [--challenge-type http-01|dns-01] [--acme-issuer letsencrypt|letsencrypt-staging|custom] [--directory-url URL]
tiyi cert renew <id>
tiyi cert delete <id>
tiyi cert dns-provider drivers
tiyi cert dns-provider list
tiyi cert dns-provider create --name N --provider cloudflare --credentials-file F
tiyi cert dns-provider get <id>
tiyi cert dns-provider update <id>
tiyi cert dns-provider delete <id>
DNS provider 优先用 --credentials-file,不要用 --credentials-json。文件路径不会进入 shell 历史与进程列表。
WAF 策略
tiyi policy list
tiyi policy get <id>
tiyi policy templates
tiyi policy create-from-template --name N --template-id TEMPLATE_ID
tiyi policy create --name N [--engine-state on|detection-only|off]
tiyi policy update <id> [...layer flag]
tiyi policy delete <id>
tiyi policy preview-seclang <id> # 编译后的 SecLang
tiyi policy preview-impact <id> [--crs-ruleset-id R]
tiyi policy test <id> --url /login --method POST
tiyi policy versions <id> # 列出已保存版本
tiyi policy diff <left-version-id> <right-version-id>
tiyi policy rollback <id> --version-id REV
规则覆盖、自定义规则、IP 列表
tiyi rule override upsert <policy-id> --crs-rule-id N --action default|disable|log_only|score_override [--site-id S] [--scope /api]
tiyi rule override delete <override-id>
tiyi rule custom create <policy-id> --name N --rule-id 8000001 --seclang-file FILE
tiyi rule custom delete <custom-rule-id>
tiyi rule ip-list create --kind allow|deny|monitor --name N --entry 203.0.113.0/24
tiyi rule ip-list add-entry <id> --entry 198.51.100.0/24
tiyi policy bind-ip-list <policy-id> --ip-list-id <id> --decision allow|deny|monitor
tiyi rule rate-limit upsert --policy-id P --path-pattern /login --per-minute 60 --action block
CRS 目录
tiyi crs ingest --tag v4.25.0 # 从上游抓取 release
tiyi crs ingest --archive FILE # 离线归档导入
tiyi crs releases # 列出可用上游 tag
tiyi crs list # 已安装 CRS 规则集
tiyi crs rules <ruleset-id> --paranoia-level 1 --tag attack-sqli
tiyi crs rule <ruleset-id> <rule-id>
tiyi crs plugins
tiyi crs plugin-schema <plugin-id>
节点
tiyi agents list
tiyi agents get <id>
tiyi agents issue-token [--tag edge] [--ttl-seconds 86400]
tiyi agents install-script --controller-url URL --enrollment-token TOKEN
tiyi agents bundles [agent-id]
tiyi agents bundle <bundle-id>
tiyi agent-group list
tiyi agent-group get <id>
tiyi agent-group create --name N --tag role=edge
tiyi agent-group delete <id>
信任配置
tiyi trust show
tiyi trust set --proxy 10.0.0.0/8 --proxy 172.16.0.0/12 --header X-Forwarded-For
tiyi trust set --cdn cloudflare --header CF-Connecting-IP --header X-Forwarded-For
tiyi trust reset
tiyi trust test --peer 10.0.0.5 --header "X-Forwarded-For: 1.2.3.4"
tiyi trust refresh cloudflare
告警
tiyi alert list
tiyi alert get <id>
tiyi alert ack <id> [--note TEXT]
tiyi alert notes <id>
tiyi alert resolve <id> [--note TEXT]
tiyi alert rule list
tiyi alert rule upsert --name N --expression-json JSON
tiyi alert channel list
tiyi alert channel upsert --name N --kind webhook|slack|pagerduty|feishu|wecom|email --config-json JSON
tiyi alert channel test <id>
日志
tiyi log security list [--site-id S] [--client-ip-cidr CIDR] [--rule-id N] [--start T] [--end T]
tiyi log security get <event-id>
tiyi log security export --site-id S --out F
tiyi log access list [...过滤器]
tiyi log error list [...过滤器]
tiyi log tail-security # 实时流
SecurityFact 调查
v3.5.3 没有 incident 或 campaign CLI 资源。从 tiyi alert list 或 tiyi log security list 开始,再按 --unique-id、站点、规则、客户端 CIDR 与时间窗口筛选,并在 UI 中关联匹配的攻击、访问和运行时错误日志。
审计链
tiyi audit list [--actor-id UUID] [--action ACTION] [--start T] [--end T]
tiyi audit get <id>
tiyi audit verify # 走完整条链并报告每一段
系统
tiyi system stats
tiyi system traffic --window 1h
tiyi system attack-distribution --window 1h
tiyi system top-attackers --window 1h
tiyi system settings get
tiyi system settings update --set siem.enabled=true
tiyi system settings update --set siem.endpoint=tcp://siem.internal:514 --set siem.filter.include_audit=true
日志与证据策略是带 revision CAS 的 LogService 资源,请在系统管理 → 设置 → 日志与证据管理;旧 telemetry.*、logsink.*、log_mode.* 与 log_retention 设置会被拒绝。
发布(滚动节点升级)
tiyi release import --tarball ./tiyi_3.5.2_linux_amd64.tar.gz
tiyi release list
tiyi release apply <release-id> # 把 APPLY_BINARY 散到所有匹配的节点
tiyi release apply <release-id> --agent-id A --agent-id B
tiyi release runs
tiyi release run-get <run-id>
tiyi release run-cancel <run-id>
tiyi release rollback
tiyi release check-updates
用户与角色
tiyi user list
tiyi user create --username U --password P --role-id R
tiyi user reset-password <id> --password P
tiyi user lock <id>
tiyi user unlock <id>
tiyi role list
tiyi role get <id>
Controller 与 Agent 进程
tiyi run # 完整可写 Controller + 本机数据平面
tiyi install --mode agent --unit-name tiyi-agent --now # Agent systemd 服务;读取 /etc/tiyi/tiyi-agent.env
tiyi agent --controller-url http://controller:8080 --enrollment-token <一次性-token> # 前台 Agent
tiyi dashboard # 仅 UI 进程
退出码
| 码 | 含义 |
|---|---|
0 | 成功。 |
1 | 通用错误。输出说明。 |
2 | 使用方法 / flag 解析错误。 |
3 | 需要鉴权或 token 被拒绝。 |
4 | 资源未找到。 |
5 | 前置条件失败(例如版本冲突、UPSTREAM_IN_USE)。 |