跳到主要内容

🛜 自托管

自托管在 Minecraft 服务器内启动轻量 HTTP 服务器直接分发资源包。免费、无需外部服务,适合小服和开发环境。带宽不足时不推荐大量玩家使用。

配置

YAML
resource-pack:  delivery:    hosting:      - type: "self"-       ip: "localhost"+       ip: "服务器IP" # 例如 111.222.333.444,或 "auto"        port: 8163        protocol: "http"        # 拒绝非 Minecraft 客户端请求(检查 User-Agent 头)        deny_non_minecraft_request: true        # 生成一次性限时下载链接        one_time_token: true        # 增强 token 和 Minecraft 客户端验证        # 离线模式服务器切勿启用        strict_validation: false        rate_limiting:          max_bandwidth_per_second: 5_000_000   # 总上传上限 5 MB/s          min_download_speed_per_player: 50_000  # 每玩家保障 50 KB/s          qps_per_ip: 5/60                       # 每 IP 每 60 秒 5 次请求

字段参考

字段默认说明
ip"auto"HTTP 服务器绑定 IP。"auto" 通过 Cloudflare trace 自动检测公网 IP。设为 "127.0.0.1""0.0.0.0" 仅本地绑定。
port"auto"HTTP 服务器监听端口。"auto" 共享 Minecraft 服务器端口(注入其 Netty 管线)。设具体数字(如 8163)使用独立端口。
url自动生成设后覆盖自动生成的下载链接,见下方说明。须以 http://https:// 开头,末尾 / 自动补。
protocol"http"自动生成 URL 的协议。设 url 后忽略。
deny_non_minecraft_requesttrue拒绝 User-Agent 不以 Minecraft Java/ 开头的请求。
one_time_tokentrue为每位玩家生成一次性 ?token=,有效期 1 分钟。
strict_validationfalse将 token 绑定到玩家 UUID(通过 X-Minecraft-UUID 头验证)。离线模式服务器切勿启用。
rate_limiting.*基于 IP 的限流。

内外地址不一致时

默认情况下,发给玩家的下载链接由 ipportprotocol 自动拼接:

http://111.222.333.444:8163/download

当内部绑定地址与玩家应使用的地址不同时——反向代理、CDN、VPS 内外 IP 端口不一致——设 url 覆盖:

url: "https://对外实际地址/"

生成 https://对外实际地址/download(可选附带 ?token=...)。两种常见场景:

反向代理 —— nginx、Caddy、HAProxy 前置处理 TLS,转发到内部 HTTP 服务器。

VPS NAT / 端口映射 —— 云服务器内外 IP 和端口不一致。

- type: "self"
ip: "127.0.0.1"
port: 8163
url: "https://对外实际地址/"
deny_non_minecraft_request: false
strict_validation: false
警告

没有有效 SSL 证书时,切勿在 urlprotocol 中使用 https,否则玩家将无法下载资源包。