Minecraft联机:IPv6直连和FRP内网穿透怎么选?实操指南
周末约好友联机 Minecraft一个用 PCL2一个用 HMCL都是身边最常见的启动器。原本以为启动器一样、版本一样填上 IP 就能进。结果客户端一直卡在“连接中”最后直接超时。群里有人建议用 FRP 做内网穿透也有人说你宽带都有 IPv6 了为什么还要绕一台服务器这个问题很典型但回答起来并不简单。PCL2 和 HMCL 只是启动器它们负责把游戏跑起来并不负责打通两地之间的网络。联机能不能成功取决于你开出去的服务器端口能不能被对端访问到。FRP 是解决内网穿透的通用方案IPv6 则是近些年运营商逐步普及后出现的新直连条件。两者解决的问题有重叠但适用环境和运维成本完全不同。我从自己的实际体验出发在电信、联通、移动热点之间做过几轮测试。核心结论是IPv6 确实能在不少场景下省掉 FRP但“有 IPv6”和“对方能连进来”是两回事。跨网环境下光猫防火墙、路由器策略、Windows 防火墙、临时地址变化随便一个环节出问题IPv6 直连就失效。更稳妥的做法不是二选一而是先把 IPv6 直连测一遍不行再让 FRP 兜底。1. 别把“启动器”和“网络链路”混为一谈1.1 PCL2 和 HMCL 在联机里的真实角色很多人对 PCL2、HMCL 有直觉上的误解以为“用同一个启动器”就等于在同一个局域网。实际上PCL2 和 HMCL 解决的是客户端管理问题下载游戏版本、安装整合包、管理模组、登录账号、调整 JVM 参数。联机时它们只负责让两个人都能启动同一个游戏环境。真正决定连接能否建立的是 Minecraft 的服务端进程。你可以用单人世界里的“对局域网开放”功能也可以用独立服务端软件。服务端在某个端口监听客户端拿 IP 加端口去连接这个过程和启动器是什么品牌没有直接关系。所以异地联机的第一步是先把“用 PCL2 启动”和“开了一个可被连接的服务”区分开。否则你会陷入一个误区明明两边都能正常进单人游戏却始终无法联机最后怀疑是启动器不兼容。1.2 一次联机请求到底要经过哪几道关卡联机数据从客户端发给服务端中间至少经过三层第一层是服务端监听。Minecraft 服务端必须正确绑定到需要监听的端口默认是 25565。如果服务端只监听了 IPv4你给对方一个 IPv6 地址就没有意义。第二层是路由可达性。客户端和服务端之间需要有路由路径。IPv4 场景下家庭宽带多数没有公网 IPv4数据包进不了家里的 NAT所以需要端口映射或者内网穿透。IPv6 场景下只要两边都有公网 IPv6 地址理论上可以点对点直连但前提是沿途路由和防火墙愿意放行。第三层是防火墙策略。Windows 自带防火墙、第三方安全软件、光猫防火墙、路由器防火墙任何一层丢弃入站数据包游戏连接就会超时。很多人联机失败问题不在 Minecraft而是第二、第三层没有打通。PCL2 和 HMCL 只是启动器它们改变不了这一层的任何配置。1.3 为什么很多人第一反应是 FRP 而不是 IPv6过去很长一段时间家庭宽带的默认方案是 IPv4 加 CGNAT。运营商的公网 IPv4 地址有限家宽用户拿到的基本都是内网地址。这种情况下端口映射不可用FRP 这类内网穿透工具几乎是唯一选项。FRP 的逻辑很简单用一个有公网 IP 的云服务器做中转家里电脑主动连上云服务器玩家再连接云服务器的端口数据就转发到家里电脑上。它不要求你家宽带有什么特殊条件只要家里电脑能访问互联网就能做穿透。IPv6 则是另一种思路。IPv6 地址数量充足运营商通常会分配全球唯一的公网地址。既然两边都有公网地址数据就可以不走中转直接点对点连接。但这也意味着新的配置要求你需要懂 IPv6 地址格式、需要配置防火墙、需要处理地址变化。很多教程没有覆盖这套新流程大家自然还是先想到 FRP。2. 异地跨网实测IPv6 直连的可行条件是什么2.1 先确认两端都拿到了“公网 IPv6”而不是链路本地地址IPv6 直连的第一步是确认服务端所在电脑真的拿到可用公网地址。Windows 上可以用ipconfig /all在“以太网适配器”或“无线局域网适配器”下面找“IPv6 地址”。如果看到的地址以fe80::开头那只是链路本地地址只能用于同一局域网内通信不能用于跨网直连。公网 IPv6 地址的前缀通常和运营商有关常见如电信240e:、联通2408:、移动2409:不同地区可能有差异。只要不是fe80::也不是fc00::/7开头的 ULA 内网地址大概率是运营商分配的公网 IPv6。Linux 或树莓派上可以用ip -6 addr查看。如果你在树莓派上跑 Minecraft 服务端也要先同样确认拿到了全局 IPv6 地址。注意树莓派默认可能有多个 IPv6 地址优先选全局地址不要选带scope link的那个。注意fe80::开头的地址只在同一局域网内有效远程联机用它永远连不上。2.2 ping 通和端口通是两回事必须分开测拿到 IPv6 地址后先做基本连通性测试。在服务端机器上查好地址然后在客户端机器上执行ping -6 240e:xxxx:xxxx:xxxx::1能通说明设备之间具有 IPv6 路由但别急着进游戏。ICMP 和 TCP 是不同的协议网关防火墙很可能允许 ping却丢弃入站的 TCP 连接。更接近游戏场景的测试是用 Windows PowerShellTest-NetConnection 240e:xxxx:xxxx:xxxx::1 -Port 25565命令执行后重点看TcpTestSucceeded是否为True。如果是True说明从网络层面已经能访问服务端的 Minecraft 端口。如果不是就要继续检查防火墙或路由策略不要反复在游戏里点“连接”。如果你习惯用命令行也可以用 telnet 测端口但 Windows 默认可能没有启用 telnet 客户端。PowerShell 的Test-NetConnection更直接。2.3 电信、联通、移动热点IPv6 直连不能一概而论我在不同网络组合里做过测试体验差异很大。第一种组合服务端在电信宽带客户端在联通宽带。两边都有全局 IPv6Windows 防火墙和光猫防火墙放行后游戏里输入[IPv6地址]:25565可以正常进入世界。延迟体感比走 FRP 中转更跟手毕竟数据没有绕到云服务器。第二种组合服务端在电信宽带客户端连的是移动手机热点。同样有 IPv6 地址路由也能 ping 通但Test-NetConnection测端口经常超时。原因是移动网络侧对 IPv6 入站连接的限制更严格很多热点分配的 IPv6 地址只允许上网不允许外部设备主动连入。这两种结果说明IPv6 直连不是“有地址就能用”。运营商的网络策略、路由设备版本、防火墙默认行为都会影响最终结果。你只能在自己的网络环境里实测不能拿别人的成功案例当绝对结论。2.4 光猫和 Windows 防火墙是最大的隐形变量IPv6 直连失败大概率不是 Minecraft 的问题而是防火墙。Windows 防火墙默认会阻止来自公网的入站连接。第一次启动 Minecraft 服务端时系统可能弹窗询问是否允许 Java 访问网络如果你点了“取消”服务端虽然还在运行但外部连接会被系统挡住。更隐蔽的是光猫。现在的家庭宽带基本都是光猫拨号电脑拿到的是光猫分配的子网 IPv6 地址。光猫本身带防火墙很多型号默认禁止来自 WAN 口的入站连接你会发现自己本机的防火墙已经放行Test-NetConnection依然超时。这种情况下需要进入光猫管理页面找“IPv6 防火墙”“安全设置”“入站规则”之类的选项把 Minecraft 端口放行或者关闭 IPv6 防火墙。不同光猫品牌界面差异很大有的还处于运营商托管状态玩家无法修改。如果光猫不能改IPv6 直连这条路基本就走不通了FRP 会是更省事的方案。3. 有 IPv6 还需要 FRP 吗先把这笔账算清楚3.1 IPv6 直连和 FRP 中转到延迟、带宽、成本上的差别对比维度IPv6 直连FRP 中转适用前提两端都有公网 IPv6路由和防火墙放行服务端能主动访问公网云服务器有公网 IP延迟表现点对点路径延迟通常更低多一跳中转延迟会有额外开销带宽上限受两端家庭宽带上下行限制受云服务器带宽限制多人联机时更容易成为瓶颈部署难度需要懂 IPv6 地址、防火墙、端口格式需要配置 frps、frpc理解安全组和端口转发稳定性受运营商策略、地址变化、光猫限制影响只要云服务器稳定入口地址基本固定运行成本通常没有额外费用需要一台公网云服务器可能产生费用IP 变化处理地址可能变化需要 DDNS 配合中转服务器固定本地地址变化不影响入口这张表不是要说明谁更好而是提醒你IPv6 直连省下的主要是中转带来的延迟和带宽消耗代价是你要花时间处理网络配置FRP 省下的是对家宽公网地址的依赖代价是延迟增加、带宽受限于服务器。3.2 IPv6 直连真正省掉的是中转不是排错很多人把“有 IPv6 就不用 FRP”理解成“以后联机零配置”。实际体验下来IPv6 直连省掉的是云服务器中转这一跳但排错流程一点都没减少。你需要检查本机 IPv6 地址、客户端路由、Windows 防火墙、光猫防火墙、端口是否被占用、服务端是否监听了 IPv6。这一套流程并不比配置 FRP 简单多少反而因为每个家庭的光猫型号不一样排查起来更琐碎。换句话说IPv6 直连的价值是“链路更优”不是“配置更懒”。如果你追求的是马上能用、快速稳定FRP 反而更容易满足需求。3.3 FRP 在哪些场景下仍然是刚需以下场景FRP 不是备选而是更合适的方案服务端所在网络没有公网 IPv6或者只有 IPv4。比如公司网络、酒店网络、部分校园网。光猫被运营商限制玩家进不去管理后台无法关闭 IPv6 防火墙。手机热点分配的 IPv6 只允许出站不允许入站。这种情况下即使地址是公网 IPv6外部连接也会被运营商侧丢弃。服务端程序只监听 IPv4或者整合包内某些组件对 IPv6 支持不好改起来成本高。你希望给朋友一个固定的连接地址不愿意每次重启路由器后重新报一遍 IPv6 地址。需要稳定服务多人的场景。云服务器带宽如果足够多人同时连接时不会占用家庭上行带宽稳定性可能更好。反之如果两端网络条件都支持 IPv6 直连并且光猫防火墙可控FRP 就有点多余。多绕一条长链路反而增加延迟和故障点。3.4 我的建议优先直连FRP 兜底不做二选一我更倾向把 IPv6 直连和 FRP 看成两套可以同时准备的方案而不是对立关系。联机之前先花五分钟做 IPv6 直连测试。测通了就不用开云服务器、不用改 FRP 配置直接输入地址进游戏。测不通先花十分钟排查防火墙和监听地址。如果排查完仍然失败比如光猫改不了、运营商限制入站再启用 FRP。这样做的理由是IPv6 直连一旦可用长期使用成本最低链路也最干净。FRP 则可以作为兼容方案专门解决你家网络环境的特殊限制。两套方案都配置好等于给你的联机链路上了双保险。4. 从 IPv6 直连到 FRP 兜底完整实操过程4.1 用 PCL2/HMCL 把服务端先跑起来PCL2 和 HMCL 本身不提供“开服”功能但它们可以用来启动整合包客户端。你可以在同一台电脑上先开启一个独立 Minecraft 服务端再启动客户端进入。最简单的方式是单人世界“对局域网开放”进入世界后按 Esc点击“对局域网开放”选择端口模式游戏会显示一个本机端口。这个端口就是你要暴露出去的端口不一定是 25565。如果需要长期稳定联机建议用独立服务端。下载 Paper、Fabric 或原版服务端后在目录下启动java -Xmx2G -jar server.jar nogui启动前检查server.propertiesserver-ip server-port25565 online-modefalseserver-ip必须留空表示监听所有网络接口如果填了某个 IPv4 地址可能造成 IPv6 无法连接。online-mode按你的登录方式来离线服通常设置为false正版服要具体看。4.2 连接地址千万别写错IPv6 地址要加方括号Minecraft Java 版连接 IPv6 地址时地址必须放在方括号里再跟端口。[240e:xxxx:xxxx:xxxx::1]:25565如果写成240e:xxxx:xxxx:xxxx::1:25565冒号会干扰地址解析客户端无法识别。在 PCL2 或 HMCL 的多人游戏界面添加服务器时地址填完整端口也写清楚。如果你用 DDNS 域名域名本身不分 IPv4 还是 IPv6直接填写你的域名:25565即可。4.3 Windows 防火墙放行端口服务端是 Java 程序运行后系统会弹防火墙授权窗口但保险起见手动添加规则更可控。打开“高级安全 Windows Defender 防火墙”选择“入站规则”新建规则规则类型选“端口”协议选 TCP特定本地端口填写25565或局域网开放时显示的实际端口操作选“允许连接”配置文件勾选“域”“专用”“公用”名称写Minecraft Server。完成后重启一次服务端再用客户端的Test-NetConnection验证端口。注意FRP 场景下本机不需要为 Minecraft 端口添加入站规则。因为 frpc 是主动连接云服务器的家庭路由器和 Windows 防火墙不需要开放入站端口你只需要保证 frpc 能正常出站。4.4 光猫/路由器 IPv6 防火墙检查点如果本机防火墙放行后外部连接还是超时下一步查光猫。登录光猫管理后台寻找“IPv6 防火墙”“安全”“入站规则”等菜单。不同厂商界面差异很大但整体思路一致找到 IPv6 相关防火墙设置为 TCP 端口25565添加入站放行规则。如果找不到细粒度规则可以临时把 IPv6 防火墙关闭测试确认是否它造成的问题。如果光猫和路由器组了双层 NATIPv6 路径会复杂一些。理想情况是把光猫改成桥接模式让路由器直接拨号并管理 IPv6 防火墙。如果无法改桥接就只能看光猫是否对外开放配置权限。这个环节最容易消耗时间。建议先做一次“关闭光猫 IPv6 防火墙 关闭路由器 IPv6 防火墙 放行 Windows 防火墙”的全放测试确认 IPv6 直连是否能通。通了再逐步收紧规则这样可以快速定位是哪一层防火墙拦截。4.5 FRP 兜底配置的常见写法当 IPv6 直连不可行时FRP 是最常用的兜底方案。服务端在公网云服务器上运行 frps示例配置[common] bindPort 7000 token your_token本地电脑运行 frpc示例配置[common] serverAddr your_server_ip serverPort 7000 token your_token [minecraft] type tcp localIP 127.0.0.1 localPort 25565 remotePort 25565启动 frps 和 frpc 后玩家在客户端连接云服务器的公网 IP 加25565端口数据就会通过云服务器转发到本地的 Minecraft 服务端。需要特别提醒两点一是云服务器安全组必须放行 TCP7000和25565端口二是 FRP 版本更新后配置文件格式可能有变化某些版本不再使用[common]段而是把配置项放在顶层。配置前先对照你下载的 FRP 版本说明不要照抄老教程。注意FRP 版本更新后配置格式可能从[common]改为顶层字段配置前先看对应版本文档。5. 联机失败的真正原因8 个最容易忽略的坑5.1 IPv6 地址是临时的重启电脑后连不上Windows 默认会使用临时 IPv6 地址发起连接这个地址会定期变化。如果你把测试时的 IPv6 地址保存下来发给朋友也许第二天就失效了。解决办法是使用 DDNS把变化的 IPv6 地址映射到一个固定域名。或者在内网设备上配置固定的全局 IPv6 地址。但前提是路由器支持相关设置并且你能接受手动配置的复杂度。5.2 服务端绑定了 IPv4导致 IPv6 根本无门可入server.properties里如果没有留空server-ip服务端就只会监听指定 IP。比如填了0.0.0.0它监听的是所有 IPv4 地址而不是 IPv6。另外JVM 启动参数里如果加了-Djava.net.preferIPv4StacktrueJava 进程会强制走 IPv4 协议栈。外部 IPv6 连接无法进入因为进程根本就没有监听 IPv6 地址。排查方法是看服务端启动日志确认它到底监听在0.0.0.0:25565还是:::25565。::通常代表 IPv6 的监听地址。5.3 端口探测通了客户端还是超时如果Test-NetConnection显示端口通但游戏里连不进去问题多半不在网络层而在游戏版本、模组或协议处理上。优先检查服务端日志看有没有对应的连接尝试记录。如果服务端完全没收到连接说明网络路径还有问题如果收到连接但客户端显示超时可能是握手阶段卡住通常和模组版本不一致、客户端资源包加载慢、正版验证失败有关。这时候不要反复点连接先对比两边的 MC 版本和模组列表再试一次纯净版环境逐步排除。5.4 FRP 客户端已经启动游戏端口却不通FRP 场景下很多问题出在 frpc 到 frps 的连接而不是游戏本身。先在本机执行telnet your_server_ip 7000如果 7000 端口都不通说明 frpc 连不上 frps检查安全组、frps 是否启动、token 是否一致。如果 7000 端口通再看 frps 日志里有没有minecraft代理成功注册。还有一种情况云服务器的安全组只放行了 7000没有放行 25565。frpc 虽然连接成功但玩家连 25565 时被云服务商防火墙拦截。记得把转发端口也加到安全组。5.5 手机热点分到的 IPv6 并不等于可入站手机热点可能是最容易给玩家“IPv6 错觉”的场景。手机上确实能看到 IPv6 地址电脑也拿到了地址但运营商对移动网络的入站连接策略通常比家宽更严格。即使ping -6能通不代表 TCP 入站被允许。如果你的服务端在手机热点后面建议直接放弃 IPv6 直连改用 FRP。如果你自己是客户端连别人手机热点问题不大因为出站连接一般不受限制。5.6 光猫防火墙默认禁入站这是最隐蔽的一点很多玩家在 Windows 防火墙放行后仍然连不上最后发现问题是光猫。光猫作为家庭网络的入口默认防火墙策略非常保守。即使你的电脑拿到了公网 IPv6 地址也不代表这个地址可以直接被外部访问。数据包进不了光猫自然到不了电脑。最直接的验证方法是临时关闭光猫的 IPv6 防火墙看连接是否恢复。如果恢复说明就是光猫拦截如果光猫无法配置那 IPv6 直连就不可用直接切 FRP。5.7 把带“%12”的地址当成公网地址Linux 或 Windows 的某些命令里IPv6 地址后面会带接口索引比如fe80::1%12。%12表示网络接口编号只在本地有意义不能作为远程连接地址。问题在于如果你把带%的地址发给朋友Java 客户端很可能解析失败。要确认使用的是全局 IPv6 地址地址里不包含%符号也不是fe80::开头。5.8 端口号不是 25565或者被安全软件拦了“对局域网开放”时Minecraft 可能选择一个随机端口不一定是 25565。每次开放都有可能变化所以必须以游戏聊天栏里显示的端口为准。另一个常见问题是第三方安全软件的“局域网防护”“游戏反外挂”等功能拦截入站连接。不少安全软件默认会阻止未知端口绑定。看到“外部连接尝试”提示时不要直接选阻止先识别是不是你的 Minecraft 服务端进程。6. 一套可复用的联机决策框架减少下次踩坑6.1 四步判断法从环境检测到客户端连接我习惯把联机问题拆成四个阶段每次联机失败都按这个顺序排查而不是随机换配置。第一步环境检测。确认服务端和客户端都有可用的 IPv6 地址确认服务端确实在监听对应端口。第二步路由可达性。用ping -6和tracert -6确认基本路由不要只看ping结果。第三步端口放行。检查 Windows 防火墙、第三方安全软件、光猫防火墙、路由器防火墙用Test-NetConnection确认 TCP 端口通。第四步客户端连接。在 PCL2 或 HMCL 里填入正确的[IPv6地址]:25565观察服务端日志和客户端日志。如果第四步失败回退到第二步重测如果第三步一直不通过检查光猫如果光猫无法放行就直接跳到 FRP 方案。注意不要跳过第 3 步直接让客户端反复连接那只是在重复同一个失败场景。6.2 什么样的场景选 IPv6 直连什么场景直接上 FRP适合 IPv6 直连的场景通常满足几个条件两端都是家庭宽带且运营商分配了可用的公网 IPv6。光猫或路由器允许修改 IPv6 防火墙策略。服务端进程能正常监听 IPv6 地址。你愿意花一点时间处理地址变化或配置 DDNS。适合 FRP 的场景就简单很多一端或多端网络环境没有公网 IPv6。光猫没权限修改或者运营商限制入站。你需要固定入口让朋友随时能连。多人联机时希望入口不依赖家庭网络稳定性。如果你属于“没有时间折腾网络只想下班后和朋友玩两把”FRP 依然是最省心的路径。IPv6 直连更像是对网络环境要求较高的进阶玩法。6.3 长期维护DDNS 动态域名 双配置按需切换成熟的做法不应该是每次联机前重新查 IP、重新发地址。给 IPv6 直连配一个 DDNS 动态域名地址变化也能通过域名解析到最新值。FRP 配置保持一份可用的配置文件按需启动。日常如果 IPv6 直连稳定就用直连遇到网络调整导致 IPv6 失效或者去了一个没有 IPv6 的酒店网络就把 frpc 拉起来让玩家统一连接云服务器地址。这套双配置思路比单纯回答“要不要 FRP”更有实用价值。它把网络环境变化纳入日常考虑而不是简单地把某个方案定为唯一正确答案。最后回到开头的问题。有 IPv6还需要 FRP 吗我的答案是需要看实测不能只看“有”。IPv6 直连确实能在不少环境里替代 FRP并且延迟链路更干净但它对光猫、路由器、ISP 策略的要求更高不是每次都能顺利打通。FRP 虽然多绕一跳却是一种更通用的兜底方案。最省心的长期策略是先测 IPv6不行再上 FRP把两套方案都放进你的联机工具箱里。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →