Stash for Android Stash for Android
返回文章列表
入门与下载

Stash for Android 配置模板

配置文件能否正常工作,关键在 YAML 的缩进、键名、代理组和规则引用;本文从一次导入排错开始逐层确认。

先看导入成功后为什么没有生效

你从群里转来一份配置,导入成功,首页显示已连接。可某些应用还是走直连,另一些又打不开。回头看链接,里面塞了 & 和中文注释,复制时被截断;文件看着像纯文本,改错一个缩进就整份失效。对准备使用 Stash for Android 的人来说,stash 配置模板不是照抄的魔法文件,而是一份能读懂、能替换、能排错的 YAML 说明。下面从一次导入失败讲起,把文件结构、规则类型、代理协议和常见失效原因说清楚。

YAML 配置结构流程示意图
示意图:配置文件从读取到加载

Stash for Android 是 Stash 的 Android 抢先体验版本,面向手机与平板,不支持 Android TV,支持 Android 7.0 及以上系统。它能读取与 macOS、iOS 版相同的 YAML 文件,桌面端的思路在手机上基本通用。但授权不能跨平台混用,Android 版通过 Google Play 计费。下载只认 Google Play,官方未提供独立 APK。市面上有多个自称官网的页面和同名应用,请确认开发者、包名和签名,具体安装路径可参考 download.html。

为什么导入成功却感觉没生效:先检查文件格式

导入成功不等于配置正确。Stash 能读入文件,只说明语法层面没被完全拒绝。YAML 靠空格表达层级,对缩进敏感,不靠大括号;同一层级必须对齐,Tab 与空格混用容易出错。中文注释、全角标点、从聊天窗口复制时插入的换行,都会让某一段被解析成意料之外的结构。

排查按顺序看三件事:文件是否以合法的 YAML 结构开头;键名是否拼写一致;列表项前的短横线是否落在正确层级。文档资料列出入门、规则类型、代理协议和配置文件示例等资料。遇到不认识的字段,先去官方文档或 tutorial.html 确认,别凭感觉加键。改完保存为 UTF-8 文本,再重新导入观察。

stash 配置文件格式:模板通常由哪几段组成

一份可用的模板,可以按“入口—出站—分流—收尾”来读。不同模板键名和写法可能不同,阅读顺序是稳定的:

规则与策略组设置示意图
示意图:规则和策略组的关系
  1. 先找全局设置段。这里决定日志级别、是否允许局域网访问、DNS 相关选项等。先别动这些值,只确认没有明显语法错误。
  2. 再找代理与代理组。代理定义“怎么连”,代理组定义“按什么策略选”。Stash 支持策略组和订阅来源,订阅通常以链接形式出现,模板里可能只留了待填写位置。
  3. 然后找规则段。Stash 支持规则可以决定连接的处理方向,包括改道或拦截,规则决定某个请求走代理、走直连还是被拦下。
  4. 最后看规则集或远程资源引用。它们常以 URL 出现,更新频率和可用性会影响整体表现。
  5. 收尾检查有没有兜底规则。没有兜底时,未命中流量的表现可能很奇怪。

第一次改,只动订阅链接和策略组选择这两类值,其他结构保持原样。模板的价值在结构清晰,不在字段多;字段堆得越满,出错后越难定位。

规则类型怎么读:路由、重定向与拦截的差别

规则段最容易被误改。按官方说明,Stash 支持规则可以决定连接的处理方向,包括改道或拦截,三类行为对应不同的规则写法和目的。路由类规则回答“这条连接交给哪个策略组”;重定向类规则改变请求去向;拦截类规则直接终止连接。看到不认识的规则名,先查官方规则类型文档,再决定是否保留。

普通用户可以守两条原则。第一,域名类规则优先于泛化规则,越具体的越靠前,免得被前面的宽泛条件抢先命中。第二,先保证兜底规则存在,再逐步加细分规则;每加一组重新导入验证一次,出问题能快速回退。别把不同模板抄来的规则直接叠在一起,重复或冲突的规则会让结果难以预期。

排查“某应用该走代理却走了直连”时,先看它命中的是哪条规则,再看该规则指向的策略组当前选了什么。规则和策略组是两层,别混为一谈。

stash 配置教程:把模板改成自己能维护的版本

改模板不是重写模板。按下面的顺序来,改动可控,出问题也容易回退:

  1. 留一份原始模板副本,命名里带上用途,改坏了还有对照。
  2. 只替换订阅入口和策略组选项,先不新增规则。导入后确认基本连通。
  3. 按使用场景加少量规则,比如把常用服务指向固定策略组,其余交给兜底。
  4. 每次只改一个段落,改完立即重新导入验证,确认没有语法报错。
  5. 在文件顶部注释里记下这一版改了什么,下次排错有据可查。
  6. 配置稳定后再考虑规则集等远程资源,同时保留可回退的本地规则。

不用追求“全”。先让常用流量走对,再处理边缘情况。Stash for Android Android 版本目前仍处于抢先体验状态,功能说明应以页面为准,行为细节可能随版本调整。遇到与文档不一致的地方,以当前 Release 页和官方文档为准,别轻信二手教程里的固定结论。更多排错思路见 faq.html,想系统读文章可浏览 articles.html。

