PCL2 和 HMCL 玩家联机,最烦的就是“内网穿透”这四个字。以前大家第一反应是去租一台云服务器装 FRP,或者找一个现成的搞穿透的打洞平台,折腾一轮还得担心延迟和限速。但现在很多家庭宽带其实已经默默地分配了公网 IPv6 地址,那问题就来了:既然有 IPv6,是不是可以省掉 FRP?这俩启动器联机,到底走哪条路最稳?
这次我们就围绕“PCL2 和 HMCL 联机”这个场景,把 IPv6 直连和 FRP 内网穿透两条路都走一遍,对比它们的适用条件、配置步骤、排查思路和真实限制。文章不写虚的,直接给结论、给命令、给判断标准。
先说结论:如果你的两个玩家所在的网络都有可用的公网 IPv6,并且中间没有防火墙把 TCP 端口拦截掉,PCL2/HMCL 联机可以直接用 IPv6 地址完成,不需要 FRP。但前提是“两个网络都有 IPv6”这个条件同时满足,任何一个环节断了,FRP 依然是更通用的兜底方案。下面展开讲。
1. 核心能力速览
先把两种方案的规格摆出来,方便你快速判断自己该用哪条路。
| 对比项 | IPv6 直连 | FRP 内网穿透 |
|---|---|---|
| 额外费用 | 无,家庭宽带自带 | 需要公网 VPS,年费几十到几百不等 |
| 公网地址要求 | 双方需要公网 IPv6 | 只需服务端有公网 IPv4/IPv6,客户端无要求 |
| 延迟表现 | 不经过中转,延迟最低 | 多一跳中转,延迟略高 |
| 带宽瓶颈 | 取决于家庭上行带宽 | 受限于 VPS 带宽和流量 |
| 配置复杂度 | 较低,但防火墙坑多 | 中等,两端配置相对固定 |
| 稳定性因素 | 受制于运营商是否分配 IPv6、光猫防火墙、路由器是否放行 | 受制于 VPS 带宽、CPU、网络线路 |
| 适用玩家组合 | 双方网络都通 IPv6 | 一方或双方没能要到 IPv6 |
| 对 PCL2/HMCL 的适配 | 直接在多人游戏添加服务器 | 直接连接 FRP 转发后的端口 |
从表里能看出,IPv6 直连的优点是便宜、低延迟、不依赖第三方服务器,缺点是网络环境要求高。FRP 的优点是兼容性强、可控性高,缺点是要花钱买 VPS,并且每次联机流量都要过 VPS 中转。
2. 适用场景与使用边界
2.1 适合 IPv6 直连的场景
- 两位玩家在不同城市,但家庭宽带都分配了公网 IPv6。
- 双方所在网络能正常访问 IPv6 网站,说明 ISP 侧没有阻断。
- 玩家愿意在光猫或路由器上做一次端口放行配置,且设备不是锁死的管理后台。
- 联机频率不高,不想为偶尔一次游戏专门维护一台 VPS。
2.2 适合 FRP 的场景
- 你所在的小区宽带因为 NAT44 或者运营商限制,拿不到公网 IPv6。
- 玩家在校园网、公司网络、公共 WiFi 等网络策略严格的环境。
- 光猫是纯桥接模式但路由器很老,或者光猫后台被运营商锁定,无法设置 IPv6 防火墙。
- 主机通过手机热点上网,热点没有公网 IPv6,或者 IPv6 防火墙不可控。
- 你希望把端口固定、IP 固定,方便多次复用,不想每次查 IPv6 地址变化。
2.3 使用边界和合规提醒
FRP 本身是合法的内网穿透工具,常用于远程访问自建服务、联机游戏、NAS 管理等,但使用时必须注意:不得用它绕过学校、企业等场所的网络管理规则,不得把端口开放给陌生人访问,不得用它传递违规内容。游戏联机只应在允许的账号和服务范围内使用。涉及正版账号、服务器数据和个人网络时,注意保管好端口和访问权限,避免被扫描和滥用。
3. 环境准备与前置条件
在写具体配置之前,先确认网络环境。
3.1 检查是否有公网 IPv6
在 Windows 上打开 cmd 或 PowerShell,输入:
ipconfig看“以太网适配器”或“WLAN”下面有没有“IPv6 地址”字段。如果看到240e:、2408:、2409:这类开头的地址,说明你拿到了运营商分配的公网 IPv6。
如果显示“IPv6 地址”为空,或者只有一个fe80:开头的链路本地地址,说明当前网络没有分配公网 IPv6,或者路由器没有正确下发。
也可以用外部网站验证本机出口 IPv6:
curl -6 https://www.taobao.com如果命令能正常返回内容,说明当前网络可以访问 IPv6。这代表至少出站方向是通的,但入站还需要看防火墙配置。
3.2 检查双方的 IPv6 连通性
主机玩家把自己的 IPv6 地址发给客户端玩家,客户端直接 ping 试一下:
ping -6 [240e:xxxx:xxxx:xxxx::1234]注意 Windows 的 ping 命令里,IPv6 地址如果写方括号一般不是必须,但直接跟地址即可:
ping -6 240e:xxxx:xxxx:xxxx::1234如果 ping 通,说明主机和客户端之间 IPv6 基础连通性成立。ping 不通不代表完全没戏,因为 Windows 防火墙默认会拦截 ICMPv6,而 Minecraft 联机用的是 TCP 端口,两者不同。
3.3 确认 PCL2/HMCL 版本和 Minecraft 服务端
建议使用最新版的 PCL2 或 HMCL,这样能确保 Java 和 MC 启动参数正确。联机模式推荐:
- 版本:Java 版 Minecraft,任意版本均可,但双方应使用相同游戏版本。
- 模式:单人世界打开“对局域网开放”,或者使用专用的联机 Mod / 插件服务端。
- 网络:主机需要知道自己的局域网端口,默认是 25565,但“对局域网开放”会随机给一个 5 位端口,比如 51234。
3.4 准备 VPS(如果走 FRP)
FRP 需要一台公网服务器,云厂商的轻量应用服务器即可,操作系统选 Debian/Ubuntu 或 CentOS。不需要高性能,1 核 1G 就够了。带宽建议至少 5Mbps,否则多人联机时流量会比较紧张。
服务器需要放行 TCP 端口。我们会在下面指定 FRP 服务端和代理端口。
4. PCL2/HMCL 联机:纯 IPv6 直连配置流程
这里按“主机通过 PCL2 开房、客户端通过 HMCL 加入”来写,反过来同理。
4.1 主机端步骤
- 使用 PCL2 启动 Minecraft,进入单人世界。
- 按
ESC打开菜单,点击“对局域网开放”。 - 选择游戏模式、是否允许作弊,点击“创建一个局域网世界”。
- 聊天栏会显示:
本地游戏已在端口 51234 上开启这个端口就是我们需要让客户端访问的端口。
4.2 获取主机的 IPv6 地址
回到 Windows,打开 cmd,运行:
ipconfig找到当前正在联网的网卡(以太网或 WLAN),下面会有:
IPv6 地址 . . . . . . . . . . . . : 240e:3a1:xxxx:xxxx::1234有些电脑会显示多个 IPv6 地址。优先选择“IPv6 地址”那一行,而不是“临时 IPv6 地址”。临时 IPv6 地址会定期变化,不适合做长期直连地址。也可以用下面的命令只提取地址:
ipconfig | findstr "IPv6"4.3 Windows 防火墙放行 TCP 端口
默认情况下,Windows 防火墙会拦截外部 TCP 入站。双击“对局域网开放”并不会自动放行公网 IPv6 入站连接,至少在很多环境里不够可靠。所以我们手动添加一条入站规则。
在 PowerShell(管理员)中执行:
New-NetFirewallRule -DisplayName "Minecraft IPv6 Join" -Direction Inbound -Protocol TCP -LocalPort 51234 -Action Allow如果你不确定端口,先看聊天栏里的端口再放行。如果不想长期保留规则,之后可以删除:
Remove-NetFirewallRule -DisplayName "Minecraft IPv6 Join"4.4 光猫或路由器放行端口
这是 IPv6 直连最容易踩坑的地方。很多光猫默认开着 IPv6 防火墙,会拦掉来自 WAN 侧的新入站连接。你需要在光猫管理后台里找到“IPv6 防火墙”“安全策略”之类的位置,把对应端口放行,或者把主机的 IPv6 地址加入 DMZ 主机。
光猫后台地址通常是192.168.1.1或192.168.100.1,登录账号通常在设备背面贴纸上。注意:不同光猫界面差异很大,而且部分运营商锁后台。如果找不到设置,可以打电话问运营商宽带装维人员是否可以给超级管理员权限,或者要求切换为桥接模式后自己用路由器拨号。
路由器(如果光猫后面还有路由器)也要检查 IPv6 防火墙。大部分家用路由器默认 IPv6 防火墙会拦截入站,需要在“安全”或“IPv6 设置”里放行特定的 TCP 端口。
4.5 客户端通过 IPv6 直连加入
客户端玩家用 HMCL 启动相同版本的 Minecraft,进入多人游戏 -> 添加服务器。服务器地址格式为:
[240e:3a1:xxxx:xxxx::1234]:51234注意方括号是必须的,否则游戏会把冒号和 IPv6 地址解析错误。
然后点击“完成”,服务器列表里会尝试连接。如果一切顺利,就能看到主机开的房间。
4.6 验证成功的标准
- 客户端能正常看到服务器名称和人数。
- 点击进入后能正常加载世界。
- 游戏中移动没有明显卡顿,方块破坏和放置响应正常。
- 主机端看到玩家加入提示。
如果连接失败,按照第 7 节的排查清单逐项查。
5. 走 FRP 的兜底方案
如果双方 IPv6 实测不通,或者其中一方根本没有 IPv6,FRP 是目前最常用的内网穿透方案。下面给出一套典型的配置。
5.1 服务端部署 frps
首先在 VPS 上安装 frp。到 GitHub 的 frp 发布页下载对应架构的压缩包,比如:
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz tar -zxvf frp_0.61.1_linux_amd64.tar.gz cd frp_0.61.1_linux_amd64版本号以实际下载页为准,不要照抄这个示例。
创建配置文件frps.toml,内容如下:
bindPort = 7000 auth.method = "token" auth.token = "your-token-change-me"启动 frps:
./frps -c frps.toml如果需要开机自启,可以写 systemd 服务,网上模板很多,这里不展开。
服务器安全组需要放行两个端口:
- 7000:frps 服务端监听端口。
- 25565:我们给 Minecraft 用的转发端口。
5.2 主机端部署 frpc
主机 Windows 下载 frp 的 Windows 版本,解压后创建frpc.toml:
serverAddr = "你的VPS公网IP" serverPort = 7000 auth.method = "token" auth.token = "your-token-change-me" [[proxies]] name = "minecraft" type = "tcp" localIP = "127.0.0.1" localPort = 51234 remotePort = 25565这里localPort是 PCL2 里“对局域网开放”显示的实际端口,remotePort是 VPS 上对外开放的端口。
启动 frpc:
frpc.exe -c frpc.toml注意 frp 在较新版本里统一使用.toml配置,旧版.ini格式已经不再推荐。
5.3 客户端连接 FRP 转发地址
客户端玩家在 HMCL 里添加服务器时,地址填写:
你的VPS公网IP:25565不需要写任何 IPv6 地址,也不需要关心自己是公网还是内网。只要 frpc 保持运行,连接就会通过 VPS 转发到主机。
5.4 FRP 的优化建议
- 如果主机的 PCL2 端口每次开房都变,建议固定一个自定义端口。PCL2 有“自定义局域网端口”选项,或者使用第三方联机插件固定端口,这样 frpc 配置可以写死。
- frps 端可以开启日志,方便排错:
log.to = "./frps.log" log.level = "info" - VPS 带宽低时,不要同时跑多个高流量代理,否则游戏会卡。
6. 功能性对比与性能观察
这一节从实测角度给出对比框架,你可以按这个思路去评估自己的网络。
6.1 延迟
IPv6 直连是从客户端到家宽路由器的端到端路径,中间没有额外中转。只要双方的 ISP 线路质量正常,延迟通常比走 VPS 低。FRP 则强制客户端先到 VPS,再到主机,路径更长。即使 VPS 线路不错,延迟也会比直连多一个 5-30 毫秒的往返。
6.2 带宽和流量
Minecraft Java 版的流量并不算大,单人联机通常每秒几十 KB 到几百 KB,但是玩家多、区块加载多时流量会明显增加。FRP 方案下流量会全部消耗 VPS 的月度流量配额,如果你用的是轻量应用服务器 1TB/月流量,偶尔玩玩够用;如果天天长时间联机,就需要关注流量使用。IPv6 直连没有这类流量限制,带宽上限取决于双方家庭宽带上行速度。
6.3 稳定性
IPv6 直连的稳定性取决于运营商分配的 IPv6 地址是否变化。大多数家庭宽带的 IPv6 前缀至少 24 小时内稳定,有些地方可能重启光猫后地址变化。FRP 只要 VPS 不宕机,地址永远不变,更适合长期固定使用。
6.4 启动与维护成本
IPv6 直连的启动成本是一次性的:检查地址、配防火墙、告知客户端。FRP 的启动成本是部署 VPS、下载 frp、写配置,稍微繁琐但后期复用价值高。如果你和固定朋友天天联机,FRP 一劳永逸;如果只是临时联机一次,IPv6 直连更快。
7. PCL2/HMCL 联机常见问题与排查方法
下面这些错误是联机时最常遇到的,按“现象 -> 原因 -> 排查 -> 解决”的思路整理成表。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 客户端添加服务器后一直连接超时 | 主机防火墙没有放行 MC 端口 | 在主机 PowerShell 查看防火墙规则 | 执行第 4.3 节的防火墙放行命令 |
| 能 ping 通 IPv6,但游戏连不上 | Windows 防火墙拦截 TCP,或光猫没放行端口 | 在客户端用Test-NetConnection测试端口 | 放行主机的 Windows 防火墙和光猫入站规则 |
| 客户端没 IPv6 地址 | 路由器未开启 IPv6,或运营商未分配 | ipconfig看是否有240e/2408/2409开头地址 | 登陆路由器开启 IPv6 并检查 WAN 侧是否拿到地址 |
| 游戏提示无法解析主机名 | 服务器地址写成纯 IPv6 但没加方括号 | 检查地址格式 | 改成[240e:xxx::xxx]:端口 |
| 主机每次开房端口都不一样 | PCL2 随机分配局域网端口 | 看聊天栏提示 | 用 PCL2 自定义端口,或修改 frpc 配置里的 localPort |
| FRP 连接成功但游戏卡顿 | VPS 带宽不足或线路绕路 | 在 VPS 上监控带宽占用 | 升级 VPS 带宽,或换 IPv6 直连方案 |
| FRP 连接被拒绝 | frpc 未启动或 token 不匹配 | 看 frpc 和 frps 日志 | 检查auth.token是否一致 |
| 客户端能进服务器但立刻掉线 | 游戏版本不一致或 Mod 缺失 | 确认双方版本一致 | 统一游戏版本,同步对应 Mod |
如果客户端在 Windows 上,可以用下面的命令直接测试 TCP 端口连通性,比 ping 更接近 Minecraft 联机的真实情况:
Test-NetConnection 240e:xxxx:xxxx:xxxx::1234 -Port 51234如果是走 FRP,则测试:
Test-NetConnection 你的VPS公网IP -Port 25565返回TcpTestSucceeded : True说明端口通路没问题,问题多半出在游戏设置或地址格式;返回False说明端口和防火墙之间还有问题。
8. 最佳实践与工程化建议
如果你经常用 PCL2 或 HMCL 联机,下面这些建议可以帮你少踩坑。
8.1 IPv6 优先,FRP 兜底
建议默认先测 IPv6,测通就用直连,测不通或网络条件不支持再切 FRP。这样既能享受最低延迟,又不用依赖 VPS。可以把 IPv6 检测做成一个固定动作:
ipconfig | findstr "IPv6"没有输出就放弃,不要浪费时间改防火墙。
8.2 固定 MC 端口
单人世界的局域网端口经常变,非常影响配置。用 PCL2 启动器时,可以在设置里找到“自定义局域网端口”相关选项,或者使用fabric-serverlink、LAN World Plug-n-Play这类 Mod 固定端口。HMCL 也有类似的联机扩展,具体名称以启动器版本为准。固定端口后,无论是 frpc 配置还是防火墙规则都能写死,省去每次联机前改配置的烦恼。
8.3 做好端口安全管理
IPv6 直连意味着你的 MC 端口暴露在互联网上。任何人知道你的 IPv6 地址和端口都可能尝试连接。建议:
- 只开游戏需要的 TCP 端口,不要开 DMZ。
- 不开 MC 对应端口时,在防火墙里删除放行规则。
- FRP 的 token 改成强密码,不要在公开群聊里发配置。
- 如果使用的非正版登录,端口暴露更容易招来盗号和恶意连接,建议使用正版账号或加白名单。
8.4 地址变化问题
IPv6 地址可能变化。如果长期联机,可以考虑:
- 在路由器上配置 IPv6 的 DHCPv6 PD 固定前缀。
- 使用支持 IPv6 的 DDNS 服务,把动态 IPv6 地址绑定到固定域名。
- 每次联机前重新查一次地址再告诉朋友,最直接。
8.5 日志和验证
FRP 方案下,联机不成功时优先查看 frpc 和 frps 日志。日志里会明确告诉你连接是否建立、错误码是什么。不要盲目重启,先看日志。IPv6 直连方案下,优先看端口测试结果,而不是反复 ping。
9. 总结与下一步建议
回到最初的问题:PCL2 和 HMCL 联机,有 IPv6 还需要 FRP 吗?答案是看网络条件。IPv6 只要两端网络都通,直连非常香,免费用、延迟低、配置一次后重复使用;但前提是你的光猫、路由器和运营商都配合,缺少任何一个环节就要回到 FRP。FRP 虽然需要一台 VPS,但胜在通吃所有网络环境,地址固定,排错路径简单。
如果你现在正准备和朋友联机,建议先花两分钟检查双方有没有公网 IPv6,有就按第 4 节的步骤配一次防火墙。如果失败,再切到 FRP,用第 5 节的模板部署 frps 和 frpc。这两套方案都不复杂,麻烦的是网络环境各不相同,遇到“ping 不通但有 IPv6”“光猫后台进不去”“frpc 启动失败”这类问题,就对照第 7 节的排查表逐项处理。
下一步可以尝试的扩展方向是:自建一个带白名单的联机服务端,把 IPv6 地址和端口固定下来;或者用 Docker 部署 frps,顺便给朋友提供一个固定的 IPv6 DDNS 域名,这样以后不用每次查地址,真正做到开箱即联。