朋友在成都,内网我在杭州,穿透我们想一起玩Minecraft。软件正版验证登录没问题,内网但直接连他的穿透局域网IP,延迟高得离谱,软件挖个方块要等半秒才消失。内网试过各种加速器,穿透要么收费贵,软件要么效果一般。内网后来他甩给我一个frp配置文件,穿透说“自己搭,软件别折腾那些商业货”。内网
这就是穿透内网穿透的起点——你不需要公网IP,也不需要把路由器拆了改桥接。软件原理说白了很简单:你有一台带公网IP的云服务器,它当中间人,把外部请求转发到你家里的电脑上。frp就是干这个的,开源、免费、配置写明白就行。
我租了台最便宜的阿里云轻量,1核1G,一个月不到三十块。装frps(服务端),改三行配置:bind_port = 7000、token = 你随便设、dashboard_port = 7500。防火墙放行这几个端口,服务端就跑起来了。
家里那台开服电脑装frpc(客户端),配置更啰嗦一点。关键几行:server_addr = 你的云服务器IP、server_port = 7000、token = 跟服务端一致。然后加一个[minecraft]段落,type = tcp、local_ip = 127.0.0.1、local_port = 25565、remote_port = 25565。意思是把本地的25565端口映射到服务器的25565。
启动frpc,看到“start proxy success”就算通了。朋友在游戏里直接输你的云服务器IP,不加端口,因为默认就是25565。延迟从原来的三百多毫秒降到四十左右,他挖石头我这边立刻能看到粒子效果。
但有个坑:Minecraft的服务器列表里,如果你用SRV记录或者域名,记得在云服务器DNS里加_minecraft._tcp的SRV解析。懒得搞就直接IP,反正就俩人玩。
另外,frp默认走TCP,但Minecraft的语音模组或者某些插件可能用UDP。这时候得在frpc配置里加type = udp的段落,端口对应上。我试过用Simple Voice Chat,不加UDP映射根本听不见声音。
安全方面别偷懒。token设长一点,dashboard要么关掉要么改默认密码。我见过有人把frps暴露在公网还不设token,结果被扫到,服务器成了别人的流量跳板。云服务商发来警告邮件才慌。
带宽是个硬限制。阿里云轻量默认峰值带宽也就几Mbps,两个人玩原版生存够用,但你要开大型模组包或者十几个人,那得升级配置或者换按流量计费的实例。我试过同时加载Chunky预生成区块,朋友那边直接卡成PPT。后来改成只在他上线时预生成,才勉强稳住。
还有个替代方案是Tailscale或者ZeroTier,组虚拟局域网,不用自己搭服务端。但延迟看中转节点,有时候绕路反而比frp直连慢。而且Tailscale免费版限制设备数,frp你想加多少端口都行。
现在我和朋友每周五晚上固定开服。他负责建房子,我负责下矿。frp跑了三个月没掉过线,除了有一次云服务器到期忘了续费。那晚他打了六个电话催我,说“你服务器炸了”。其实是我支付宝没钱了。
如果你也想试试,别被那些“内网穿透教程”里一堆术语吓到。核心就两步:云服务器跑frps,本地跑frpc,端口对上。剩下的就是调参数和试错。Minecraft本身对延迟不算特别敏感,四十毫秒和八十毫秒的区别,也就是打末影龙时差一个身位。