Java 版开服教程联机与网络
自定义域名与 SRV 记录
用易记的地址代替公网 IP,并理解 DNS 解析不会替你完成端口转发
域名能让玩家通过 play.example.com 连接服务器,而不必记住会变化的 IP 地址。它解决的是“名字指向哪里”,不是“服务端端口是否开放”。在改 DNS 之前,先确保玩家已经能通过公网 IP 和端口正常连接。
先决定你需要哪种记录
| 连接方式 | DNS 记录 | 玩家输入 | 适用情况 |
|---|---|---|---|
服务器使用默认端口 25565 | A 或 AAAA | play.example.com | 最简单;域名直接指向公网地址。 |
| 服务端使用自定义端口 | A/AAAA + SRV | play.example.com | 玩家不必手动输入端口。 |
| 地址会变化 | 动态 DNS 或自动更新的 DNS API | 固定域名 | 仍需要让域名及时更新到新地址。 |
A 记录指向 IPv4 地址,AAAA 记录指向 IPv6 地址。SRV 记录用于指定服务、协议、目标主机和端口;Java 客户端会对 Minecraft 服务名查询相应的 SRV 记录,因此可以隐藏非默认端口。1
典型 SRV 结构
假设玩家使用 play.example.com,实际服务器地址是 node.example.com:25570:
| 字段 | 示例 | 含义 |
|---|---|---|
| 服务 | _minecraft | Java 版 Minecraft 服务名。 |
| 协议 | _tcp | Java 版连接使用 TCP。 |
| 名称 | play | 对应玩家输入的子域名。 |
| 优先级 / 权重 | 0 / 0 | 单台服务器通常可保持默认值。 |
| 端口 | 25570 | 实际监听端口。 |
| 目标 | node.example.com | 必须是另一个可解析的主机名,而不是裸 IP。 |
最终记录名通常形如 _minecraft._tcp.play.example.com。不同 DNS 控制台对“主机名”字段的拼接方式不同:有的要求填 _minecraft._tcp.play,有的要求完整域名。提交后用 DNS 查询工具或另一台网络设备验证,不要只看控制台显示“已保存”。1
配置步骤
- 先完成端口转发或托管主机防火墙配置,并用
IP:端口从外网测试成功。 - 创建 A/AAAA 记录,让目标主机名解析到服务器公网地址。
- 如果端口不是
25565,创建 SRV 记录,目标填写上一步的主机名。 - 等待 DNS TTL 生效,再使用手机流量或外部网络通过域名连接。
- 将域名、记录类型、目标和修改日期写进维护记录;下次换主机或改端口时更容易回溯。
常见故障
域名能解析但连不上。 先分开验证:域名是否解析到正确地址、SRV 是否指向正确主机和端口、端口是否真的在公网可达。DNS 成功不代表端口转发或安全组成功。
SRV 目标写成 IP 地址。 很多 DNS 服务商与客户端期望 SRV 目标是主机名。先为目标创建 A/AAAA 记录,再引用该主机名。
同一 Wi‑Fi 测试失败。 某些路由器不支持 NAT 回环。使用真正的外部网络测试,才能覆盖完整的 DNS、路由和端口路径。