如何将域名连接到 Minecraft 服务器
本页内容
把一个原始 IP 地址如 203.0.113.10:25571 交给朋友是可行的,但它难看、容易打错,而且在你的 IP 变更的那天就会失效。自定义域名解决了这三个问题:玩家改为通过 play.yourname.com 加入,而你可以在幕后迁移服务器,谁都不用重新输入任何东西。
这里涉及两种 DNS 记录,二者的区别正是人们卡住的全部原因:A record 把一个名称指向 IP 但保留端口,而 SRV record 隐藏端口,让玩家只需输入域名。本指南逐步介绍两者,以及如何测试它们,还有一个如果你宁愿完全跳过 DNS 时的简便捷径。
为什么要把域名指向你的服务器?
一旦你的服务器搭好——无论你是按照我们的制作 Minecraft 服务器指南操作,还是租用了一台——地址就是最后一处粗糙的边角。域名以比初看更重要的方式把它打磨光滑:
- 它便于记忆。
play.yourname.com是人们真正能记住并分享的东西。末尾带端口的 IP 则不是。 - 它经得起 IP 变更。 家庭连接和某些托管套餐会时不时分配新的 IP。有了域名,你只需更新一条 DNS 记录,每位玩家都继续使用同一个地址。
- 它隐藏你的真实 IP。 配置得当时,玩家看到的是域名,而不是其背后的机器——当你宁愿不公开家庭 IP 地址时很有用。
- 它看起来像一个真正的社区。 一个干净的地址是「某个朋友的服务器」和一个人们认真对待的地方之间的区别。
域名不会改变服务器的运行方式——它纯粹是玩家输入的地址。你仍然要以同样的方式为机器配置规格;如果你不确定,我们的 RAM 指南涵盖了这一点。
A record 与 SRV record:带端口和不带端口
这部分值得读两遍,因为它决定了你的玩家是否还得再输入 :25565。
A record 把一个名称映射到一个 IP 地址,仅此而已。当有人连接到 play.yourname.com 时,Minecraft 会查找 A record,得到 IP,然后尝试默认端口 25565。因此单靠 A record 只有在你的服务器运行于 25565 时才够用。自建服务器通常是这样。而多数租用服务器不是——它们共享一台机器并获得像 25571 这样的端口,所以玩家仍然得输入 play.yourname.com:25571。
SRV record 正好解决这个问题。它是一种特殊的 DNS 记录,把服务、协议和端口一起发布,因此客户端自行得知要使用哪个端口。设置好一条,玩家就只需输入 play.yourname.com——无需端口,无论服务器实际运行在哪个端口上。
| 记录 | 玩家输入什么 | 何时使用 |
|---|---|---|
| 仅 A record | play.yourname.com(可用)或 play.yourname.com:PORT | 你的服务器运行在默认端口 25565 |
| A record + SRV record | play.yourname.com | 你的服务器运行在任意非默认端口(多数租用服务器) |
第 1 步:创建 A record
A record 是基础——SRV record 会指向它。你会在管理你域名 DNS 的地方进行操作:你的注册商,或像 Cloudflare 这样的 DNS 提供商(免费,也是我们这里使用的示例)。各处的字段都是一样的。
- 找到你服务器的 IP。自建并要公开?那就是你的公网 IP(搜索「what is my IP」)。在租用服务器上,IP 在你面板的连接详情里。
- 打开你的 DNS 控制台。登录托管该域名 DNS 的提供商,打开你域名的 DNS 记录页面。
- 添加一条 A record。用这些值创建一条新记录:
Type: A Name: play (this becomes play.yourname.com) Value: 203.0.113.10 (your server IP) TTL: Auto
如果你想让裸域名(yourname.com)而不是子域名指向服务器,就用@作为名称。 - 关闭代理。在 Cloudflare 上,点击记录旁边的橙色云朵使其变为灰色(「DNS only」)。该代理是为网站设计的,会破坏 Minecraft 连接——这是最常见的一个错误。
- 保存并稍等片刻。在现代提供商上,DNS 更改通常在一两分钟内生效,尽管有时会更久。在 Minecraft 中连接
play.yourname.com进行测试。如果服务器在端口 25565 上,你就已经完成了;如果它要求端口,就继续设置 SRV record。
第 2 步:添加 SRV record 以去掉端口
SRV record 告诉 Minecraft 该使用哪个端口,因此玩家永远不用输入它。它的字段比 A record 多,但其中只有两个会因服务器而变:端口和目标。
| 字段 | 值 | 备注 |
|---|---|---|
| Type | SRV | |
| Service | _minecraft | 始终是这个,带下划线 |
| Protocol | _tcp | Java 使用 TCP |
| Name | play | 玩家将输入的子域名;裸域名用 @ |
| Priority | 0 | |
| Weight | 5 | |
| Port | 25571 | 你服务器的真实端口,来自面板 |
| Target | play.yourname.com | 拥有第 1 步 A record 的那个名称 |
有些提供商把最后四项合并到一个「content」或「value」字段里。那样的话,记录看起来是这样的,名称设为 _minecraft._tcp.play:
_minecraft._tcp.play SRV 0 5 25571 play.yourname.com
从左到右读,那就是优先级、权重、端口、目标。保存它,给它一分钟,然后仅用 play.yourname.com 重新连接——无需端口。
用一次快速查询确认它有效
在你告诉所有人新地址之前,先确认记录已解析。在任意电脑上,打开终端并运行一次 SRV 查询——这会直接询问 DNS,并向你展示它将交给 Minecraft 的端口和目标:
nslookup -type=srv _minecraft._tcp.play.yourname.com

