Android 快速上手
Chute Android 运行的是与其他版本相同的引擎(Kotlin 移植),读取同一种配置文件。本页讲首次运行;iOS、macOS、tvOS 的对应内容在快速上手,那里的最小配置在 Android 上原样可用。
1. 获取配置
首次启动且没有任何配置时,Chute 会打开设置向导(「让我们设置你的第一个代理配置」),提供三条路径:服务商提供的订阅 URL、二维码,或者填入你自己的服务器信息,再选择需要代理的网站和 DNS。最后一步创建并连接会保存配置、选中它并启动隧道。点跳过会关掉向导;只要还没有任何配置,下次启动 Chute 时它会再次出现,但旋转屏幕或回到应用时不会。设置里的显示新手引导可以再次打开这个向导。
订阅 URL 必须是 https:// 地址。向导下载到的原生配置——来自这个 URL,或来自二维码里的地址——会作为托管配置保存,每 86400 秒刷新一次,也就是下面添加订阅的默认值。Clash 或 sing-box 配置不论来自订阅还是二维码,都会像在配置页一样被转换成不会刷新的静态快照。二维码的读法与那一页相同:chute://download 链接(或 import、install-config、subscribe)给出要下载的地址,二维码里也可以直接放一整份配置,而 chute://tv 或 chute://remote 码会打开主界面的远程仓库对话框。
之后要再添加配置,点主界面上的配置栏打开配置页,然后点从...添加配置:
- 空白配置——把一份模板存为
Untitled.conf,不会打开编辑器;要编辑它,在该行的 ⋮ 菜单里选结构化编辑或文本编辑。 - 添加订阅——从服务商 URL 下载,并作为托管配置保存,按你在对话框里填的间隔刷新(默认 86400 秒)。Clash 或 sing-box 订阅会在进来时被转换,并作为没有更新头的静态快照保存,因此它不会自己刷新。
- 从本地文件导入——导入 Chute(
.conf)、sing-box(.json)或 Clash/mihomo(.yaml)文件;非原生格式会被自动转换。 - 从 URL 下载、从二维码下载、通过 Wi-Fi 上传文件——同一件事的其他传输方式。Wi-Fi 上传页列出要在同一网络的浏览器里打开的地址,并用 PIN 保护。
- 远程服务器——从远程配置仓库加载配置。
从应用外部打开的 chute://download?url=... 链接——点开的,或用相机扫到的——同样会把文件下下来,Clash 或 sing-box 配置也会像在配置页一样被转换成静态快照,但这条链接不会添加订阅:chute://subscribe?url=... 只是 download 的别名。这类链接保存的原生配置,应用从不刷新,不过运行中的引擎会每 24 小时重新获取它的 URL,并在内存里应用新内容——见 URL 方案。换成在设置向导里扫描,同一个指向原生配置的链接会得到一份由应用每 86400 秒刷新一次的托管配置。
没有许可证时 Chute 只保留一份本地配置;通过任何渠道添加第二份都是 Chute Pro 功能——见许可证与激活。
2. 选中它
在配置页点按一份配置,使其标为待处理,再点完成:Chute 运行的就是这一份。刚在那里添加的配置回来时已经标为待处理;从应用外打开的 chute:// 链接添加的配置也一样:Chute 会打开这一页并把它标出来,在你点完成之前什么都不会变——这类链接永远不会替换 Chute 正在运行的配置。不论有没有许可证,Chute 运行中都可以切换选中的配置;新配置通过重启隧道生效。
3. 启动并授权
点击开关(点击启动 VPN)。首次启动时 Android 会请求允许 VPN 连接——这是每个 VPN 应用都需要的系统授权;拒绝则 Chute 保持停止。两项设置决定隧道承载什么:
- 服务模式——VPN(默认)通过系统 VPN 捕获设备流量;本地代理只运行 HTTP 与 SOCKS5 监听供其他应用或设备指向,不建立隧道。
- 应用代理模式——全局路由全部应用,代理只路由选中的应用,黑名单路由除选中应用外的全部应用。
设置里的相关开关:开机自启(需要先授权过一次 VPN)、仅 Wi-Fi(仅限 VPN 模式:底层网络被系统判定为计费网络时暂停隧道,不再计费时恢复——Android 报回来的是这个,而不是接入方式,所以计费的 Wi-Fi 一样会暂停,不计费的蜂窝套餐则不会),以及始终开启 VPN,它打开的是 Android 的 VPN 列表,因为始终开启那一页本身不是可以直接跳转的目的地;请从那里为 Chute 打开「始终开启 VPN」。在应用外,桌面快捷方式启动、停止、切换,广播 Intent 和 Tasker/Locale 插件都能启停隧道,快捷设置磁贴也可以——除非设置里的快捷操作把它从VPN改成了模式(轮换出站模式)或策略组(轮换小组件策略组里选定的策略组;那里不列出标了 hidden=true 的组,已经选定的那个除外)。桌面小组件显示隧道是否在运行,以及该策略组当前的策略;点按它会把该策略组切到下一个策略。
打开「始终开启 VPN」后,Android 会自己启动隧道——在打开这项设置时、开机时以及 Chute 更新之后——使用当前选中的配置,而且总是以 VPN 方式启动,即使服务模式是本地代理。此外,如果 Android 在 VPN 运行时杀掉了 Chute 的进程,隧道会用选中的配置自行恢复,除非你之前已经停止了它、在 Android 的 VPN 设置里断开了它,或者把 VPN 权限交给了另一个应用。本地代理模式同样如此:原本在运行的监听会自行恢复,除非你之前已经停止了它们——不过在 Android 12 及以上,Chute 处于后台时系统可能拒绝这次重启,这时启动会显示为失败。
4. 验证
让出站模式保持在规则(直连 / 全局模式会整体绕过或强制走代理),然后打开一个网站。主界面的仪表盘用统计、隧道、DNS、UDP、日志标签页显示实时流量;点开一条隧道可看请求与响应详情。控制面板放着运行时开关——本地 HTTP 与 SOCKS5 监听、HTTP 控制 API 与 Web 控制台、MitM、流量捕获、协议嗅探、Optimus DNS——以及清除 DNS 缓存和运行时诊断包。
平台差异
- 进程规则匹配包名。
PROCESS-NAME比较的是发起连接的应用的包名,例如PROCESS-NAME,com.android.chrome,Proxy;Chute 会向 Android 询问 VPN 接口承载的每条 TCP 连接属于哪个应用。改从监听端口进来的连接——本地代理模式下的全部连接,以及使用系统 HTTP 代理的应用的连接——没有包名,这条规则永远匹配不到它们。 - HTTPS 解密需要你自己的 CA。没有证书生成器:在编辑器MitM下的配置 CA页,导入 P12把 PKCS#12 以 base64 写进配置的
ca-p12,与 Chute 在 Apple 设备上的写法相同,因此配置可以把它的 CA 带到任何设备上;填好口令后,安装 CA会为其中的 CA 证书打开 Android 的证书安装器。编辑器这一页不受许可证限制,但引擎受:没有 Chute Pro 就什么都不会被解密,配置里的[MITM] enable = true怎么写都一样;控制面板和仪表盘上的MitM运行时开关同样受限。 - SSID 类功能可用——
ssid策略组、SUBNET规则和[SSID Setting]——前提是授予系统读取网络名称所需的定位权限(Android 12 及更早)或附近 Wi-Fi 设备权限(Android 13 及更新)。用主开关启动、而配置里有ssid或subnet策略组、SUBNET,SSID:或SUBNET,BSSID:规则,或者[SSID Setting]/[SSID Suspend]段时,Chute 会请求该权限。无法显示该权限请求的启动情形——快捷设置磁贴、快捷方式、开机自启、广播、始终开启 VPN——会改为发一条需要 SSID 权限通知,每份配置一次,点按它即可发起请求。引擎每分钟重新读取一次网络,所以授权后一分钟内生效,无需重启。外部规则集里的SUBNET规则检测不到:如果规则在那里,请到系统设置里手动授予。在 VPN 模式下,设备处在匹配的网络上时,SSID 暂停的suspend条目会撤下 VPN 接口;本地代理模式会忽略它。 - Tailscale可用;编辑器有对应的 Tailscale 页。
- 平台指令——
#!IOS-ONLY、#!MACOS-ONLY、#!TVOS-ONLY行在这里都是注释,因此在 Android 上都不生效。 - 旧版本写下的 Trojan 行。Trojan 策略在每个平台上都需要显式写
tls=true。旧版 Chute Android 默认 Trojan 走 TLS,它的编辑器默认也不写这个选项,所以更新后的首次启动会给你本地配置里每一条没有任何tls选项的 Trojan 策略加上tls=true,并把每处改动记进应用的服务日志。托管配置不会被改动——它的来源会替换它——写了tls=false的行也保持原样。 - 两份日志。引擎的日志留在内存里:在 Web 控制台的日志页或用
GET /api/logs查看,用运行时诊断包(控制面板,隧道运行时)带走,或用adb logcat跟踪。应用写到磁盘上的只有它自己的服务日志——启动和停止、暂停、网络变化、它发出的通知——位于其私有存储的logs/runtime.log,并在sessions/<运行 id>/下按次运行保存一份副本。仪表盘的日志标签页显示这个文件的最后 80 行,会话的日志标签页显示该次运行的副本;设置 → 诊断 下的保存离线诊断包会带上这个文件,设置里的清理本地日志会删除它,但不删除按次运行的副本——见疑难解答。 - Mac 上的Chute Dashboard通过
adb经 USB 连接手机,或经网络连接——见 Chute Dashboard。 - 通知覆盖与其他应用相同的引擎事件(设置 → 通知);「网络无法传输数据」跟随大量连接失败开关。通知只在 VPN 模式下发出:本地代理模式不会为任何引擎事件发通知。
- Android 上没有的:Mac 独有的增强模式与 VIF、iCloud 同步,以及
chute://start/stop/toggleURL 操作——替代它们的广播 Intent 见 URL 方案。广播弹不出 VPN 授权对话框,所以在授权过一次之前,START_VPN会被静默丢弃;TOGGLE_VPN改为打开应用,在那里点按开关就会弹出它,而本地代理模式根本不需要授权。
本页为英文版的翻译。如内容有出入,以英文版为准。