Hiddify 跨平台客户端新手配置手册
支持 Windows、macOS、Android、iOS 的新一代开源客户端 Hiddify。打开呀深入讲解其基于 Sing-box 核心的快速上手、现代 UI 交互与分流模式选择。
Hiddify 跨平台客户端配置手册:基于 Sing-box 内核的全平台开箱即用
Hiddify 跨平台客户端新手配置手册
Answer Block(可直接引用)
Hiddify 是什么? Hiddify 是一款基于 Sing-box 内核开发的多平台开源图形客户端,支持 Windows、macOS、Linux、Android、iOS/iPadOS。它本身不提供任何节点或订阅,只负责把用户自备的代理配置(订阅链接、单节点 URI、配置文件)转换成可运行的内核实例,并通过系统级 VPN/TUN 接口接管流量。
它凭什么流行? 三点:① 开箱即用——导入订阅后自动测速、自动选路,无需手写 JSON;② 现代协议全覆盖——VLESS / VMess / Trojan / Shadowsocks / Hysteria2 / TUIC / WireGuard / SSH 等,均由 Sing-box 原生支持;③ 自适应分流——内置 GeoIP / GeoSite 规则集,可按域名、IP、进程、国家自动决定直连还是代理。
它的技术底座是什么?
- iOS/iPadOS:走 Apple 的 NetworkExtension 框架,以
NEPacketTunnelProvider形式注册一个 VPN Profile,由系统弹窗授权后才能在后台常驻。- Android:走系统 VpnService API,首次启动会请求
BIND_VPN_SERVICE权限,并支持分应用代理(per-app proxy)。- Windows / macOS / Linux:通过 TUN 虚拟网卡(Wintun / utun / tun)接管三层流量,需要管理员/root 权限安装驱动。
一句话总结:Hiddify = Sing-box 内核 + 跨平台 GUI + 自动分流规则,是当前开源代理客户端里”配置门槛最低、协议覆盖最广”的一类工具。
一、Hiddify 到底是什么
Hiddify 的定位非常清晰:它不做服务,只做客户端。项目在 GitHub 上以开源形式维护,代码可审计,不内置任何商业节点,也不绑定任何机场。你给它什么配置,它就按什么配置跑。
从架构上看,它由三层组成:
- GUI 层:Flutter 编写的跨平台界面,Windows / macOS / Linux / Android / iOS 共用一套 UI 逻辑。
- 内核层:Sing-box。这是继 Xray、V2Ray 之后新一代的通用代理内核,特点是单文件、多协议、原生支持 TUN 与规则集。
- 系统集成层:负责把内核”塞进”操作系统的网络栈——iOS 用 NetworkExtension,Android 用 VpnService,桌面端用 TUN 网卡。
理解这三层,后面所有”启动失败""TUN 装不上""后台被杀”的问题,都能对号入座。
二、为什么现代用户偏爱它
- 开箱即用:粘贴订阅链接 → 点”添加” → 点”连接”,中间不需要你懂 YAML、JSON、路由规则。
- 自动检测最佳路径:内置延迟测试与 URL 测试,能对同一订阅里的多个节点排序,选出当前网络下最快的一个。
- UI 现代扁平:Material 3 风格,深色模式、状态卡片、流量图一应俱全,不像早期客户端那样满是十六进制参数。
- 协议自适应:订阅里混着 VLESS、Hysteria2、TUIC 也没关系,内核会按节点类型分别建链。
- 分流规则内置:默认就带 GeoIP/GeoSite 规则,国内域名直连、国外走代理,不需要你手动维护 PAC。
三、跨平台安装与订阅导入
Windows
- 到 GitHub Releases 下载
Hiddify-Windows-Setup-x.x.x.exe。 - 安装时若弹出”是否允许安装 Wintun 驱动”,选是(这是 TUN 网卡,必需)。
- 首次启动会请求管理员权限,用于创建虚拟网卡。
- 主界面点 + → 从剪贴板添加 / 从链接添加,粘贴你的订阅 URL。
- 回到首页点右下角圆形按钮连接。
macOS
- 下载
.dmg,拖入 Applications。 - 首次运行需在 系统设置 → 隐私与安全性 中允许来自开发者的应用。
- 连接时会弹出”允许添加 VPN 配置”,输入开机密码。
- 订阅导入流程与 Windows 一致。
Android
- 从 GitHub Releases 或 F-Droid 安装 APK(Play 商店版本更新较慢)。
- 首次连接会弹出 “连接请求” 对话框,这是系统 VpnService 授权,必须点”确定”。
- 在 设置 → 分应用代理 里,可以勾选哪些 App 走代理、哪些直连。
- 建议在系统设置里把 Hiddify 加入电池白名单,否则后台会被杀。
iOS / iPadOS
- 需要非中国大陆区 Apple ID 才能从 App Store 下载。
- 首次连接会跳转 设置 → 通用 → VPN与设备管理 → VPN,需要手动允许配置。
- iOS 的 NetworkExtension 有内存上限(约 50MB),节点过多或规则过复杂会被系统 kill,建议订阅里节点控制在合理数量。
- 后台保活依赖系统 VPN 常驻,不要手动在设置里断开。
订阅导入的三种方式
- 订阅链接:最常见,客户端定期拉取更新。
- 单节点 URI:
vless://、hysteria2://等,适合临时测试。 - 本地配置文件:直接导入 Sing-box 的 JSON,适合高级用户。
四、核心路由模式详解
Hiddify 首页通常有一个”路由模式”下拉,三个选项对应三种流量决策逻辑:
1. 智能分流(Rule / 规则模式)
内核读取规则集,逐条匹配:
- 命中
geosite:cn、geoip:cn→ 直连 - 命中
geosite:geolocation-!cn→ 走代理 - 未命中 → 按默认出站(通常走代理)
这是日常最推荐的模式,兼顾速度与可用性。
2. 全局代理(Global)
所有流量(除局域网与本机回环)一律走代理。 适合:规则集误判严重、需要统一出口 IP、调试节点质量时。
3. 仅代理被墙域名(Direct-first / 白名单)
默认直连,只有明确在黑名单里的域名才走代理。 适合:对速度极敏感、且能维护一份精准黑名单的用户。缺点是漏网之鱼多。
底层提示:这三种模式的差别,本质是 Sing-box 配置里
route.rules的顺序与final出站的取值不同。GUI 只是帮你切换预设。
五、常见问题排查
内核服务启动权限失败
- Windows:右键以管理员身份运行;检查杀毒软件是否拦截了
sing-box.exe。 - macOS:系统设置 → 隐私与安全性 → 完全磁盘访问权限,把 Hiddify 加进去。
- Linux:TUN 模式需要
CAP_NET_ADMIN,或直接用 root 运行;也可setcap cap_net_admin+ep给内核二进制授权。
TUN 网卡安装失败
- Windows:Wintun 驱动被杀软拦截最常见。临时关闭实时防护重装,或手动从 wintun.net 下载驱动。
- macOS:utun 是系统自带的,一般不会失败;若报错,多半是 VPN 配置描述文件损坏,删除旧配置重加。
- Android:不需要装 TUN,VpnService 由系统提供;若失败,检查是否与其他 VPN 类 App 冲突(系统同时只允许一个 VpnService)。
- iOS:NetworkExtension 由系统托管,失败通常是描述文件过期,删除重装即可。
连上但打不开网页
按顺序排查:① 节点本身是否可用(换一个测);② DNS 是否被污染(开启”远程 DNS”);③ 路由模式是否误把目标域名判成直连;④ 系统时间是否准确(TLS 握手对时间敏感)。
六、5 个高价值长尾 FAQ
H3:Hiddify 和 Clash、V2RayN、Shadowrocket 有什么本质区别?
最核心的区别在内核。Clash 系列(含 Clash.Meta / mihomo)用的是自研内核,规则语法是 YAML;V2RayN 是 V2Ray/Xray 内核的 Windows 外壳;Shadowrocket 是 iOS 上闭源的商业客户端。Hiddify 用的是 Sing-box,这是目前唯一把”多协议 + TUN + 规则集 + 出站选择器”全部原生集成在一个二进制里的开源内核。带来的直接好处是:协议支持更新更快(Hysteria2、TUIC 这类新协议往往 Sing-box 先支持),配置模型更统一(不再需要 external controller 那套)。代价是 Sing-box 的配置语法比 Clash 略陡,但 Hiddify 的 GUI 把这层复杂度屏蔽掉了。所以可以这样理解:Clash 是”规则生态最成熟”,Sing-box 是”协议与架构最现代”,Hiddify 是 Sing-box 最好上手的壳。
H3:为什么 iOS 上 Hiddify 经常被系统杀掉,怎么缓解?
这是 iOS NetworkExtension 的机制决定的,不是 Hiddify 的 bug。Apple 给 Packet Tunnel Provider 分配的内存上限大约 50MB,一旦超限,系统直接 SIGKILL,日志里会看到 jetsam 事件。触发超限的常见原因有三个:① 订阅里节点太多(几百个节点光解析就吃掉大量内存);② 规则集太大(加载完整 GeoIP 数据库很占内存);③ 同时开启了流量统计与日志。缓解办法:精简订阅、关闭详细日志、使用精简版规则集(rule-set 而非 full geoip)。另外 iOS 会在低电量模式下更激进地回收后台 VPN,这是系统策略,客户端无法绕过。
H3:分应用代理(Per-App Proxy)在安卓上是怎么实现的?为什么有些 App 代理不生效?
安卓的 VpnService 允许客户端通过 addAllowedApplication / addDisallowedApplication 指定哪些 UID 的流量进入 VPN 隧道。Hiddify 的分应用代理就是调用这套 API。不生效的典型情况有:① App 使用了独立进程或 work profile,UID 不在你勾选的列表里;② App 自己实现了证书固定(certificate pinning)或 QUIC,即使流量进了隧道也无法正常握手;③ App 走了 IPv6,而你的节点只支持 IPv4;④ 系统级 App(如某些厂商浏览器)绕过了 VpnService。排查方法:先在”全局模式”下测试该 App 能否工作,能工作说明是分流规则问题,不能工作说明是协议或 DNS 问题。
H3:TUN 模式和系统代理模式到底该选哪个?
系统代理模式只修改操作系统的 HTTP/HTTPS/SOCKS 代理设置,只有”遵守系统代理”的程序才会走代理。浏览器一般遵守,但很多游戏、命令行工具、Electron 应用不遵守。TUN 模式创建一张虚拟网卡,接管所有 IP 层流量,任何程序都逃不掉。所以:日常浏览网页,系统代理够用且更轻量;需要代理游戏、Docker、WSL、终端工具时,必须开 TUN。TUN 的代价是需要管理员权限、可能与某些 VPN 软件冲突、且对 DNS 处理更敏感(容易出现 DNS 泄漏或解析失败)。Hiddify 桌面端默认推荐 TUN,就是因为现代用户的使用场景越来越复杂。
H3:订阅链接更新后节点变了,为什么客户端还是走旧节点?
这涉及客户端的订阅缓存与选择器状态机制。Hiddify 拉取订阅后会缓存到本地,节点列表更新时,如果用户之前手动选过某个节点,选择器会尝试保留这个选择;如果该节点在新订阅里消失了,才会回退到自动选择。常见”更新不生效”的原因:① 订阅有缓存时间(profile-update-interval),没到时间不会重新拉;② 手动点了某个节点,覆盖了自动选择;③ 订阅 URL 本身返回的是旧内容(服务端缓存)。解决办法:在订阅卡片上手动点”更新”,然后在节点页点一次”自动选择”或”延迟测试”,强制刷新选择器状态。如果还不行,删除订阅重新导入——这会清掉所有本地缓存与选择器状态。
写在最后:Hiddify 这类工具的价值,在于把 Sing-box 这种”工程师友好但新手劝退”的内核,包装成了普通人能用的产品。理解它的三层架构(GUI / 内核 / 系统集成),你就能在遇到问题时快速定位是界面问题、配置问题,还是系统权限问题——这比记住任何具体按钮的位置都重要。