配置
服务端配置
服务端必填字段、默认值与校验规则。
概览
服务端使用 TOML 配置。文件和命令行合并后必须具备全部必填值,未知字段及错误类型会被拒绝。listen 和 udp_listen 使用数字 IP:port 地址,需要 IPv6 时采用带方括号的形式;dest 为 host:port。下表覆盖服务端顶层字段,performance 表单独在参考章节说明。
详细说明
private_key 和 mldsa_seed 必须分别从 base64 解码为准确的 32 字节。真实部署不能使用文档中的占位字符串。short_ids 至少有一个条目;每项是偶数长度的十六进制字符串,编码零到八字节,解析器允许空字符串。max_time_diff 支持 ms、s、m、h 后缀或不带后缀的秒数,但最终时长至少是一秒。
服务端模板
listen = "0.0.0.0:443"
private_key = "<X25519_PRIVATE_BASE64>"
short_ids = ["<SHORT_ID_HEX>"]
dest = "cover.example:443"
server_names = ["cover.example"]
max_time_diff = "120s"
mldsa_seed = "<MLDSA_SEED_BASE64>"| 字段 | 默认值 / 要求 | 含义 |
|---|---|---|
listen | 必填 | TCP 数字监听地址 |
udp_listen | — | 可选 QUIC UDP 地址;省略即关闭 |
private_key | 必填 | X25519 私钥,base64 解码为准确32字节 |
short_ids | 必填 | 非空十六进制 ID 列表;每项0–8字节 |
dest | 必填 | 真实回落目标,host:port |
server_names | 必填 | 非空的允许 SNI 列表 |
max_time_diff | 必填 | 允许的时间戳偏差,至少1秒 |
mldsa_seed | 必填 | ML-DSA 签名种子,base64 解码为32字节 |
prebuild | true | 周期刷新目标;启动探测始终执行 |
padding_scheme | "default" | 内层填充策略 |
tcp_evasion | "segment" | ClientHello 有序分块写入策略 |
验证与边界
server_names 不能为空;各项必须通过长度受限、ASCII、无空白的语法校验。运行时仍需选择与真实目标一致的有意义 SNI,语法有效不代表目标可用。启动探测始终执行。命令行使用 --udp-listen 等连字符选项覆盖文件,省略的选项保留文件值。私密字段建议放在受保护文件中,避免出现在 shell 历史或进程参数里。