为mc服务器加速!端口转发+frp
12 113.109.. (113.109.243.218) 27.650 ms 26.974 ms 26.108 ms 很明显一跳一跳又一跳,为什么这样子会更稳定呢?因为阿里云自带BGP,没有跨网,丢包下降,但是跳数增加了,延迟就提升了,几乎在中国东边绕了一圈,直接变成减速器了,但是DeepSeek觉得虽然跳数增加,但延迟可能反而降低:
- Windows直连: 40ms (跨运营商:移动→电信)
- 通过跳板: 40ms(移动) + 27ms(电信) ≈ 67ms
想了半天的小原想起了一句话:实践是检验真理的唯一标准。
于是小原便发到了服务器群里面:


没想到对服主提升巨大,并加到了群公告里面!


玩了一个星期的小原发现其他北方地区玩家是提升巨大了,但她自己玩有个蛋用,于是一气之下让同学帮忙实名阿里云,用新用户优惠买广州服务器重新配。
这次为了降低占用和节省时间,小原使用了GMSSH,输入服务器IP和SSH密码后直接在线进入面板,无需下载/安装,进入后用wget下载Nginx最新代码,解压,make
在GMSSH应用商店中下载Nginx管理器,选择Nginx默认安装到的位置,选择默认配置,和上面一样如法炮制,但是这次小原想到了动态公网ip变化后,如果没有重新解析,这个转发将无法工作,想重新解析只能重启,所以这次她配置了
resolver 223.5.5.5 119.29.29.29 valid=20s;
resolver_timeout 5s;
但是过了几天她发现并没有什么卵用,一样会报错,并且不知道源站服务器是不是挂了,于是她决定改用frp。
为什么要选Frp呢?因为Frp可以解决动态公网ip变化无法实时感知的问题,大幅度提高了稳定性
因为正常来说端口转发获取ip依赖ddns的域名,当公网ip变化过一会后,ddns才能检测到公网ip变化(即使只有3-5s重测都是有空窗期的),当ddns检测到ip变化后会通知dns域名解析商,将域名指向新的ip地址,这个时候dns广播时间几乎是不可控的,还有运营商dns缓存,公共dns解析节点缓存……会导致最长可达10分钟的解析不同步,正常来说短3-8s游戏就断线重连了,超过10s对于玩家来说都明显感受到被退出主界面了,但当我们使用frp,运营商更换ip后,网络重新连接后,第一个心跳包到达服务器最多不会超过3s,这个时候对于玩家来说就是突然卡了一下或者无感,效果是非常好的。
在我们介绍实现之前先补充一下服务器的相关信息:
杭州阿里云——Ubuntu24.04 2h2g200M
广州阿里云——Centos9 2h2g200M
广州电信家里云——windows ?h32g??M
解决方案:Frp
用Frp之前我们先来了解一下Frp,Frp有服务端(Frps)和客户端(Frpc)组成,在Frps中需要配置一个端口和密钥,在Frpc中通过相同的端口密钥连接服务器,然后在客户端配置文件中还需要包含你需要穿透的端口和协议类型。
Frp需要把客户端安装在运行MC游戏服务器的同一台机子上,必须要腐竹支持才能配置,上文提到,所以小原给腐竹简单说明了一下就开始配frps了,由服主在服务器配置frpc。
划重点:
从v0.52.0版本开始,frp 开始支持TOML、YAML和JSON 作为配置文件格式。
请注意,INI已被弃用,并将在未来的发布中移除。新功能只能在TOML、YAML或JSON中使用。希望使用这些新功能的用户应相应地切换其配置格式。
——Frp官网
所以我们的服务器很简单,只要这样子:
bindPort: 896*#(你的端口)我这个端口比较神人,所以不能告诉你auth: token: "你的链接口令"# 可选:日志配置log: level: "info" maxDays: 3 disablePrintColor: false然后客户端通过
serverAddr: "服务器地址"serverPort: 89**#端口auth: token: "你的链接口令,和服务器的要一模一样"proxies: - name: "minecraft" type: "tcp" localIP: "127.0.0.1" localPort: 25565 remotePort: 25565 - name: "rdp" type: "tcp" localIP: "127.0.0.1" localPort: 3389 remotePort: 3389链接上服务器,
有人可能就想问了:为什么要转发rdp啊?因为运维让我也顺便转发一下rdp。
总之这样子就是好了,然后就可以进游戏看看了。



平均18ms,emm…一般般吧,起码不用重启了。
好了结束了,给个图:
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
部分内容可能已过时