把 Minecraft 专有 TCP 流量 封装 为 WebSocket,在出口再 解封装 为原生 MC 流量,从而可经由 Cloudflare Web CDN 转发。
有趣的事实:MEOW 也可被称为 MEOW Encapsulation Over WebSocket
核心思路:MC ↔ WS 隧道 ↔ MC(中间段走 Cloudflare)
- 入口监听原生 TCP,客户端无需改动
- 中间段走 Cloudflare WSS(可优选)
- 出口解封装直连你的 Minecraft 实例 或 ZBProxy
- 仅依赖
websockets
+python-dotenv
,轻量易部署 - 可通过
.env
配置
[Minecraft Client] --TCP-->
[entry] --WSS-->
[Cloudflare] --WS-->
[exit] --TCP-->
[ZBProxy] --TCP-->
[Minecraft Server]
- Python 3.9+
- 落地机上按指南安装并配置 ZBProxy
👉 参考项目:https://github.com/layou233/ZBProxy
- 一个可由 Cloudflare 托管的域名
在入口与出口机器上分别执行:
pip install -r requirements.txt
-
按照 ZBProxy 官方仓库的安装与配置文档进行部署:
- 仓库:
https://github.com/layou233/ZBProxy
- 目标:在 127.0.0.1:25565(或自定义端口)提供 Minecraft 的代理/转发能力
- 仓库:
-
复制
exit/.env.example
为exit/.env
并修改必要参数:WS_LISTEN_PORT
:任意指定,默认8765
MC_TARGET_HOST
/MC_TARGET_PORT
:指向你的 ZBProxy/真实 MC 服(例如127.0.0.1:25565
)AUTH_TOKEN
:改为强口令,并与入口端保持一致
-
启动
exit
:python exit.py
日志出现
exit proxy listening on ws://0.0.0.0:8765
即为正常。
-
DNS
- 新建
A
或AAAA
记录,将你的域名(如hyp.example.com
)指向落地机 IP - 勾选 代理(小橙云 = ON)
- 新建
-
SSL/TLS 模式
SSL/TLS -> Overview -> Flexible
Network -> WebSockets
确保 ON
-
规则:把请求转到出口端口
-
在 Rules / Origin Rules(或等价功能)中新建规则,匹配你的域名(如
hyp.example.com
),设置:- Override Origin Port =
WS_LISTEN_PORT
(例如 8765)
- Override Origin Port =
-
这样,客户端始终访问
wss://hyp.example.com/tunnel
(默认 443),Cloudflare 回源到你在落地机exit
监听的 8765。
-
说明:如你不会设置规则,可以把
WS_LISTEN_PORT
改为 80,同样满足 Flexible 到源站的明文回源。
-
复制
entry/.env.example
为entry/.env
,修改:WS_URL=wss://hyp.example.com/tunnel
AUTH_TOKEN
与出口一致- (可选)
FORCE_HOST
/FORCE_IP
做 Cloudflare优选
-
启动
entry
:python entry.py
日志出现
entry proxy listening on ...
与DNS pin: ...
即为正常。
-
打开 Minecraft 客户端,服务器地址填:
<入口机IP>:<LISTEN_PORT> # 例如 127.0.0.1:25565
-
连接后:Client → entry(25565) → WSS → Cloudflare → WS → exit(8765) → TCP → ZBProxy/MC
CHUNK
:建议16384
(≈单个 TLS record),常能减少抖动;必要时测试32768
。- 心跳:
PING_INTERVAL=30~60
、PING_TIMEOUT=20~25
,避免过于频繁的心跳插队。 - 优选:使用对目前线路最有益的 Cloudflare IP,例如落地机在美国,入口机在中国香港,则可以选用美国或香港 IP,千万不可以绕路。
- 安全:务必使用 强
AUTH_TOKEN
,并限制出入口机的防火墙策略。
-
为什么要这样? 如果你经常使用代理软件游玩国外服务器,就会知道它的价值。在适宜的环境下,它可以最大程度节省你的成本,相较于其它方案,它最低只需要一台落地服务器即可完成代理。当然如果你是富哥,可以随手挥一挥购买专线,当我没说。 你也可以把它当作一个娱乐用的练手项目,因为从实际测试来看似乎还有待优化。
-
为什么会卡顿? 在“适宜”的环境下可以最大程度地缓解卡顿和延迟,这与自身网络、服务器网络、优选IP等因素密切相关。
-
Cloudflare 不回源到我自定义端口怎么办? 使用 Origin Rules 将回源端口覆盖为
WS_LISTEN_PORT
(如 8765)。如不可用,可考虑把WS_LISTEN_PORT
直接设为 80。 -
连接卡顿 适当增大
CHUNK
、放宽PING_INTERVAL
,并确认 Cloudflare 侧没有对/tunnel
做重写/缓存/挑战类规则。
本项目采用 Apache-2.0 许可协议。