Skip to content

Repository files navigation

MultiRoute 多入口智能连接 Mod — 使用说明

Minecraft Java 版多人服务器「多入口智能连接」Mod。 一个实际服务端可以配置多个公网/内网穿透等网络入口,客户端进入服务器前自动请求推荐入口,用最合适的入口完成连接。


⚠️ 开源声明

本仓库目前仅包含项目骨架与构建配置,源代码(src/ 目录)已全部移除,暂不对外公开。

当前阶段:闭源开发中,近期没有开源计划。若后续决定开放源码,会另行公告并更新本仓库内容。

本仓库的公开目的是展示项目结构、版本矩阵与构建框架,便于协作与版本管理。


一、这是什么

MultiRoute 让一台 Minecraft 服务器对外暴露多个连接入口(不同公网 IP、内网穿透域名等)。玩家客户端在正式进入服务器前,会先向服务端发起一次预进入请求,服务端根据各入口的带宽类型、容量、健康状态、实时流量等综合评分,返回一个推荐入口;客户端拿到推荐入口后,直接用它进入原版联机流程。

要点:

  • 不是代理:不转发流量,所有入口最终都指向同一台真实服务器。
  • 同端口:复用原版 Minecraft 端口,不额外开端口。
  • 客户端是增强功能:即使客户端没装 Mod,也能照常连接;装了 Mod 才有智能选路。

截图预览

点击展开 0.1.0 版本截图(共 4 张)

截图 01

截图 02

截图 03

截图 04


二、支持的版本

模块 加载器 Minecraft 产物
forge-1.12.1 Forge 1.12.1 multiroute-forge-1.12.1-0.1.0.jar
forge-1.12.2 Forge 1.12.2 multiroute-forge-1.12.2-0.1.0.jar
forge-1.16.5 Forge 1.16.5 multiroute-forge-1.16.5-0.1.0.jar
forge-1.18.2 Forge 1.18.2 multiroute-forge-1.18.2-0.1.0.jar
forge-1.20.1 Forge 1.20.1 multiroute-forge-1.20.1-0.1.0.jar
neoforge-1.21.1 NeoForge 1.21.1 multiroute-neoforge-1.21.1-0.1.0.jar

服务端与客户端需安装对应版本的 Mod。


三、安装

服务端

  1. 把对应版本的 multiroute-forge-*.jar 放进服务器 mods/ 目录。
  2. 启动服务器。首次启动会自动生成配置文件:
    serverconfig/multiroute/endpoints.json
    
  3. 按需编辑配置或用命令添加入口(见下文)。

客户端

  1. 把对应版本的 multiroute-forge-*.jar 放进客户端 mods/ 目录。
  2. 正常进入游戏即可。客户端本地多入口配置会自动保存到客户端配置目录下的 client-endpoints.json

四、服务端使用

1. 候选入口配置文件

文件路径:serverconfig/multiroute/endpoints.json

{
  "version": 1,
  "endpoints": [
    {
      "id": "endpoint-1",
      "host": "example-a.com",
      "port": 25565,
      "displayName": "入口A",
      "enabled": true,
      "order": 1,
      "allowRecommendation": true,
      "maxMbps": 10,
      "bandwidthType": "DEDICATED",
      "healthState": "UNKNOWN"
    },
    {
      "id": "endpoint-2",
      "host": "example-b.com",
      "port": 25565,
      "displayName": "入口B",
      "enabled": true,
      "order": 2,
      "allowRecommendation": true,
      "maxMbps": 20,
      "bandwidthType": "SHARED",
      "healthState": "UNKNOWN"
    }
  ]
}

字段说明:

字段 说明
id 入口唯一标识(命令里用)
host 主机名或 IP(支持 IPv6)
port 端口(1–65535)
displayName 显示名称
enabled 是否启用
order 排序(同分时靠前者优先)
allowRecommendation 是否允许被推荐
maxMbps 入口最大带宽(Mbps),0 表示不限制
bandwidthType DEDICATED(独享)/ SHARED(共享)
healthState UNKNOWN / HEALTHY / DEGRADED / UNHEALTHY

说明:

  • 配置文件带版本号,支持原子写入损坏恢复;保存失败不会破坏旧文件。
  • 服务器启动时自动加载,配置更新(命令或直接改文件后 reload)立即影响新的预进入请求,不影响在线玩家。

2. 管理命令

所有命令仅 OP 可用,根命令 /multiroute

