discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
polaris-arch/Polaris · source
Snapshot 0 · 2026-11-04T12:47:28Z · Rust · MIT
Content fingerprint
25e3187ccc7bb873ac3a03a7e1ca1dc66f59b0cbece67e10657d657253c0c5b4GitHub description at capture
基于 sing-box 内核以及Tauri框架的现代网络代理工具,专注于简化代理控制与连接管理。
README at capture
# Polaris
<div align="center">
**简体中文** · [English](README.en.md) · [繁體中文](README.zh-TW.md) · [Русский](README.ru.md) · [فارسی](README.fa.md)
[](https://github.com/polaris-arch/Polaris/releases/latest)
[](https://github.com/polaris-arch/sing-box-polaris)
[](#安装)
[](LICENSE)
[](https://github.com/polaris-arch/Polaris/stargazers)
</div>
**北极星** — 基于 [sing-box-polaris](https://github.com/polaris-arch/sing-box-polaris) 的跨平台网络代理客户端。Tauri 2(Rust + React)。

## 功能
| 领域 | 能力 |
|---|---|
| 接管方式 | TUN · 系统代理 / 本地端口(桌面) |
| 分流 | 智能 / 全局 / 直连 · 自定义规则 · 应用分流 · 地区分流(智能模式,含回国) |
| 普通代理 | VLESS · VMess · Trojan · Hysteria 2 / 1 · TUIC · Shadowsocks · AnyTLS · Naive · Snell · SOCKS · HTTP · SSH · Tor[1](#tor-note) |
| 组网接入[2](#mesh-note) | WireGuard · Tailscale · WARP (WireGuard) · OpenConnect · OpenVPN · MASQUE[3](#masque-note) |
| DNS | FakeIP · DoH / DoT · 节点域名解析竞速 |
| 网络控制 | IPv6 开关 · 浏览器 DoH 拦截 · WebRTC 策略(仅 TUN) |
| 诊断 | 连接拓扑 · 实时日志 · 节点测速与进度 · 规则命中展示 · 流媒体与 AI 解锁检测 |
| 运维 | 订阅管理 · 配置备份恢复与确认 · 隐私锁 · 桌面托盘驻留 |
| 应用更新 | 正式版 / 测试版通道 · 可重新下载当前版本 · 安装包摘要校验与缺失提示 |
| 桌面内存优化 | 启用自动轻量模式后,主窗口连续隐藏或最小化 10 分钟会释放主 WebView;统计、连接与日志按需订阅 |
<a id="tor-note"></a>
1. Tor 需要可用的 Tor 可执行程序;平台上的实际运行条件须另行满足。
<a id="mesh-note"></a>
2. 组网添加入口包含 OpenConnect、OpenVPN 和 MASQUE;内网路由能力还取决于所配置的内网网段(meshRoutes),不能仅凭入口归类判断。
<a id="masque-note"></a>
3. MASQUE 使用 sing-box 自有实现,不支持 Cloudflare 官方的 MASQUE 接入(包括 WARP 的 MASQUE 接入)。此限制仅针对该接入方式。
<table>
<tr>
<td width="50%"><img src="docs/screenshots/nodes.png" alt="节点"><br><sub>节点管理与测速</sub></td>
<td width="50%"><img src="docs/screenshots/rules.png" alt="规则"><br><sub>自定义分流规则</sub></td>
</tr>
<tr>
<td><img src="docs/screenshots/connections.png" alt="连接"><br><sub>实时连接</sub></td>
<td><img src="docs/screenshots/settings.png" alt="设置"><br><sub>设置</sub></td>
</tr>
</table>
## 安装
正式包发布后,可从 [Releases](https://github.com/polaris-arch/Polaris/releases) 下载对应平台安装包;源码或 CI 验证通过不表示已有公开下载。
当前发布流程按 [release-assets.mjs](scripts/release-assets.mjs) 使用以下文件名,`<version>` 为应用版本(不含 `v` 前缀)。macOS 按 Apple Silicon / Intel 分包,Windows 为 x64,Linux 为 amd64;Android 依次为 ARM64、ARMv7 和 universal,universal 仅含这两种 ARM 架构,不含 x86。下载时以所选 Release 的实际附件为准,并用同页 `SHA256SUMS` 核对文件。
| 平台 | 文件 |
|---|---|
| macOS | `Polaris_<version>_aarch64-mac.dmg` / `Polaris_<version>_x64-mac.dmg` |
| Windows | `Polaris_<version>_x64-win-setup.exe` / `Polaris_<version>_x64-win-Portable.zip` |
| Linux | `Polaris_<version>_amd64-linux.deb` / `Polaris_<version>_amd64-linux.AppImage` |
| Android | `Polaris_<version>_arm64-v8a-android.apk` / `Polaris_<version>_armeabi-v7a-android.apk` / `Polaris_<version>_universal-android.apk` |
桌面安装包当前不做付费代码签名,首次启动需按平台放行。
Windows 安装器不内嵌 WebView2 Runtime;系统缺失时会联网获取。精简版 / LTSC 或便携版用户若缺少
Runtime,请先从微软官方下载并安装 [Microsoft Edge WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/)。
Polaris 不提供离线 WebView2 安装包。
### macOS 首次安装
macOS 可能提示应用「已损坏」或「无法验证开发者」。未签名或未经公证的
构建可能被阻止,但这些提示不能证明文件安全,也可能涉及损坏或恶意修改。
1. 安装前,确认 DMG 来自项目官方 Release,且是预期的平台和版本。
若发布方提供校验和,请核对;校验和一致不等于没有恶意软件。
自行构建时,应先核实源代码来源及构建过程。来源或完整性无法确认,
或校验和不匹配时,请停止,不要绕过警告。
2. 核实后,将 Polaris 拖入右侧的「应用程序 (Applications)」文件夹,
再尝试正常打开。
3. 若仅因开发者无法验证而被阻止,且你信任已核实的构建,可使用 macOS
提供的「系统设置 → 隐私与安全性 → 仍要打开」(若可用),阅读并
确认系统提示。界面可能因系统版本而异。
若提示「已损坏」、检测到恶意软件,或仍无法打开,请停止,重新从官方
来源获取并核对文件,或向项目维护者求助。不要清除隔离属性或关闭系统
安全保护来强行打开。每次手动替换都应重新核实文件。
[README First.txt](packaging/macos-dmg-open-guide.txt) · [Apple Support](https://support.apple.com/en-us/102445)
### Windows 首次安装
SmartScreen 提示时选择「更多信息」→「仍要运行」。
## 构建
以下供维护者构建当前源码;源码构建成功不等于已发布安装包通过运行验收。平台依赖、移动端工具链与打包约定见下方构建文档。
源码构建入口:[桌面与 Android](docs/build-and-package.md) · [iOS / iPadOS](docs/ios-source-build.md) · [移动内核与固定工具链](scripts/mobile-core/README.md)。
iOS 目前不提供 IPA 或越狱包,越狱兼容性未验证。非越狱设备自行签名需具备 Network Extension 能力的 Apple Developer Program 账号,以及匹配 App、PacketTunnel 和 App Group 权限的 [provisioning profiles](https://developer.apple.com/documentation/technotes/tn3125-inside-code-signing-provisioning-profiles);免费 [Personal Team 不支持 NE provider](https://developer.apple.com/forums/thread/128767),侧载本身不会授予这些权限。编译成功或安装成功均不能替代运行验收。
需要 Rust stable、Node.js 24+(CI 当前使用 Node 26)、pnpm 11.24.0、Go、[Tauri CLI 2](https://v2.tauri.app/)。
请按[完整桌面构建步骤](docs/build-and-package.md#打包出安装包)依次准备工具链与 protoc/PATH、固定内核、helper(Windows 另含 cleaner)及安装身份清单,再编译 App。仅拉内核后运行 `tauri build` 不足以生成可用的完整安装包。
内核不入库,打包前必须拉。平台 `--config` 不可省:缺了会打出**没有内核的包**,且构建期零报错,
直到运行期才暴露。完整说明、CI 分工、Windows 安装器与更新器选包契约见
[构建与打包](docs/build-and-package.md)。
开发门禁:
```bash
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cd ui && npx pnpm@11.24.0 test
```
## 架构
```
ui/ React + Zustand + Vite + Tailwind
src-tauri/ Tauri 2 主进程
crates/ domain crates(config-engine / core-supervisor / helper / updater / …)
resources/ sing-box 内核 + libcronet(构建期拉取,不入库)
```
桌面端(Windows / macOS / Linux)内核以 sidecar 子进程运行,经 gRPC 管理面通信。需要特权的 TUN 起核与系统接管委托三平台
Rust helper;无需 helper 的 System Proxy 路径由应用侧 `system-integration` 直接管理并负责回滚。
Android 将 libbox 载入应用进程,采用移动端 VPN 集成,不使用上述桌面 sidecar/helper 路径。
## 文档
| 文件 | 内容 |
|---|---|
| [docs/architecture.md](docs/architecture.md) | 当前分层、运行事务、DNS/路由、特权边界与大文件判定准则 |
| [docs/build-and-package.md](docs/build-and-package.md) | 构建、CI、打包不变量、更新器选包契约 |
| [docs/troubleshooting.md](docs/troubleshooting.md) | MASQUE 兼容限制、不签名说明、白屏 / 花屏 / GPU 崩溃排障 |
截图由 `node scripts/capture-screenshots.mjs` 生成:无头 Chrome 渲染前端构建产物 + 注入桩数据,
不需要装应用或起内核。
## 上游
| 项目 | 用途 |
|---|---|
| [sing-box-polaris(实际使用的 fork)](https://github.com/polaris-arch/sing-box-polaris) | 实际使用的内核 fork;冻结源码、版本及 sing-box-polaris 资产以所选构建清单为准 |
| [sing-box(原始上游)](https://github.com/SagerNet/sing-box) | 原始上游项目与技术来源;保留致谢 |
| [Tauri 2](https://github.com/tauri-apps/tauri) | 桌面运行时 |
| [cronet-go](https://github.com/SagerNet/cronet-go) | NaiveProxy 的 libcronet |
| [sing-box-dashboard](https://github.com/SagerNet/sing-box-dashboard) | 内置面板 |
| [meta-rules-dat](https://github.com/MetaCubeX/meta-rules-dat) | 规则集与地理数据(`.srs`) |
各组件版权归其作者。以子进程 / 二进制形式集成的组件见 `NOTICE`;链进产物的源码级依赖
(Tauri / React / 数百个 Rust crate)逐包登记在 `THIRD-PARTY-LICENSES.md`。
## 适用范围与免责声明
Polaris 是通用网络代理客户端与诊断工具,不提供、销售或维护代理节点、订阅及网络服务。请仅在遵守
所在地法律法规、服务条款与所在网络管理制度,并已取得必要授权的场景中使用;不得用于未经授权的访问、
侵害他人权益或其它违法滥用。使用者应自行评估配置、节点和第三方资源的可信度,并对使用行为及其后果负责。
本软件按“现状”提供,不承诺网络可用性、匿名性、安全性、特定服务可访问性或数据完整性。TUN、系统代理、
DNS 与路由修改可能暂时影响网络连接;进行重要操作前请备份配置。除适用法律另有强制规定外,维护者与贡献者
不对因使用或无法使用本软件产生的直接或间接损失承担责任。本说明不构成法律或其它专业意见。
## 许可
Polaris 自身源码 MIT(见 `LICENSE`)。**但产物的分发条款按平台不同**:
- **桌面(Windows / macOS / Linux):MIT。** sing-box(GPLv3)以 sidecar 子进程形式集成,
按 mere-aggregation 立场不影响本项目许可。**该立场未经法院检验**,见 `NOTICE`。
- **Android:整体 GPLv3。** 该平台上 sing-box 只能以 libbox 形态载入应用进程
(tun 描述符只能经进程内接口获得),mere aggregation 不成立;Kotlin 侧亦移植自 GPLv3 的
sing-box-for-android。取用 APK 的人得到 GPLv3,只取本仓 MIT 源文件的人仍得到 MIT。
第三方组件与完整论述见 `NOTICE`。
## Star 趋势
<a href="https://www.star-history.com/?repos=polaris-arch%2FPolaris&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=polaris-arch/Polaris&type=date&theme=dark&legend=top-left&sealed_token=TJg9RA5l3wyd1IgSMMq05QxhNvxS_OcrWbDJxZuwdUwgs-zVIBeoZz2j6swI3y5BxlztkoJMSkkxL6ZbZtw6oyqaRHZSAv0ZS60aVPPuBMdvm8tkxUjyKN1ttiVtPUwJEKObGpBH7BsPhjr6JwFfl_20UYjxgRVOq_V_Q6gKleib6K8LqP3K3nSwPvIJ" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=polaris-arch/Polaris&type=date&legend=top-left&sealed_token=TJg9RA5l3wyd1IgSMMq05QxhNvxS_OcrWbDJxZuwdUwgs-zVIBeoZz2j6swI3y5BxlztkoJMSkkxL6ZbZtw6oyqaRHZSAv0ZS60aVPPuBMdvm8tkxUjyKN1ttiVtPUwJEKObGpBH7BsPhjr6JwFfl_20UYjxgRVOq_V_Q6gKleib6K8LqP3K3nSwPvIJ" />
<img alt="Polaris Star History Chart" src="https://api.star-history.com/chart?repos=polaris-arch/Polaris&type=date&legend=top-left&sealed_token=TJg9RA5l3wyd1IgSMMq05QxhNvxS_OcrWbDJxZuwdUwgs-zVIBeoZz2j6swI3y5BxlztkoJMSkkxL6ZbZtw6oyqaRHZSAv0ZS60aVPPuBMdvm8tkxUjyKN1ttiVtPUwJEKObGpBH7BsPhjr6JwFfl_20UYjxgRVOq_V_Q6gKleib6K8LqP3K3nSwPvIJ" />
</picture>
</a>