Repository navigation
🚀 MSM beta-2.1.5(Beta 版)
Pre-release
Pre-release
·
25 commits
to main
since this release
✨ 本次更新
🎉 本次亮点(Highlights)
- MosDNS 与代理配置可选同步:修改 IPv6 设置或可映射的域名名单后生成同步提议,用户可确认同步到目标服务,也可只保留当前服务的修改。
- 核心切换减少旧缓存干扰:切换 Clash 或 Sing-Box 前处理仍可访问的旧核心缓存,并将 Fake-IP 的客户端 TTL 与陈旧复用窗口调整为 60 秒。
- 核心操作增加并发与就绪边界:控制器请求、代理测速和 MosDNS API 都有并发上限与等待窗口;核心尚未完成启动检查时,相关变更会返回明确状态。
- Sing-Box 安装核对归档内版本:在摘要校验之外,安装前检查归档内实际二进制版本是否符合发布元数据,版本不一致时拒绝继续安装。
- 客户端目录按设备聚合地址:同一 MAC 的当前 IPv4/IPv6 地址合并展示,并过滤历史扫描地址及不适合作为客户端目标的特殊地址。
🎉 重磅功能(Major)
- 可确认、可追踪的跨服务同步提议:新增持久化提议及查看、接受、拒绝接口,记录来源、目标、范围、载荷、版本和处理状态;提议默认 10 分钟过期,接受时检查待处理状态和来源版本。
- 代理域名规则衔接 MosDNS 名单:Clash 或 Sing-Box 编辑器可将可表达为 DIRECT、REJECT 或代理策略的域名规则整理为 MosDNS 同步提议;IP、进程、端口、规则集以及不支持的正则和通配符规则不会被静默转换。
🆕 新增功能(Added)
- 同步提议接口与权限边界:新增
/api/v1/policy-sync/offers,支持创建、查询、接受和拒绝;查看提议需要viewer角色,创建、接受和拒绝需要operator角色。 - 同步确认交互:MosDNS 规则、
block_ipv6开关以及代理配置中的相关 IPv6 或域名名单变化可触发确认交互;同步写入支持suppress_sync,避免双向同步形成回环。 - 多地址客户端信息:客户端响应增加同一设备的地址集合,目录卡片和只读列表可同时显示当前活动的 IPv4 与 IPv6 地址。
- Linux OUI 解析回退:系统缺少可用的 systemd-hwdb 厂商数据时,网络扫描改用内置只读 OUI 数据表;Darwin 与 Linux 共用该解析数据格式。
- 核心 Fake-IP 清理能力:核心切换流程可从本地 Clash 或 Sing-Box 控制器读取配置并调用 Fake-IP 清理接口,控制器地址需满足本地回环 HTTP/HTTPS 限制。
✨ 功能增强(Changed)
- 核心重启增加就绪门控:Clash、Sing-Box 重启后若控制器或数据面仍在预热,会记录待就绪状态并阻止新的配置、控制器及相关变更;就绪探测成功或核心明确停止后清除该状态,停止操作仍可执行。
- 通用服务入口复用核心生命周期:通用启动、停止和重启接口改为调用 Clash、Sing-Box 对应的服务对象,与专用入口共享生命周期控制,减少不同入口同时管理同一核心的情况。
- 涉及重启的操作统一等待就绪结果:配置编辑、版本或配置切换、规则、代理组、Provider、家庭访问等操作,以及失败后的回滚,均通过统一的重启后就绪流程处理。
- Sing-Box 外部请求使用托管直连选择器:控制器 UI、订阅 Provider 和远程规则集的请求改用
http_client.detour,指向配置中的“全球直连”选择器。 - Sing-Box 兼容迁移范围扩大:旧配置中仅有 User-Agent、缺少 detour 的写法也会迁移到
http_client;1.14 及以上配置会为外部 UI、Provider 和远程规则集补齐相应 HTTP 客户端设置。 - 客户端备注按设备关联:通过 MAC 地址识别客户端时,修改名称或描述会同步到同一设备的多个地址记录;策略 IP 扩展会排除不可用的特殊地址。
- 客户端目录优先使用当前扫描窗口:目录按当前扫描数据聚合设备;缺少扫描批次信息的旧数据库改用最近扫描时间窗口筛选,减少历史 DHCP 或 IPv6 地址重新进入活动目录的情况。
- Fake-IP 缓存窗口调整:MosDNS 模板中的 Fake-IP 客户端 TTL、陈旧结果窗口及高变化域名的陈旧窗口调整为 60 秒,以缩短核心切换或映射重建后的旧映射复用时间。
- 节点探测等待与地址池判断调整:探测缓存写入后的调度等待从 1 秒调整为 10 毫秒;节点无 IPv4/IPv6 地址池仅在明确收到 NXDOMAIN(rcode 3)时更新,不再把 NOERROR 空响应作为同类依据。
⚡ 性能优化(Performance)
- 控制器请求限流:Clash 和 Sing-Box 控制器请求并发上限为 16,等待超过 750 毫秒、请求被取消或无法取得执行位置时返回忙碌状态。
- 代理测速限流:单个核心的测速请求并发上限为 4,超过 750 毫秒仍无法取得执行位置时返回
PROXY_DELAY_BUSY。 - MosDNS API 限流:MosDNS 运行时 API 并发上限为 16,超过 750 毫秒等待窗口后返回请求过多错误。
- 控制器轮询统一受控:控制器查询、代理选择以及流量和内存快照等请求纳入并发控制,突发请求会在限定窗口内排队,无法排队时明确失败。
🐛 问题修复(Fixed)
- 修复核心切换后的旧缓存影响:核心切换时先处理仍在运行的旧核心对应缓存,再停止旧核心并应用新核心;旧核心控制器不可访问时跳过原生 Fake-IP 清理并继续切换。
- 修复策略邻居重新带回历史地址:策略邻居刷新仅保留当前快照观察到的设备地址,避免没有当前观察记录的旧地址重新参与策略绑定。
- 修复特殊地址进入客户端目录:目录和策略处理会过滤未指定、回环、组播、链路本地及 IPv4 广播地址。
- 修复同一设备多地址备注不一致:通过一个地址编辑客户端信息时,会同步更新同一 MAC 对应的其他地址记录。
- 修复核心启动预热期间的重复操作:核心尚未完成控制器和数据面就绪检查时,配置变更和控制器操作不会立即再次触发同一核心。
- 修复 Linux 厂商解析缺少系统数据时的空结果:systemd-hwdb 无法提供厂商信息时,改用内置 OUI 表继续解析。
- 修复 Sing-Box 归档内部版本不一致:即使归档摘要匹配,内部
sing-box二进制版本与发布元数据不一致时也会拒绝安装,并清理临时下载文件。
🛡️ 安全加固(Security)
- 限制 Fake-IP 清理请求目标:清理接口仅允许访问绑定在回环地址上的 HTTP/HTTPS 控制器,不接受外部主机、Unix socket、额外路径、查询参数或片段。
- 校验 Sing-Box 归档内实际版本:安装流程从归档中提取
sing-box二进制并检查版本输出,要求实际版本与同一发布元数据中的期望版本一致。 - 同步提议增加状态与来源版本校验:接受或拒绝前检查提议仍为待处理、未过期且来源版本未变化;条件不满足时不会转换提议状态。
- 限制可同步的规则范围:代理侧同步只处理可表达为 MosDNS 名单的域名规则;IP、进程、端口、规则集及无法映射的规则不会被静默转换。
⚠️ 兼容性变更(Deprecated)
- 写接口响应可能增加同步提议字段:MosDNS 规则和相关开关写入成功时,响应可能包含
data.sync_offer;原有成功结果仍单独返回。 - 控制器繁忙时返回明确错误:控制器请求过多时可能返回 HTTP 429 和
PROXY_CONTROLLER_BUSY;测速请求过多时返回PROXY_DELAY_BUSY,调用方需稍后重试。 - 核心未就绪时返回冲突状态:核心正在等待控制器或数据面就绪时,相关变更可能返回 HTTP 409 和
PROXY_START_PENDING;停止操作不受该门控阻止。 - Sing-Box 旧配置可能被重写:写入或迁移配置时,旧的
download_detour、外部 UI 下载设置和 User-Agent 写法可能转换为http_client结构。 - Fake-IP 默认 TTL 发生变化:依赖模板默认值的客户端收到的 Fake-IP TTL 由 600 秒调整为 60 秒,MosDNS 对旧映射的陈旧复用窗口也调整为 60 秒。
📌 升级提醒(Notes)
- 同步提议需要用户确认:本地修改会先保存;用户可选择同步或仅保留本地修改。接受提议表示确认同步选择,目标服务仍需使用提议载荷执行对应写入。
- 来源发生变化时需重新生成提议:同步提议创建后,如果来源配置或规则发生变化,接受操作会因版本不匹配被拒绝。
- 核心切换清理存在执行条件:只有旧核心处于运行状态且其本地控制器可访问时,才会执行原生 Fake-IP 清理;控制器不可访问时会跳过该步骤并继续切换。
- 版本信息更新为 2.1.5:后端、Web 界面和桌面端显示的版本号同步更新。
📋 构建信息
| 项目 | 内容 |
|---|---|
| 版本号 | beta-2.1.5 |
| 发布通道 | beta |
| 源仓库 | msm9527/msm |
| 构建分支 | dev 🌿 |
| 源提交 | 595531c |
| 构建时间 | 2026-10-25 06:35:10 CST ⏰ |
🎯 最新提交详情
style: 清理发布差异末尾空行 / Clean trailing blank lines in release diff
- 📅 时间: 2026-10-25 03:11:13 CST
- 🔗 链接: https://github.com/msm9527/msm/commit/595531c9896a79850f82e2874b68952b7b36be0d
💾 下载安装
🖥️ 命令行版本(CLI)
Linux 平台
| 架构 | 文件 | 说明 |
|---|---|---|
| amd64 | msm-beta-2.1.5-linux-amd64.tar.gz |
标准版本(推荐) |
| amd64-v3 | msm-beta-2.1.5-linux-amd64-v3.tar.gz |
优化版(需 AVX2) |
| amd64-musl | msm-beta-2.1.5-linux-amd64-musl.tar.gz |
Alpine Linux |
| amd64-musl-v3 | msm-beta-2.1.5-linux-amd64-musl-v3.tar.gz |
Alpine 优化版 |
| arm64 | msm-beta-2.1.5-linux-arm64.tar.gz |
ARM 64位 |
| arm64-musl | msm-beta-2.1.5-linux-arm64-musl.tar.gz |
ARM Alpine |
| armv7 | msm-beta-2.1.5-linux-armv7.tar.gz |
ARM 32位 (v7) |
| armv6 | msm-beta-2.1.5-linux-armv6.tar.gz |
ARM 32位 (v6) |
💡 提示: amd64-v3 版本针对较新的 CPU 进行了优化(需要支持 AVX、AVX2 等指令集),性能更好但兼容性较低。如果不确定,请使用标准的 amd64 版本。
📡 OpenWrt 原生安装包(IPK / APK + LuCI)
OpenWrt 24.10 及以前使用 IPK(opkg),25.12 及以后使用 APK(apk v3)。选择与设备包架构匹配的 msm 包,再安装同版本 luci-app-msm 插件。
下载 OpenWrt 软件包(x86_64 / ARM64 / ARMv7 / ARMv6)
🧩 派网应用版本(APX)
PanaBit / 派网
| 架构 | 文件 | 说明 |
|---|---|---|
| amd64 | msm-beta-2.1.5-linux-amd64-panabit.apx |
派网 x86_64 安装包 |
| arm64 | msm-beta-2.1.5-linux-arm64-panabit.apx |
派网 ARM64 安装包 |
说明:
.apx安装后会在派网页面中提供 MSM 控制入口- 实际管理界面由派网入口页跳转到 MSM 自身 Web 控制台
- 如果派网设备已有服务占用目标端口,请先处理端口冲突
macOS 平台
| 架构 | 文件 | 说明 |
|---|---|---|
| Intel | msm-beta-2.1.5-darwin-amd64.tar.gz |
Intel 芯片 Mac |
| Apple Silicon | msm-beta-2.1.5-darwin-arm64.tar.gz |
M1/M2/M3 芯片 |
🖼️ 桌面应用版本(Desktop)
macOS 桌面应用
| 架构 | 文件 | 说明 |
|---|---|---|
| Intel | msm-desktop-beta-2.1.5-darwin-amd64.dmg |
Intel 芯片 Mac |
| Apple Silicon | msm-desktop-beta-2.1.5-darwin-arm64.dmg |
M1/M2/M3 芯片 |
安装步骤:
- 下载对应架构的 DMG 文件
- 双击 DMG 文件,将应用拖入 Applications 文件夹
- 首次打开时,如果遇到"无法验证开发者"提示:
- 打开"系统设置" → "隐私与安全性"
- 点击"仍要打开"按钮
- 由于应用未经过 Apple 公证,macOS 可能拦截首次打开,或提示"文件已损坏/无法打开"。可执行以下命令解除隔离属性:
- /usr/bin/xattr -cr "/Applications/msm-desktop.app"
- 该命令仅用于处理 Gatekeeper/隔离属性拦截;发布流程已校验包内后端签名和可执行性。如果执行后仍无法安装服务,请下载最新版本并反馈错误日志。
🚀 快速安装
OpenWrt 请使用上方的原生软件包,按 OpenWrt 安装指南 操作。
一键安装脚本(Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/msm9527/msm-wiki/main/install_beta.sh | sudo bash🔐 完整性校验
- 校验清单:
SHA256SUMS - CLI 发布包使用加固版构建,启动时会校验内嵌官方 SHA-256;若二进制被篡改会拒绝运行
手动安装(以 Linux amd64 为例)
# 下载
wget https://github.com/msm9527/msm-wiki/releases/download/beta-2.1.5/msm-beta-2.1.5-linux-amd64.tar.gz
# 解压
tar -xzf msm-beta-2.1.5-linux-amd64.tar.gz
# 安装
sudo mv msm /usr/local/bin/msm
sudo chmod +x /usr/local/bin/msm
# 验证
msm --versionDocker 安装
# 拉取镜像
docker pull msmbox/msm:beta-2.1.5
# 运行容器
docker run -d \
--name msm \
-p 7777:7777 \
-v /opt/msm:/opt/msm \
msmbox/msm:beta-2.1.5⚖️ 使用与合规
MSM 是用于管理用户自有或已获授权设备的自托管管理平台,不提供代理节点、订阅或违法内容。请勿用于未授权访问、侵权或其他违法活动。