Stash
Stash 是一款基于 Mihomo(Clash Meta)内核的代理客户端,同时支持 iOS 和 macOS 平台,界面精美、操作流畅。它由独立开发者维护,在 App Store 上提供免费下载,部分高级功能通过内购解锁。Stash 对 Clash Meta 格式的配置文件有极佳的兼容性,是使用机场 Clash 订阅的 iOS / macOS 用户的理想选择。
基本信息
| 项目 | 信息 |
|---|---|
| 平台 | iOS 15.0 及以上 / macOS 12.0 及以上 |
| 价格 | 免费下载,部分功能需内购解锁 |
| 内核 | Mihomo(Clash Meta) |
| App Store(iOS) | 下载地址 |
| App Store(macOS) | 下载地址 |
| 更新频率 | 活跃,跟随 Mihomo 内核版本更新 |
关于购买
Stash 需要非中国区 Apple ID 才能下载。应用本身免费,但"覆写"(Override)等高级功能需要付费内购解锁。
核心特性
- Mihomo 内核:直接使用 Clash Meta 内核,对 Clash Meta 格式订阅的兼容性最佳
- Clash Meta 配置完整支持:支持策略组、规则集、覆写等 Clash Meta 的全部配置特性
- 精美的原生 UI:iOS 和 macOS 均采用系统原生设计语言,界面简洁直观
- 覆写(Override):在不修改原始订阅的前提下,叠加自定义的规则、节点和 DNS 配置
- 规则测试工具:内置域名和 IP 的规则命中测试工具,便于排查分流问题
- 流量统计与连接日志:实时查看连接状态、流量统计和每条连接的路由决策
- DNS 模块:支持 DoH、DoT、FakeIP 等 Mihomo 的完整 DNS 功能
- TUN 模式:通过虚拟网卡接管系统全部流量,实现透明代理
协议支持
Stash 的协议支持完全继承自 Mihomo 内核:
| 协议 | 支持状态 | 备注 |
|---|---|---|
| Shadowsocks(AEAD) | 支持 | — |
| Shadowsocks 2022 | 支持 | — |
| VMess | 支持 | 支持 WebSocket、gRPC、HTTP/2 等传输层 |
| VLESS | 支持 | 支持 Reality、XTLS-Vision |
| Trojan | 支持 | — |
| Hysteria 2 | 支持 | — |
| TUIC v5 | 支持 | — |
| AnyTLS | 支持(TestFlight 版) | 需要通过 TestFlight 安装测试版 |
| ShadowTLS v3 | 支持 | — |
| WireGuard | 支持 | — |
| NaiveProxy | 支持 | — |
| SOCKS5 | 支持 | — |
| HTTP | 支持 | — |
安装
iOS
- 切换到非中国区 Apple ID
- 在 App Store 搜索"Stash",找到带有字母 S 图标的应用
- 点击"获取"免费下载并安装
- 首次打开时,系统会请求创建 VPN 配置的权限,点击"允许"并通过 Face ID / Touch ID 验证
macOS
Stash 同样支持 macOS,可以通过 Mac App Store 下载:
- 切换到非中国区 Apple ID
- 在 Mac App Store 搜索"Stash"
- 下载并安装
macOS 版本的界面和功能与 iOS 版本高度一致,配置文件可以通过 iCloud 在两端同步。
关于 TestFlight 版本
Stash 提供了 TestFlight 公开测试渠道,可以提前体验最新功能(包括 AnyTLS 等新协议支持)。TestFlight 版本通常比正式版领先一到两个版本,但稳定性略低于正式版。加入方式:访问 Stash 的官方 TestFlight 链接(可在开发者的社交媒体或社区中获取)。
界面说明
Stash 的主界面分为几个核心区域:
底部标签栏
| 标签 | 功能 |
|---|---|
| Dashboard(仪表盘) | 代理开关、当前策略组状态、实时流量监控 |
| Proxies(代理) | 查看和切换策略组及节点 |
| Rules(规则) | 查看当前加载的分流规则列表 |
| Profiles(配置) | 管理订阅和配置文件 |
| Settings(设置) | 全局设置 |
Dashboard 主界面
- 顶部开关:点击可启用或停用代理
- 策略组卡片:展示当前配置中定义的策略组,点击可展开并切换节点
- 流量统计:实时显示上下行速率和总流量
- 连接日志:显示最近的连接记录,包括域名、IP、走代理还是直连
添加订阅(机场用户)
Stash 的主要使用场景是导入机场的 Clash Meta 格式订阅。
第一步:获取订阅链接
登录机场控制面板,找到订阅链接。Stash 支持以下格式:
- Clash Meta 格式(推荐):YAML 格式的完整配置文件,包含节点和规则
- 通用 URI 列表:Base64 编码的节点 URI 列表(功能较少,无规则)
大多数机场会提供 Clash 或 Clash Meta 格式的专用订阅链接,请优先使用这种格式。
第二步:在 Stash 中添加订阅
- 打开 Stash,进入"Profiles"(配置)标签
- 点击右上角的"+"按钮
- 选择"Remote Profile"(远程配置)
- 在 URL 字段填入机场提供的订阅链接
- 在 Name 字段填写备注名称(如机场名称)
- 点击"Add"完成添加
Stash 会自动下载并解析订阅配置,下载完成后配置文件名称会显示在列表中。
第三步:激活配置
在"Profiles"列表中,点击刚添加的配置文件,选择"Use"(使用)将其设为当前活动配置。激活后,可以在 Dashboard 中看到订阅中定义的策略组。
订阅自动更新
在"Profiles"→"Remote Profile"的设置中,可以配置自动更新间隔。建议设置为每 24 小时自动更新一次,确保节点列表保持最新。
手动更新订阅:
在"Profiles"列表中,左滑某个远程配置,点击"Update"可立即触发更新。也可以在配置文件设置页面点击"Update Now"。
关于订阅更新失败
如果更新失败并提示网络错误,可以先启用代理,然后在订阅的高级设置中开启"通过代理更新订阅"选项,让 Stash 使用当前激活的节点下载订阅。
切换节点
在 Dashboard 中切换
Dashboard 上会显示配置文件中定义的所有策略组(Proxy Group)。点击某个策略组的卡片,可以展开查看该组内的所有节点,点击节点名称即可切换。
对于 url-test(自动测速)和 fallback 类型的策略组,Stash 会显示每个节点的当前延迟。点击右上角的刷新按钮可以重新测速。
在 Proxies 标签中切换
"Proxies"标签提供了更完整的节点列表视图,可以同时看到所有策略组及其当前选中的节点,操作方式与 Dashboard 相同。
代理模式切换
Stash 支持三种代理模式,可以在 Dashboard 顶部的模式切换器中选择:
| 模式 | 说明 |
|---|---|
| Rule(规则) | 按配置文件中的规则分流,推荐日常使用 |
| Global(全局) | 所有流量均走代理 |
| Direct(直连) | 所有流量直连,相当于暂停代理 |
配置文件格式
Stash 直接使用 Mihomo(Clash Meta)的 YAML 配置格式,与机场提供的 Clash Meta 订阅完全兼容。以下是一个基础配置文件示例:
mixed-port: 7890
allow-lan: false
mode: rule
log-level: warning
ipv6: false
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- localhost
- "*.local"
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
fallback-filter:
geoip: true
geoip-code: CN
proxies:
- name: "VLESS-Reality"
type: vless
server: your.server.ip
port: 443
uuid: your-uuid-here
network: tcp
tls: true
flow: xtls-rprx-vision
reality-opts:
public-key: your-public-key
short-id: a1b2c3d4
client-fingerprint: chrome
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "Auto"
- "VLESS-Reality"
- DIRECT
- name: "Auto"
type: url-test
proxies:
- "VLESS-Reality"
url: "https://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
rules:
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
关于配置文件中的注释
Stash 完整支持 Clash Meta 配置文件中的所有语法,包括注释(以 # 开头)、锚点(YAML 的 & 和 *)等。从机场下载的 Clash Meta 格式订阅可以直接使用,无需任何修改。
覆写(Override)
覆写是 Stash 最实用的进阶功能之一。它允许你在不修改原始订阅配置的前提下,叠加自定义的配置片段,这样订阅更新后你的自定义设置不会丢失。
覆写功能需要内购解锁。
覆写的使用场景
- 在机场订阅的基础上添加自建节点
- 修改机场订阅中的 DNS 设置
- 追加自定义分流规则(如将某些特定网站强制直连或走代理)
- 添加自定义策略组
- 调整 TUN 模式或其他全局设置
创建覆写文件
覆写文件同样使用 YAML 格式,但只需包含需要修改的字段:
示例:添加自建节点并修改 DNS
# override.yaml
# 追加自建节点
prepend-proxies:
- name: "自建-VLESS-Reality"
type: vless
server: your.server.ip
port: 443
uuid: your-uuid-here
network: tcp
tls: true
flow: xtls-rprx-vision
reality-opts:
public-key: your-public-key
short-id: a1b2c3d4
client-fingerprint: chrome
# 追加规则(在现有规则之前插入)
prepend-rules:
- DOMAIN-SUFFIX,custom-site.com,DIRECT
- DOMAIN-SUFFIX,work-internal.com,DIRECT
# 修改 DNS 设置
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://doh.pub/dns-query
覆写字段说明:
| 字段 | 说明 |
|---|---|
prepend-proxies | 在节点列表开头追加节点 |
append-proxies | 在节点列表末尾追加节点 |
prepend-proxy-groups | 在策略组列表开头追加策略组 |
append-proxy-groups | 在策略组列表末尾追加策略组 |
prepend-rules | 在规则列表开头追加规则(最高优先级) |
append-rules | 在规则列表末尾追加规则(最低优先级) |
dns | 覆盖 DNS 配置(完全替换) |
mixed-port | 修改混合代理端口 |
allow-lan | 修改是否允许 LAN 访问 |
在 Stash 中应用覆写
- 将覆写文件通过 iCloud Drive 上传,或通过 URL 引用远端覆写文件
- 在"Profiles"标签中,找到目标配置文件并进入其设置页面
- 在"Override"区域点击"+",选择覆写来源(本地文件或远程 URL)
- 保存后,Stash 会将覆写文件的内容合并到原始订阅配置中
TUN 模式
TUN 模式通过创建虚拟网卡,在系统层面接管所有网络流量,无需对每个应用单独配置代理。
在配置文件中启用 TUN:
tun:
enable: true
stack: system
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
或者在 Stash 的图形界面中:
- 进入"Settings"→"TUN Mode"
- 开启"Enable TUN"
- 选择网络栈(Stack):推荐使用
system
Stack 选项说明:
| 值 | 说明 |
|---|---|
system | 使用系统网络栈,兼容性最好,首选 |
gvisor | 使用 gVisor 用户态网络栈,隔离性更强 |
mixed | TCP 使用系统网络栈,UDP 使用 gVisor |
关于 TUN 模式的权限
iOS 和 macOS 上,TUN 模式通过系统的 VPN 接口实现,需要用户授权 VPN 权限。首次启用时,系统会弹出权限请求对话框。
DNS 配置
Stash 完整实现了 Mihomo 的 DNS 模块,包括 FakeIP 模式和分 DNS 解析策略。
推荐的 DNS 配置
dns:
enable: true
ipv6: false
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- localhost
- "*.local"
- "*.msftconnecttest.com"
- "*.msftncsi.com"
- "time.*.apple.com"
- "time.*.google.com"
- "+.ntp.org"
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
FakeIP 模式的作用
在 FakeIP 模式下,Stash 不会在本地进行实际的 DNS 解析,而是为每个域名分配一个假 IP(来自 fake-ip-range 指定的地址段)。当应用使用这个假 IP 发起连接时,Stash 拦截连接请求,识别出真实的目标域名,然后根据分流规则决定是直连(此时进行真实 DNS 解析)还是走代理(在代理节点端进行 DNS 解析)。
这种模式的好处是:
- 域名规则在 DNS 解析之前就生效,精度更高
- 走代理的流量不在本地进行 DNS 解析,防止 DNS 泄露
- 减少了等待 DNS 响应的延迟(直接返回假 IP)
规则测试工具
Stash 内置了规则命中测试工具,可以直观地了解某个域名或 IP 会被哪条规则匹配、最终走哪个出站。
使用方式:
- 在"Settings"(设置)中找到"Rule Testing"(规则测试)
- 输入域名(如
google.com)或 IP 地址 - 点击测试,Stash 会显示:
- 该域名匹配的规则类型和具体规则
- 最终路由到的出站(策略组或直连)
- DNS 解析结果(在不使用 FakeIP 的情况下)
这个功能在排查分流问题时非常实用。例如,你发现某个网站应该走代理但实际上直连了,通过规则测试可以立即定位到是哪条规则错误地将其匹配为直连。
连接日志
在 Dashboard 中,底部区域会实时显示连接日志。每条记录包含:
- 目标域名或 IP
- 连接协议(TCP / UDP)
- 命中的规则
- 最终出站(哪个节点或直连)
- 连接耗时
点击某条日志记录,可以查看更详细的信息,包括完整的规则链和 DNS 解析过程。
如需查看完整的历史日志,在"Settings"→"Logging"中可以调整日志保留设置,并导出日志文件。
与其他 iOS / macOS 客户端的对比
| 对比维度 | Stash | Shadowrocket | Quantumult X | Surge | Loon |
|---|---|---|---|---|---|
| 价格 | 免费(高级功能内购) | $2.99 | $7.99 | 较贵 | $2.99 |
| 内核 | Mihomo | 自有 | 自有 | 自有 | 自有 |
| Clash Meta 配置兼容性 | 极高(原生兼容) | 有限 | 有限 | 有限 | 有限 |
| VLESS + Reality | 支持 | 支持 | 不支持 | 支持 | 支持 |
| Hysteria 2 | 支持 | 支持 | 不支持 | 支持 | 支持 |
| AnyTLS | 支持(TF版) | 暂不支持 | 不支持 | 支持 | 支持(TF版) |
| 覆写功能 | 支持(内购) | 有限 | 支持(QX语法) | 支持(Surge模块) | 支持 |
| 脚本能力 | 有限 | 有限 | 极强 | 极强 | 强 |
| 规则测试工具 | 有 | 无 | 无 | 有 | 无 |
| macOS 支持 | 是 | 否 | 否 | 是 | 否 |
| 界面风格 | 现代原生 | 简洁 | 功能密集 | 专业 | 功能密集 |
| 适合人群 | Clash用户,iOS/macOS双端 | 入门用户 | 脚本进阶用户 | 专业用户 | 进阶用户 |
选择 Stash 的理由:
- 你的机场提供 Clash Meta 格式订阅,且想要开箱即用的最佳兼容体验
- 你同时使用 iPhone 和 Mac,希望两端使用同一个客户端且通过 iCloud 同步配置
- 你需要覆写功能来在订阅之上叠加自定义配置
- 你希望使用 AnyTLS、NaiveProxy 等较新的协议(Stash 跟随 Mihomo 快速支持新协议)
- 你不需要复杂的脚本功能,但需要比 Shadowrocket 更强的规则控制
不选择 Stash 的情形:
- 你需要强大的脚本和 MitM 能力(选 Quantumult X 或 Surge)
- 你只需要简单的代理功能且预算有限(Shadowrocket $2.99 更合适)
- 你的机场不提供 Clash Meta 格式订阅,且不想使用订阅转换工具
iCloud 配置同步
Stash 支持通过 iCloud Drive 在 iOS 和 macOS 之间同步配置文件:
- 确保两端均登录相同的 Apple ID,且 iCloud Drive 已启用
- 在 Stash 的"Settings"→"iCloud Sync"中开启 iCloud 同步
- 开启后,本地配置文件会自动备份到 iCloud Drive,并在其他设备上可用
- 在 Mac 端同样开启 iCloud 同步后,可以直接使用 iPhone 端添加的配置文件和订阅
这个功能对于同时使用 iPhone 和 Mac 的用户非常方便,无需在两端分别添加订阅和配置规则。
常见问题
Q:从机场导入 Clash Meta 格式订阅后,看不到节点怎么办?
可能原因:
- 订阅下载失败,检查网络连接,或开启"通过代理下载订阅"后重试
- 订阅内容格式有问题,尝试在浏览器中直接访问订阅链接,确认返回的是有效的 YAML 内容
- 配置文件激活失败,在"Profiles"中确认该配置文件已被标记为"Use"(使用中)
- 订阅中的所有节点均被隐藏在策略组内,进入"Proxies"标签查看完整节点列表
Q:开启代理后,某些国内应用速度变慢或无法连接?
说明这些应用的流量被错误地路由到了代理。排查方式:
- 在"Settings"→"Rule Testing"中测试该应用的域名,查看命中了哪条规则
- 如果发现是某条兜底规则(如
MATCH,Proxy)将其路由到了代理,而没有被直连规则提前捕获,需要在订阅的规则集中检查是否有对应的国内直连规则 - 使用覆写功能,在
prepend-rules中手动添加该域名的直连规则
Q:FakeIP 模式导致某个游戏或应用无法正常使用?
部分应用不兼容 FakeIP 模式(例如某些游戏的反作弊系统、NTP 时间同步服务等)。解决方法是将这些域名加入 fake-ip-filter 排除列表:
在配置文件的 DNS 部分(或覆写文件中)添加:
dns:
fake-ip-filter:
- "*.lan"
- localhost
- "+.stun.*.*"
- "+.stun.*.*.*"
- "+.stun.*.*.*.*"
- "*.n.n.srv.nintendo.net"
- "+.stadia.com"
- "time.windows.com"
- "+.ntp.org"
# 将有问题的游戏或应用域名加入此列表
- "game-problematic-domain.com"
Q:Stash 的覆写功能和直接修改配置文件有什么区别?
直接修改配置文件会在下次订阅更新时被覆盖;而覆写文件独立存储,每次订阅更新后 Stash 会将覆写内容重新合并到最新的订阅配置中,确保自定义设置持久有效。
Q:Stash macOS 版和 iOS 版有哪些功能差异?
两者功能大致相同,主要差异在于平台特性:
- macOS 版的界面更适合鼠标操作,提供了菜单栏图标和更大的界面空间
- iOS 版支持 Widget(小组件)快速开关
- 两者均支持 TUN 透明代理,但在 macOS 上权限获取方式略有不同(需要输入系统密码而非 Face ID)
- 配置文件可以通过 iCloud 在两端同步
Q:Stash 能否用于不支持 Clash Meta 格式的订阅?
可以,Stash 也支持通用 URI 格式(Base64 编码的节点列表)。但此格式的订阅只包含节点信息,没有规则和策略组,需要手动配置规则,体验不如 Clash Meta 格式完整。
对于只有 sing-box 格式订阅的机场,可以通过 Sub-Converter 等订阅转换服务将其转换为 Clash Meta 格式后再导入 Stash。
Q:Stash 是否支持 Clash Meta 的 rule-providers(规则集)功能?
支持。Stash 完整实现了 Mihomo 的 rule-providers 功能,可以在配置文件中引用远端的规则集文件,例如:
rule-providers:
proxy-list:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
rules:
- RULE-SET,proxy-list,Proxy
安全注意事项
- 只从 App Store 下载 Stash,不要安装非 App Store 渠道的修改版本
- 不要随意导入来源不明的配置文件,配置文件可以定义任意规则,恶意配置可能将你的流量路由到攻击者控制的服务器
- 覆写文件中的脚本(如果有)同样存在安全风险,只使用来自可信来源的覆写配置
- 保护好订阅链接,订阅链接相当于你的服务凭证,不要将其分享给他人或上传到公开仓库
- 定期检查已安装的 VPN 描述文件,在 iOS "设置"→"通用"→"VPN 与设备管理"中,确认没有安装不认识的描述文件
相关资源
- Stash App Store 页面:apps.apple.com/app/stash/id1596063349
- Mihomo 官方文档(配置参考):wiki.metacubex.one
- Loyalsoldier Clash 规则集:github.com/Loyalsoldier/clash-rules
- MetaCubeX GeoSite / GeoIP 数据:github.com/MetaCubeX/meta-rules-dat
延伸阅读
- Mihomo — Stash 的底层核心,了解 Mihomo 的完整功能和配置方式
- Shadowrocket — 入门级 iOS 代理客户端,$2.99 且更新活跃
- Quantumult X — 脚本能力最强的 iOS 代理客户端
- Loon — 兼顾脚本和易用性的 iOS 代理客户端
- Surge — iOS 和 macOS 平台功能最全面的付费代理工具
- 代理软件总览 — 回到软件总览页面