参考

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 没有 incidentcampaign CLI 资源。从 tiyi alert listtiyi 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)。