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

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

<!--more-->

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

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

1. 打开 Clash，进入“设置 → 网络”。
2. 将“访问控制模式”设为“不允许已选择的应用”。
3. 打开“访问控制应用包列表”，点击右上角三点菜单，取消勾选“过滤 → 系统应用”，让系统服务显示出来。
4. 找到并勾选下面三个服务。

| 应用名称 | 包名 |
| --- | --- |
| 小米互联通信服务 | `com.xiaomi.mi_connect_service` |
| 设备互联 | `com.milink.service` |
| 跨屏协同服务 | `com.xiaomi.mirror` |

<img src="https://jimyag.com/posts/clash-android-bypass-xiaomi-interconnectivity/images/select-xiaomi-services.png" width="364" height="862" alt="访问控制应用包列表中，勾选小米互联通信服务、设备互联和跨屏协同服务" loading="lazy" decoding="async" style="max-width: 100%; height: auto; display: block; margin: 1rem auto;">

不同系统版本可能把“设备互联”显示为“互联互通服务”或“投屏”，把“跨屏协同服务”显示为“MIUI+”。优先核对包名；这些组件的对应关系也可以在 [MiLinkNFC 的 HyperOS 组件列表](https://github.com/XFY9326/MiLinkNFC#注意事项)中查到。

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

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

## 搜不到服务时

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

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

<img src="https://jimyag.com/posts/clash-android-bypass-xiaomi-interconnectivity/images/disable-system-app-filter.png" width="355" height="376" alt="右上角过滤菜单中的系统应用选项保持未勾选" loading="lazy" decoding="async" style="max-width: 100%; height: auto; display: block; margin: 1rem auto;">

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

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

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

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

应用绕过则在 Android VPN 接管流量时排除指定应用。[Android 官方文档](https://developer.android.com/develop/connectivity/vpn#disallowed-apps)说明，被排除的应用使用系统网络，其他应用继续使用 VPN。

Clash Meta for Android 的 [VPN 服务实现](https://github.com/MetaCubeX/ClashMetaForAndroid/blob/main/service/src/main/java/com/github/kr328/clash/service/TunService.kt)中，“不允许已选择的应用”对应 `DenySelected`，通过 `addDisallowedApplication()` 将名单中的包排除出 VPN。

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

## 检查设置是否生效

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

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

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

