brainstate

polaris-arch/Polaris · source

Snapshot 0 · 2026-11-04T12:47:28Z · Rust · MIT

Content fingerprint25e3187ccc7bb873ac3a03a7e1ca1dc66f59b0cbece67e10657d657253c0c5b4

GitHub 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)

[![release](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fpolaris-arch%2FPolaris%2Freleases%2Flatest&query=%24.tag_name&style=flat-square&color=0E98A4&label=release)](https://github.com/polaris-arch/Polaris/releases/latest)
[![sing-box](https://img.shields.io/badge/sing--box-1.15-0E98A4?style=flat-square)](https://github.com/polaris-arch/sing-box-polaris)
[![platform](https://img.shields.io/badge/platform-Windows%20%C2%B7%20macOS%20%C2%B7%20Linux%20%C2%B7%20Android-0E98A4?style=flat-square)](#安装)
[![license](https://img.shields.io/badge/license-MIT-0E98A4?style=flat-square)](LICENSE)
[![stars](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fpolaris-arch%2FPolaris&query=%24.stargazers_count&style=flat-square&color=0E98A4&label=stars)](https://github.com/polaris-arch/Polaris/stargazers)

</div>

**北极星** — 基于 [sing-box-polaris](https://github.com/polaris-arch/sing-box-polaris) 的跨平台网络代理客户端。Tauri 2(Rust + React)。

![主页](docs/screenshots/home.png)

## 功能

| 领域 | 能力 |
|---|---|
| 接管方式 | 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>