命令 作用
/multiroute add <host> <port> [bandwidthType] [maxMbps] 添加入口。bandwidthTypeSHARED/DEDICATEDmaxMbps 为非负整数
/multiroute remove <addressId> 删除入口
/multiroute list 列出所有入口
/multiroute status(或 stats/info 查看入口状态与活跃人数
/multiroute enable <addressId> 启用入口
/multiroute disable <addressId> 禁用入口
/multiroute set <addressId> bandwidthType <SHARED|DEDICATED> 修改带宽类型
/multiroute set <addressId> maxMbps <数值> 修改最大带宽
/multiroute reload 重新加载配置文件
/multiroute strategy [traffic|scoring] 查看/切换推荐策略(见下文)
/multiroute traffic [show|hide] 打开流量面板 / 开关流量悬浮层(见下文)
/multiroute help 查看帮助

成功后会立即持久化到 endpoints.json

3. 推荐策略

服务端用评分制推荐入口,可运行时切换:

  • traffic(默认,推荐):流量感知策略。基于实时出口流量、剩余带宽比例、带宽类型、健康状态综合评分,兼顾负载均衡与可靠性。
  • scoring:基础评分策略。主要看带宽类型、容量、健康状态。
/multiroute strategy            # 查看当前策略
/multiroute strategy traffic    # 切换到流量感知策略
/multiroute strategy scoring    # 切换到基础评分策略

五、客户端使用

1. 正常连接(无需额外操作)

玩家在多人游戏列表点击「加入服务器」后,Mod 会自动:

  1. 向服务器发起预进入请求;
  2. 拿到推荐入口;
  3. 用推荐入口进入原版连接。

失败时自动回退到服务器原始地址,无需重新点击。

2. 多入口管理

  • 在「添加/编辑服务器」界面,会多出一个**「多入口」**按钮。
  • 点击进入多入口管理界面,可对当前服务器的候选入口进行新增 / 删除 / 上移 / 下移
  • 本地多入口数据按服务器名称分组保存到 client-endpoints.json;重命名服务器时数据会自动同步迁移。

3. 流量面板

在游戏内(OP)执行:

/multiroute traffic

会弹出实时流量面板:

  • 实时数据:每秒刷新一次;
  • 顶部搜索框:边输入边模糊搜索(按玩家名/入口过滤);
  • 滚动列表:数据多时可滚动查看。

4. 流量悬浮层(F3 风格)

/multiroute traffic show    # 开启悬浮层(等同 on)
/multiroute traffic hide    # 关闭悬浮层(等同 off)
  • 在屏幕左上角显示过滤后的前 10 条数据;
  • 不阻挡玩家操作;
  • 开关状态为内存式保存,游戏进程不退出就一直保留;
  • 可在「设置 → 控制」里给这个开关配置快捷键(默认未绑定,只能通过命令开启)。

六、异常降级

MultiRoute 会按以下顺序降级,尽量保证玩家能连上:

1. 使用服务端推荐入口
2. 预进入失败/超时 → 回退到服务器原始地址
3. 推荐入口连接失败 → 自动用原始地址重连
4. 原版连接失败 → 按原版方式显示错误

已处理的场景:预进入接口不可用、超时、返回非法地址、无可用推荐地址、服务端配置损坏、客户端/服务端未装 Mod 等。


七、常见问题

Q:客户端没装 Mod 能连吗? A:能。客户端 Mod 是增强功能,没装会按原版流程直接连接。

Q:所有入口都指向同一台服务器,会不会冲突? A:不会。入口只是「不同的网络入口」,最终都进入同一台服务器,Mod 只负责选择走哪个入口。

Q:改了配置为什么没生效? A:直接用命令添加/删除会立即生效;如果是手动编辑 endpoints.json,执行一次 /multiroute reload 即可。

Q:流量面板/悬浮层能一直开着吗? A:只有面板打开或悬浮层开启时才会请求服务器数据,其余时间不占用网络。


更新日志

0.1.0(当前版本)

首个可用版本,覆盖 Forge 1.12.1 / 1.12.2 / 1.16.5 / 1.18.2 / 1.20.1 及 NeoForge 1.21.1。

服务端

  • 多入口配置与管理(endpoints.json 原子写入 + 损坏恢复)
  • 两套推荐策略:流量感知(traffic,默认)与基础评分(scoring
  • 预进入请求接口,按评分返回推荐入口
  • OP 管理命令:添加 / 删除 / 启用 / 禁用 / 状态查询 / 策略切换 / 重载
  • 实时流量统计与活跃人数追踪

客户端

  • 自动预进入请求 + 推荐入口连接,失败回退到原始地址
  • 「添加/编辑服务器」界面新增多入口管理按钮,支持新增 / 删除 / 排序
  • 本地多入口按服务器名称分组持久化,重命名自动迁移
  • 实时流量面板(OP 可打开,每秒刷新,支持搜索过滤)
  • 流量悬浮层(F3 风格,可配置快捷键)

稳定性

  • 完整的异常降级链:推荐失败 → 回退原始地址 → 原版连接
  • 兼容客户端/服务端未装 Mod、配置损坏、预进入超时等场景

0.2.0(计划中)

  • 新增服务端配置项:是否将所有入口同步至客户端(默认开启)。关闭后客户端仅拿到推荐入口,不暴露完整入口列表,用于服务器隐私保护场景。

About

Minecraft Java 版多人服务器「多入口智能连接」Mod。 一个实际服务端可以配置多个公网/内网穿透等网络入口,客户端进入服务器前自动请求推荐入口,用最合适的入口完成连接。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors