jimyag's Blog

用 Clash 安卓端的应用绕过恢复小米互联

手机开启 Clash 后,Mac 上的小米互联服务能找到 Xiaomi 15 Ultra,也显示 Connected via LAN,但打开妙享桌面(Home screen+)后,手机窗口没有画面。关闭手机代理,妙享桌面马上恢复正常。

在 Clash 安卓端的访问控制中,将三个小米互联系统服务排除出 VPN 后,妙享桌面恢复正常。这个设置只让选中的服务绕过 VPN,其他应用继续按原有规则分流。

在访问控制中排除互联服务

下面按 Clash for Android / Clash Meta for Android 的界面操作。其他安卓代理客户端如果提供“分应用代理”或“应用绕过”,选择对应的排除模式。

  1. 打开 Clash,进入“设置 → 网络”。
  2. 将“访问控制模式”设为“不允许已选择的应用”。
  3. 打开“访问控制应用包列表”,点击右上角三点菜单,取消勾选“过滤 → 系统应用”,让系统服务显示出来。
  4. 找到并勾选下面三个服务。
应用名称包名
小米互联通信服务com.xiaomi.mi_connect_service
设备互联com.milink.service
跨屏协同服务com.xiaomi.mirror
访问控制应用包列表中,勾选小米互联通信服务、设备互联和跨屏协同服务

不同系统版本可能把“设备互联”显示为“互联互通服务”或“投屏”,把“跨屏协同服务”显示为“MIUI+”。优先核对包名;这些组件的对应关系也可以在 MiLinkNFC 的 HyperOS 组件列表中查到。

“不允许已选择的应用”表示将选中的服务排除出 VPN,它们仍可使用手机原来的网络。若选成“仅允许已选择的应用”,就会只有这些服务进入 VPN,其他应用反而绕过 Clash。

保存设置后,停止并重新启动 Clash,再重新打开 Mac 上的妙享桌面。访问控制名单在创建 VPN 时应用,修改名单后需要重新建立连接。

搜不到服务时

这次设置时,最初也搜不到上述服务,后来发现是应用列表的过滤条件隐藏了它们。

“过滤 → 系统应用”勾选后会隐藏系统应用,需要保持未勾选。取消过滤后,可以搜索“互联”“协同”或“投屏”;支持按包名搜索的版本也可以直接输入包名。

右上角过滤菜单中的系统应用选项保持未勾选

选好服务后,返回上一页核对访问控制模式是否为“不允许已选择的应用”。应用名单和模式需要配合设置。

直连规则与应用绕过的区别

排查日志中有四条系统界面进程访问 idm.iot.mi.com:443 的记录,全部命中 direct。这些记录只能说明请求选择了直连,不能证明投屏连接正常。

Clash 规则里的 DIRECT 决定进入代理内核后的出站方式。应用流量被 Android VPN 接管后,即使选择直连,仍然可能经过 VPN 的虚拟网络接口。

应用绕过则在 Android VPN 接管流量时排除指定应用。Android 官方文档说明,被排除的应用使用系统网络,其他应用继续使用 VPN。

Clash Meta for Android 的 VPN 服务实现中,“不允许已选择的应用”对应 DenySelected,通过 addDisallowedApplication() 将名单中的包排除出 VPN。

这次已经验证,关闭手机代理或排除这三个服务都能让妙享桌面恢复正常。日志没有记录到失败的投屏连接,具体受影响的地址、端口和协议还无法确定。

检查设置是否生效

  • 保持手机 Clash 开启,在 Mac 上打开妙享桌面,检查画面更新和鼠标操作是否正常。
  • 打开需要代理的应用,例如 X 或 Google Play,检查它们是否仍命中原来的代理策略。

本次确认了妙享桌面恢复正常,其他应用的分流还需要按上面的方式核对。

应用排除会让这三个服务的全部网络请求绕过 VPN,包括访问公网的请求。只排除互联所需的服务,保留其他应用的原有名单和分流规则即可。

#Clash #Android #小米 #Macos #网络