没有回应?记录尚未传播,或者名称稍有偏差——仔细核对 _minecraft._tcp 前缀和目标。
跳过 DNS 设置——HytHost Minecraft 服务器开箱即带一个免费、已指向的子域名和 DDoS 防护。
查看 Minecraft 套餐Bedrock,以及为什么它仍然要求端口
Bedrock Edition 不一样。 Bedrock 服务器使用 UDP 端口 19132,而 Bedrock 客户端不读取 Java 使用的 _minecraft._tcp SRV record。你仍然可以把一条 A record 指向服务器,让玩家输入域名,但 Bedrock 在 Add Server 界面上有一个单独的「Port」字段供他们输入端口——没有像 Java 那样隐藏它的 SRV 技巧。关于主机和移动端玩家如何跨平台连接,请参阅我们的 Bedrock 服务器指南。
如果 Java 连接仍然失败或仍然要求端口,几乎总是以下之一:
- SRV record 尚未传播。再给它一些时间,反复运行上面的
nslookup,直到它返回端口和目标。 - Cloudflare 代理开着。 A record 必须是灰色云朵(「DNS only」)。橙色云朵会悄悄破坏游戏连接。
- SRV record 中的端口错了。它必须与你服务器监听的确切端口一致——从面板复制它,不要猜。
- 目标指向了错误的名称。 SRV 目标必须是一个拥有解析到 IP 的 A record 的名称——而不是 IP 本身。
- 你在测试旧缓存。完全重启 Minecraft 客户端;它会在本次会话中缓存 DNS。
捷径:一个免费的、已配置好的子域名
如果 DNS 记录不是你想用来消磨夜晚的方式,托管套餐会让这不成问题。在 HytHost Minecraft 服务器上,你可以获得一个像 play.yourname.hythost.com 这样的免费子域名,它已指向你的服务器且端口已处理妥当——玩家输入它就能连接,无需 A record,无需 SRV record,无需测试。
更喜欢用自己的域名?你仍然可以用。像第 1 步那样把一条 A record 指向你服务器的 IP,为端口添加 SRV record,你就设置好了——如果你卡住了,live chat 支持在早上 8 点至晚上 11 点(基希讷乌时间)可用,与你一起过一遍这些记录。无论哪种方式,你还会在地址前面获得 Voxility DDoS 防护,因此公开它不会给你的连接招来攻击目标。
常见问题解答
不需要。服务器用它的原始 IP 地址和端口就能很好地运行——域名纯粹是为了方便。它为玩家提供一个便于记忆的地址,在你 IP 变更时保持该地址可用,并让你用 SRV record 隐藏端口。如果你只是和几个朋友在默认端口上玩,仅用 IP 就足够了。
因为你只添加了 A record,而你的服务器运行在 25565 以外的端口上。A record 把名称指向 IP,但把尝试默认端口的事留给 Minecraft。要让玩家无需输入端口即可连接,请添加一条发布你真实端口的 SRV record(_minecraft._tcp)——客户端随后会自动找到它。
A record 把一个主机名映射到一个 IP 地址。SRV record 更进一步,为该主机名发布服务、协议和端口。对 Minecraft 来说你几乎总是两者都创建:A record 让名称解析到你的服务器,SRV record 让玩家不必输入端口。
在现代 DNS 提供商上通常一两分钟,偶尔在更改于互联网上传播时会更久。如果一条新记录未解析,每隔几分钟重新运行 nslookup -type=srv _minecraft._tcp.play.yourname.com,直到它返回端口和目标,并完全重启你的 Minecraft 客户端,使其不使用缓存的查询结果。
部分可以。你可以把一条 A record 指向 Bedrock 服务器,让玩家输入域名而不是 IP,但 Bedrock 使用 UDP 端口 19132,其客户端不读取 _minecraft._tcp SRV record,所以没有办法像 Java 那样隐藏端口——玩家在单独的 Port 字段中输入它。关于跨平台游玩的细节,请参阅我们的 Bedrock 指南。
你会获得一个免费子域名——类似 play.yourname.hythost.com——已指向你的服务器且端口已处理,因此完全无需 DNS 设置。你也可以自由地改用自己的域名:像上面所示添加 A 和 SRV 记录,如果某条记录不配合,支持可以提供帮助。
想要干净的地址却不做 DNS 功课?
HytHost Minecraft 服务器开箱即带一个已指向、端口已处理的免费子域名——或者带上你自己的域名,我们会帮你设置记录。无论哪种方式都包含 DDoS 防护。
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours