你已经确认家里没有公网 IP,也不想为了偶尔联机去租一台服务器。Minexa 的网络页上还有两条不依赖自己服务器的路:STUN 直连和 EasyTier 组网。
它们看起来都是“点一下就能连”,实际前提完全不同。STUN 要求你的网络恰好是少数派;EasyTier 要求每个玩家都装客户端。先弄清代价,再决定要不要折腾。
STUN 只有一种模式:TCP + 全锥形 NAT(NAT1),没有 UDP、没有 TURN、也没有中继。
内置 6 台 STUN 服务器,保活 20 秒、并发上限 128,高级设置一般不用动。
EasyTier 是虚拟局域网,每个玩家都要装客户端,而且只转发 TCP。
两条都走不通就回 FRP;STUN 会把家庭公网 IP 暴露给玩家。
先说结论#
朋友不愿装任何软件,且你的网络是 TCP + 全锥形 NAT:可以试 STUN,但接受它随时可能失败。
固定小圈子,每个人都愿意装 EasyTier:用组网,地址固定,适合长期。
两条都不满足,或者想给不特定的人玩:回到 frp 内网穿透,它更稳,但要一台公网服务器。
三条通道是独立的:FRP、STUN、EasyTier 各有自己的启动/停止按钮。STUN 可以和 FRP 同时开,相当于给玩家准备两个入口;EasyTier 也能同时跑,但它会占用系统 VPN。
NAT 是什么,为什么打洞有时行有时不行#
家里的手机地址通常是 192.168.x.x,这是个内网地址,互联网上没人能直接访问。出门时,路由器会把它换成宽带那一个公网 IP,并记一张表:哪个内网设备用了哪个端口、发给了谁。外面的回包只有对得上这张表,才放进来。
这就是 NAT(网络地址转换,可以理解成小区门卫:里面的人可以出去,外面的人不能随便进来)。
同样是 NAT,不同运营商、不同路由器的“松紧”不一样:
| 类型 | 大白话 | TCP 打洞 |
|---|---|---|
| 全锥形(NAT1) | 出门一次就有个固定门牌,谁都能顺着它找回来 | 有机会 |
| 受限锥形 | 只有你刚联系过的人能回 | 很难 |
| 端口受限锥形 | 连对方端口也要对得上 | 很难 |
| 对称 NAT | 每换一个对象就换一个门牌,外面猜不到 | 基本不行 |
| CGNAT | 你连独立门牌都没有,和邻居共用一个公网 IP | 不行 |
“打洞”就是双方先通过一台第三方服务器知道彼此的公网门牌,然后同时向对方发数据,让两边的 NAT 各开一个口。NAT1 的口开得最松,所以能成;对称 NAT 每换一个目标就换一套映射,打洞基本没戏。
TCP 比 UDP 更难:TCP 有握手状态,时机差一点就失败。Minexa 的 STUN 只能走 TCP——因为 Java 版服务端是 TCP,UDP 打洞再容易也接不上。
网络页没有“NAT 类型”选项,也不会告诉你自己是 NAT1 还是对称 NAT。你只能启动一次,看它成不成。这不是设置漏了,是应用刻意不展示这些名词。
STUN 直连:只有一种模式#
STUN 服务器只做一件事:告诉你“你从公网看长什么样”。Minexa 拿到这个公网 主机:端口 后,在本机对应端口上监听,把进来的连接转给 Minecraft 服务端。
数据不经过 STUN 服务器,它是地址发现,不是中继。所以带宽就是你家宽带的上行,延迟也接近直连;上传带宽被别的东西占满时,人一多照样卡。
限制写得很死:
只支持 TCP。基岩版是 UDP,走不了。
只支持全锥形 NAT(NAT1)。对称 NAT、CGNAT、多数家庭宽带都不行。
没有 UDP、没有 TURN、没有中继。失败就是失败,不会自动换一条路。
内置 6 台 STUN 服务器,都支持 TCP 3478,不需要你填。
会暴露家庭公网 IP。卡片上有一行常驻提示,不是吓唬人。
地址会变。断线重连、换 Wi-Fi、运营商重新分配,端口都可能变。
启动后卡片上会显示「公网直连地址」。地址由运营商分配,不是永久的;如果地址变过,卡片会告诉你变了多少次,提醒你重新发给玩家。
高级设置里有什么#
一般不用动。真要改,先看这张表:
| 设置项 | 默认 | 说明 |
|---|---|---|
| 目标端口 | 跟随服务端端口 | 不勾选时手填,例如 25565 |
| 保活间隔 | 20 秒 | 维持 NAT 映射并检测地址变化,不建议低于 5 秒 |
| 并发上限 | 128 | 超过这个数的连接直接拒绝 |
| 记录连接日志 | 开 | 记录每条入站连接的建立和断开 |
| 启用 PROXY protocol v2 | 关 | 服务端必须自己支持,否则玩家进不来 |
| 自定义 STUN 服务器 | 空 | 留空用内置 6 台;只支持 TCP 3478 的服务器 |
最后一项容易踩坑:网上很多 STUN 服务器只支持 UDP。填进去不会让 STUN 变强,只会让探测失败。
打开它之后,每条入站连接前面都会多写一段以 PROXY 开头的头信息,只有服务端自己会解析,这段头才有意义。原版和多数核心默认不认,握手会直接失败,玩家会直接进不来。不确定服务端支持就保持关闭。
怎么开 STUN#
先启动服务端,等终端出现 Done。服务端没起来,隧道即使启动,玩家连上也没人接。
打开更多 → 网络,找到「STUN 直连」卡。
需要时展开「高级设置」,确认目标端口是“跟随服务端端口”。
点「启动 STUN」,等状态从“启动中”变成“运行中”。
复制「公网直连地址」发给玩家。地址里如果带
tcp://,让玩家去掉,只填主机:端口。玩完点「停止」。停止后地址立即失效。
运行中卡片还会显示三个数字:当前连接、已回收的空连接(连上后一直没发数据)、因超过并发上限被拒的次数。后两个数字一直涨,通常说明有人在扫端口,或者地址被到处转发过。
STUN 和 FRP 可以同时运行,互不影响。一个入口失效,玩家还能试另一个。
STUN 失败了,通常是这几种#
| 提示 | 含义 | 怎么办 |
|---|---|---|
| 本机公网地址是内网/CGNAT 地址 | 运营商没给你独立公网映射 | 换 FRP 或平台隧道 |
| STUN 服务器 TCP 可达但均无响应 | 这些服务器多半只支持 UDP | 换支持 TCP 的自定义服务器 |
| 全部 STUN 服务器均无法连接 | 对称 NAT、CGNAT 或防火墙拦截 | 别再耗,换方案 |
| 无法在映射端口上建立监听 | 端口被占用或系统限制 | 重启应用,换目标端口 |
| 服务端未运行 | 服务端没启动 | 先启动服务端 |
看到前三条,基本可以判断“这条路在你的网络上行不通”,不是配置写错。Minexa 自己也把 STUN 的定位写成“一般优先用 FRP”,因为它成立的条件确实苛刻。
连接是点对点的,玩家能看到你的公网地址。介意这一点,或者不想被扫描,直接用 FRP 或 EasyTier。不要因为“免费”就长期开着 STUN。
EasyTier:组一个虚拟局域网#
EasyTier 换个思路:不把端口暴露到公网,而是让所有设备加入同一个虚拟网络,各自拿到一个 10.126.126.x 的虚拟 IP。服务器把虚拟网络里的 TCP 25566 转发到本机的 Minecraft 端口,玩家连 虚拟IP:25566。
它不需要你租服务器,也不需要公网 IP。代价是:服务器这台手机要装引擎、给 VPN 权限;每个玩家也要装 EasyTier 客户端。
服务器这边要准备什么#
组网引擎。网络页的 EasyTier 卡会检测;没下载时顶部有红色阻塞条「组网引擎未下载,此功能不可用」,点「去下载」到依赖管理页。
网络名。第一次进网络页会自动生成
mc-加 6 位随机字符。名字相同的人才能互相看见。网络密钥。自动生成 32 位十六进制,相当于房间口令。旁边的「换一个密钥」可以重新生成;换完所有玩家都要用新的。
VPN 授权。点「启动组网」时,系统会弹出 VPN 连接请求;拒绝会提示「没有拿到 VPN 授权,组网没有启动」。
等虚拟网卡建立。超过 20 秒没建好会提示启动超时。
不需要 root。应用走的是 Android 标准的 VPN 服务,只在手机内部建一张虚拟网卡。
如果你开着别的 VPN、加速器或代理软件,先关掉再启动组网,否则可能抢不到 VPN 或互相干扰。
地址为什么是 25566#
虚拟网络里的转发端口固定从 25566 开始;如果服务端自己已经占用了 25566,就顺延到 25567。
这个端口和 Minecraft 的 25565 不是一回事:同一台机器上两个监听不能同端口,所以组网单独开一个。玩家连接时照抄应用算出来的地址,不要自己改成 25565。
网络名和密钥在运行中、或引擎未下载时不能改。密钥在界面上是明文显示的,截图、录屏、发群里之前先想清楚。
玩家怎么进来#
把「邀请玩家」页的二维码或整段说明发给对方。对方要做三步:
装客户端:应用商店或官网搜 EasyTier,装官方客户端。Windows、Android、iOS、macOS 都有。
加入同一个网络:网络名和网络密钥必须一模一样,差一个字符都进不来。
在游戏里连地址:客户端显示已连接后,在 Minecraft 里添加服务器,地址填
虚拟IP:25566(或应用显示的 25567)。
邀请页只有那里有二维码;网络页本身没有。二维码的内容和「复制全部说明」是同一段文字,包含网络名、密钥和连接地址。
几个现实问题:
每个玩家都要装。这是它和 FRP 最大的区别,也是它不适合陌生人的原因。
第一次相遇依赖公共节点。节点不可达时,双方进不了同一个虚拟网络,表现为一直连不上。
延迟取决于实际路径。同一城市通常不错,跨运营商、跨国会明显变差。
只转发 TCP。基岩版走 UDP 19132,不能通过 EasyTier 组网进入。
EasyTier 没有账号体系,也没有更细的权限控制。知道网络名和密钥的人都能加入这个虚拟局域网。不要把二维码发到公开群、论坛或视频简介里;泄漏了就点「换一个密钥」,再重新发给朋友。
两者怎么选#
| STUN 直连 | EasyTier 组网 | |
|---|---|---|
| 需要自己的公网服务器 | 不需要 | 不需要 |
| 需要注册账号 | 不需要 | 不需要 |
| 玩家要装客户端 | 不要 | 要 |
| 支持基岩版 UDP | 否 | 否 |
| 成功前提 | TCP + 全锥形 NAT1 + 公网映射 | 引擎可用、双方加入同一网络、VPN 授权 |
| 成功率 | 低,条件缺一不可 | 不保证,取决于 NAT 与公共节点 |
| 地址 | 运营商分配的 主机:端口,会变 | 虚拟 IP:25566,固定 |
| 是否暴露公网 | 暴露家庭 IP | 不暴露公网端口 |
| 稳定性 | 换网、重连即失效 | 取决于节点和双方网络 |
| 适合 | 临时玩、朋友不愿装软件、网络恰好合适 | 固定小圈子、愿意装客户端 |
如果朋友只有一两个、愿意配合装软件,EasyTier 的体验通常比 STUN 稳:地址固定,发一次就够。如果只是今晚玩一次、对方连装个软件都嫌麻烦,先试 STUN;失败就退回局域网或 FRP。
两条都不合适怎么办#
STUN 卡状态是“运行中”,并且显示了「公网直连地址」,格式是
主机:端口。发给玩家的地址里没有
tcp://前缀,只有主机和端口两段。高级设置里「启用 PROXY protocol v2」是关着的。
启动组网后没有出现启动超时的提示,玩家的 EasyTier 客户端里能看到同一个网络名。
玩家连的是应用算出来的
虚拟IP:25566(或 25567),不是25565。点「停止」之后,再连旧地址已经连不上,说明地址确实随隧道失效。