Skip to content

🚀 MSM beta-2.1.5(Beta 版)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:58
· 25 commits to main since this release
025f406

📦 MSM beta-2.1.5

Build Status
Version
Platform

Beta 版每日自动构建 · 包含最新代码更新


✨ 本次更新

🎉 本次亮点(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


💾 下载安装

🖥️ 命令行版本(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)
文件 格式
luci-app-msm-2.1.5_beta-r3_all.apk apk
luci-app-msm_2.1.5_beta-r3_all.ipk ipk
msm-2.1.5_beta-r3_x86_64.apk apk
msm_2.1.5_beta-r3_x86_64.ipk ipk
msm-2.1.5_beta-r3_aarch64_cortex-a53.apk apk
msm-2.1.5_beta-r3_aarch64_cortex-a72.apk apk
msm-2.1.5_beta-r3_aarch64_generic.apk apk
msm_2.1.5_beta-r3_aarch64_cortex-a53.ipk ipk
msm_2.1.5_beta-r3_aarch64_cortex-a72.ipk ipk
msm_2.1.5_beta-r3_aarch64_generic.ipk ipk
msm-2.1.5_beta-r3_arm_arm1176jzf-s_vfp.apk apk
msm_2.1.5_beta-r3_arm_arm1176jzf-s_vfp.ipk ipk
msm-2.1.5_beta-r3_arm_cortex-a15_neon-vfpv4.apk apk
msm-2.1.5_beta-r3_arm_cortex-a7_neon-vfpv4.apk apk
msm-2.1.5_beta-r3_arm_cortex-a9_neon.apk apk
msm-2.1.5_beta-r3_arm_cortex-a9_vfpv3-d16.apk apk
msm_2.1.5_beta-r3_arm_cortex-a15_neon-vfpv4.ipk ipk
msm_2.1.5_beta-r3_arm_cortex-a7_neon-vfpv4.ipk ipk
msm_2.1.5_beta-r3_arm_cortex-a9_neon.ipk ipk
msm_2.1.5_beta-r3_arm_cortex-a9_vfpv3-d16.ipk ipk

🧩 派网应用版本(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 安装包

说明:

  1. .apx 安装后会在派网页面中提供 MSM 控制入口
  2. 实际管理界面由派网入口页跳转到 MSM 自身 Web 控制台
  3. 如果派网设备已有服务占用目标端口,请先处理端口冲突
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 芯片

安装步骤:

  1. 下载对应架构的 DMG 文件
  2. 双击 DMG 文件,将应用拖入 Applications 文件夹
  3. 首次打开时,如果遇到"无法验证开发者"提示:
    • 打开"系统设置" → "隐私与安全性"
    • 点击"仍要打开"按钮
  4. 由于应用未经过 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 --version

Docker 安装

# 拉取镜像
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 是用于管理用户自有或已获授权设备的自托管管理平台,不提供代理节点、订阅或违法内容。请勿用于未授权访问、侵权或其他违法活动。


📚 文档与支持


🤖 由 GitHub Actions 自动构建

GitHub
Documentation
Docker