代理协议与订阅:模板里最容易填错的部分

代理协议段定义连接方式,订阅提供节点来源。模板里常见“协议名 + 地址 + 端口 + 认证信息”的组合,字段名以官方代理协议文档为准。不同协议的字段混填,或把端口写成字符串,都可能让这条代理不可用。单条代理不可用,未必让整份配置报错,只会表现为某个策略组选不中。

订阅链接同理。它是一段 URL,复制时容易带上多余空格或换行。有些模板把订阅地址放在注释里让你手动替换,忘了换就会一直用旧入口。Stash 支持机场订阅,但订阅的质量、可用性和合规性由服务方决定,本文不评价、不排名、不测速。选服务前先看服务条款和当地法规,涉及机场对比可参考 airport.html,请自行判断风险。

“来路不明版本”“未经查验版本”这类说法,建议直接避开。来源不明的安装包和配置可能被篡改,既无法确认开发者和签名,也可能带来账号与隐私风险。Android 版Android 版的商店入口是 Google Play,不存在单独 APK 下载页,下载以官方来源途径为准。macOS 或 iOS 的授权不能直接用于 Android,别信“一个授权全平台通用”。

stash 配置文件突然失效怎么回事:常见原因与处理顺序

配置文件突然失效,通常不是软件坏了,而是外部条件变了。按从外到内的顺序排查:

  1. 订阅或远程规则集地址失效。链接过期、服务方换域名、网络访问不到该地址,都会让依赖它的段落落空。先确认链接可达,再检查模板里的引用是否还指向它。
  2. 文件被编辑器改坏。自动缩进、全角空格、保存成带 BOM 的编码,都可能让 YAML 解析失败。用纯文本编辑器重存为 UTF-8,再对比缩进。
  3. 规则与策略组不匹配。删了某个策略组,规则还指向它;或改了组名,规则没同步。逐段搜索组名,确认引用一致。
  4. 兜底规则缺失或顺序错误。前面规则太宽,后面的细分规则永远不生效;或没有兜底,未命中流量行为异常。
  5. 平台行为差异。Android 版与桌面版共用 YAML,但运行环境不同;这里讨论的是手机和平板使用场景,Android TV 不属于当前支持范围,在电视类设备上讨论“失效”没有意义。
  6. 改动没保存,或导入了旧文件。确认你编辑的那份就是实际导入的那份,文件名相似时尤其容易混淆。

排查时坚持一次只改一处、改完就验证。如果全部查过仍无头绪,回到原始模板对照差异,往往比继续叠加修改更快。常见问题见 faq.html;初次安装与权限设置见 tutorial.html;产品入口在 index.html。

最后提醒两点。Stash for Android 的标签包含 Android 与源码未公开,属于抢先体验产品,功能和文档都在演进,拿不准的字段以官方文档和当前 Release 页为准;教程页当前暂无已发布的视频教程,别把“没找到视频”当成配置无效的理由。把模板当成一份可读的说明书,而不是一次性复制品,配置再变,你也能自己找到问题。

修改模板时如何留下线索

配置文件较长时,可以先复制出一份精简版,只保留一个代理组和一条规则进行载入。精简版能正常工作,再逐段加回 DNS、策略组和分流条目,比一次粘贴整份文件更容易找到缩进或字段类型的问题。每次只改一个区域,并在文件名中写下日期,回退时不会混淆版本。

每次只改一个区域,并在文件副本上保留原始内容。先处理缩进,再处理键名,最后检查引用关系。YAML 对空格层级敏感,列表项和子字段没有对齐时,导入失败往往只显示为结构错误。把修改拆成小步后,出现异常可以迅速回到上一个可用版本。

代理、代理组和规则是三层不同的概念。代理描述连接方式,策略组决定选择路径,规则负责按条件路由、重定向或拦截。不要把订阅地址直接塞进不匹配的字段,也不要把网上的完整文件照搬到自己的设备。官方文档里的规则类型、代理协议和配置文件示例适合用来理解结构,具体内容仍需按自己的来源确认。

排查配置时,建议把“解析成功”和“连接成功”分成两个时间点记录。解析成功只说明文件结构被接受,连接成功还取决于代理地址、证书和规则命中情况。可以先关闭不相关的规则集,保留一个明确的测试域名,确认它进入预期策略组后再恢复其他条目。

手机键盘也可能改变配置内容。输入英文冒号、短横线和引号时,某些输入法会自动替换成全角字符。编辑 YAML 前切换到英文模式,保存后用纯文本方式重新打开,看到异常符号就立即撤销。这个小步骤能避免把编辑器行为误判为客户端故障。

配置文件的维护还可以配合版本标签。比如把基础文件标为 base,把只含规则的副本标为 rules,把加入订阅后的文件标为 merged。标签不需要写进 YAML 内容,只放在本地文件名中即可。这样在应用提示结构错误时,可以迅速回到上一份可读取的文件,而不用重新拼装整套配置。

如果需要向他人求助,优先提供错误出现的步骤、应用版本和去掉地址凭据后的字段片段。不要直接发送完整订阅链接或带认证参数的配置。清楚描述“导入前正常、加入哪一段后异常”,比发一张无法定位的完整截图更有帮助。