爱意满满的作品展示区。
wefgonujnopu

使用 CDN 来保护 MC 服务器/tcp over websocket

  •  
  •   wefgonujnopu · 4h 35m ago · 273 views

    使用 CDN 来保护 MC 服务器 / TCP Over WebSocket

    最近写了个项目:TOH Proxy

    项目地址:

    https://github.com/albert4719/toh-proxy
    

    可以把 Minecraft 的 TCP 连接转发到 WebSocket 上,再通过 CDN 代理,从而隐藏服务器真实 IP 。

    简单来说:

    玩家 -> CDN -> WebSocket -> MC 服务器
    

    而不是:

    玩家 -> 直接攻击你的服务器 IP
    

    为什么这么做?

    传统 MC 服务器:

    • IP 直接暴露
    • 容易被 DDOS
    • 一打就炸
    • 国内高防价格离谱

    但 WebSocket 属于 HTTP 体系。

    也就是说:

    • 腾讯云 EdgeOne
    • 百度 CDN
    • Cloudflare
    • 其他 CDN

    理论上都能代理。

    于是就能做到:

    TCP -> WebSocket -> CDN 加速
    

    让 MC 流量走 CDN 节点。


    特性

    • TCP Over WebSocket
    • 支持 Proxy Protocol
    • 还原玩家真实 IP
    • 支持 Velocity / Paper
    • 支持 CDN 回源
    • 支持 HTTPS / WSS
    • 隐藏真实服务器 IP
    • 支持第三方 MOD 直连

    原理

    服务端监听:

    ws://your-domain/mc
    

    客户端:

    本地 TCP -> WebSocket -> CDN -> 服务端
    

    服务端收到 WS 后再转发回真正的 MC TCP 服务。

    这样:

    • 玩家看到的是 CDN IP
    • 攻击者看到的也是 CDN IP
    • 真实服务器 IP 不暴露

    延迟测试

    很多人第一反应:

    “WebSocket 会不会很卡?”

    实际测试结果比预想好很多。


    百度 CDN (付费动态加速)

    测试使用:

    DRCDN 动态加速
    

    实际延迟:

    仅增加约 30ms
    

    基本没有明显游玩影响。

    正常生存服、小游戏服都完全可玩。


    腾讯云 EdgeOne (免费版)

    免费版本也能正常使用。

    但由于:

    • 无动态加速
    • 路由不稳定
    • 免费线路优先级较低

    实际延迟大概:

    增加约 50ms ~ 150ms
    

    会有略微卡顿感。

    不过:

    腾讯云 EO 支持购买动态加速套餐
    

    理论上延迟还能继续下降。


    适合什么场景?

    非常适合:

    • 小型公益服
    • 容易被打的服务器
    • 国内裸奔服务器
    • 没钱买高防
    • 想隐藏真实 IP

    已支持

    • Velocity
    • Paper
    • Proxy Protocol
    • 第三方 MOD 接入

    后续准备:

    • 官方 MOD
    • UDP/KCP
    • 多线路
    • 自动节点切换

    使用方式

    服务端:

    MC TCP -> TOH Proxy Server -> CDN
    

    客户端:

    本地 MC -> TOH Proxy Client -> CDN -> 服务端
    

    玩家本地连接:

    127.0.0.1:3001
    

    即可进入服务器。


    题外话

    其实 Minecraft 本身挺适合走 CDN 的。

    因为:

    • 长连接
    • 带宽低
    • 数据量小
    • 延迟要求没 FPS 那么极端

    之前一直没人这么搞,主要是:

    TCP 不能直接过 CDN
    

    但套一层 WebSocket 后,问题就解决了。


    有兴趣可以一起研究。

    欢迎提 issue / PR 。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2606 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:40 · PVG 23:40 · LAX 08:40 · JFK 11:40
    ♥ Do have faith in what you're doing.