跳到主要内容

配置参考

Prism 支持 TOML(prism.toml)与 YAML(prism.yaml / prism.yml)配置。

仓库根目录提供 JSON Schema,用于编辑器校验与补全:

  • prism.schema.json

顶层字段

listeners(数组)

公网代理监听器。

每个 listener 包含:

  • listen_addr(必填):绑定地址(例如 :25565
  • protocoltcp(默认)或 udp
  • upstream
    • TCP:为空/省略表示按域名路由;非空表示固定转发
    • UDP:必填(始终固定转发)

routes(数组)

按顺序匹配的域名路由(第一个匹配生效)。

每个 route 支持:

  • host / hosts:域名模式,支持 * / ? 通配
  • upstream / upstreams(别名:backend / backends
  • strategysequential(默认)、randomround-robin
  • parsers:解析器链(默认 [minecraft_handshake, tls_sni]
  • cache_ping_ttl:缓存 Minecraft status(60s500ms-1

admin_addr(字符串)

管理 HTTP 服务监听地址。

  • 例如 :8080
  • 设为空字符串会禁用管理服务。

logging(对象)

  • leveldebug | info | warn | error
  • formatjson | text
  • outputstderr | stdout | discard | 文件路径
  • add_source:是否包含源码文件/行号

reload(对象)

自动重载监控(仅文件型 provider):

  • enabled(默认 true
  • poll_interval_ms(默认 1000

timeouts(对象)

  • handshake_timeout_ms(默认 3000
  • idle_timeout_ms(默认 0,禁用)

proxy_protocol_v2(布尔)

是否在 TCP 上游连接中注入 HAProxy PROXY protocol v2 头部,用于在后端保留真实客户端地址。

buffer_size(整数)

代理转发使用的 buffer 大小(字节)。

  • 0 表示使用默认值。

upstream_dial_timeout_ms(整数)

连接上游的拨号超时时间(毫秒)。

  • 0 表示使用默认值。

max_header_bytes(整数)

用于路由判断时最多读取/窥探的字节数(握手/SNI 等)。

  • 0 表示使用默认值。

tunnel(对象)

反向连接隧道模式(client → server)。

  • auth_token:可选共享密钥
  • auto_listen_services:是否允许服务通过 remote_addr 请求自动开放端口
  • endpoints:server 监听端点
  • client:可选 client 角色
  • services:client 注册的服务

完整示例可参考仓库中的 prism.example.toml / prism.example.yaml

完整 schema

如需精确字段类型、默认值与校验规则,请以 prism.schema.json 为准。