Skip to content

ZH User Guide

SlimRG edited this page Aug 23, 2026 · 1 revision

Shadowsocks Reborn Windows 使用说明

English guide | Русское руководство | 中文使用说明 | 简体中文 README

shadowsocks-reborn 是经典 Shadowsocks for Windows v4 客户端面向现代 Windows 的延续版本。当前构建基于 .NET 10WinUI 3 / Windows App SDK,仅支持 x64,系统要求为 Windows 10 2004 / build 19041 或更高版本以及 Windows 11。

本项目是独立 fork,不是 shadowsocks/shadowsocks-windows 上游仓库。本页沿用经典中文说明的使用结构,但内容已经按 Shadowsocks Reborn 5.2.31 的实际功能更新。

当前版本

5.2.31

主要内容包括 DNSCrypt/DoH 管理、自动更新、WinUI 3 界面、User/Admin 两种流量模式、WinDivert 透明 TCP/UDP 捕获、自动 Game Mode、SIP003 插件管理以及 LocalAppData/Clean Mode 存储策略。

完整版本历史请参阅 Changelog

功能

  1. WinUI 3 原生桌面界面与托盘菜单。
  2. 系统代理、Local PAC 与 Online PAC。
  3. 多服务器管理、二维码导入/导出和 ss:// 协议关联。
  4. SOCKS5、本地 HTTP/1.1 代理和 HTTPS CONNECT
  5. UDP relay。
  6. User Mode 与需要管理员权限的 Admin Mode。
  7. Admin Mode 通过 WinDivert 对 TCP/UDP 流量进行透明捕获。
  8. Game Mode 在指定游戏/程序运行时自动暂停 Admin capture,退出后自动恢复。
  9. SIP003 插件管理,内置 xray-pluginv2ray-pluginqtun 选择,也支持手动导入 ZIP/TAR.GZ。
  10. DNSCrypt/DoH resolver 管理;ODoH 默认关闭。
  11. 自动下载、SHA-256 校验、替换并重新启动应用的 self-update。
  12. 热键、日志查看器、流量页面、GeoSite 管理和 Clean Mode。

下载

从项目的 GitHub Releases 下载最新版本:

https://github.com/SlimRG/shadowsocks-reborn/releases

正式发布文件为:

Shadowsocks-win-x64.zip
Shadowsocks-win-x64.zip.sha256

压缩包内正式产品只包含:

Shadowsocks.exe

发布版本是 self-contained,不需要单独安装 .NET Runtime。

SHA-256 校验

.sha256 文件可以采用标准 sha256sum 格式:

<64-hex-sha256>  Shadowsocks-win-x64.zip

也可以只包含 64 位十六进制 SHA-256。

PowerShell 手动校验:

(Get-FileHash .\Shadowsocks-win-x64.zip -Algorithm SHA256).Hash

基本使用

  1. 启动 Shadowsocks.exe
  2. 首次运行时进入 Servers 页面添加服务器。
  3. 在服务器配置中填写服务器名称、地址、端口、密码、加密方式和可选插件。
  4. 通过托盘或应用界面选择需要的服务器与流量模式。
  5. User Mode 不需要管理员权限;使用本地/系统代理的程序会经过 Shadowsocks。
  6. Admin Mode 会请求 UAC,并使用 WinDivert 实现透明 TCP/UDP 捕获。
  7. 如需针对程序设置不同策略,可使用 application routing 的 ProxyDirectBlock 规则。

流量模式

User Mode

  • 不需要管理员权限。
  • 不启动 NetworkService/WinDivert capture。
  • 适用于使用系统代理、本地 SOCKS5/HTTP 代理或 PAC 的应用。

Admin Mode

  • 需要 UAC。
  • Shadowsocks.exe 内部按需提取并验证 Shadowsocks.NetworkService.exe
  • 通过 WinDivert 对 TCP/UDP 进行透明捕获。
  • UI 会显示 NetworkService、WinDivert、TCP/UDP capture 和 redirect port 状态。

Game Mode

Game Mode 不是第三种流量模式,而是 Admin Mode 的自动兼容状态。指定的游戏或程序启动后,WinDivert capture 会暂时停止;程序退出后自动恢复 Admin capture。

本地代理

默认情况下,Shadowsocks 提供本地 SOCKS5 服务,并提供托管 HTTP/HTTPS forward proxy。

  • HTTP:HTTP/1.1
  • HTTPS:使用 CONNECT 字节隧道,因此 TLS 内部协商 HTTP/2 不需要本地 HTTP/2 parser
  • FTP gateway:未实现

实际监听端口以应用设置页面显示的配置为准。

PAC

支持:

  • Local PAC / Managed routing(默认且唯一的 Local backend):只生成最小 compatibility funnel,把 WinINet 的 HTTP/HTTPS 请求送入 managed proxy;GeoSite + user-rule.txt + ABP/EasyList 网络规则始终由 C# FilterEngine 作出最终 DIRECT/PROXY 决策;
  • 无本地 JavaScript matcher:历史内置 abp.js、Compiled PAC compatibility、backend selector 和可执行 custom abp.txt 已全部删除;
  • Online PAC:这是独立的显式模式。通过 Shadowsocks 下载并缓存,然后由本地 /pac endpoint 提供给 WinINet,并保留用户所选外部 PAC 的 JavaScript 语义。它不属于 Local ABP/EasyList managed routing。

Administrator Mode 对没有显式 application rule 的普通 TCP 使用延迟决定:transparent relay 从 HTTP Host 或 TLS ClientHello SNI 获取域名,然后使用同一 managed rule set。不会解密 TLS、安装 CA 或修改证书;HTTP 可使用 path/query,TLS/SNI 只能使用 hostname。UDP、DNS/53 和无法取得 Host/SNI 的协议使用确定性的 fallback。

GeoSite 源可以在应用中配置和更新;Local 模式下 PAC / GeoSite 页面还提供 Open user-rule.txt,用户规则优先于 GeoSite 默认规则并在文件变化后自动原子发布。启用 Online PAC 时,Local managed routing、user-rule 与 GeoSite 卡片会隐藏。规则更新会原子发布,Admin capture 已运行时会通过现有提权 broker 刷新 capture child。

DNS / DNSCrypt

DNS 页面可以管理可选的 dnscrypt-proxy 组件。

  • 支持 DNSCrypt 和 DoH resolver;
  • ODoH 默认关闭;
  • Automatic 模式根据 DNSSEC、no-log、无过滤、IPv4/IPv6 等条件选择 resolver;
  • Manual 模式允许从签名目录中手动选择 resolver;
  • DNSCrypt runtime 使用动态 loopback 端口,并确认该端口同时可用于 UDP 和 TCP;
  • Admin Mode 可透明拦截 UDP/TCP 53 端口;
  • Administrator Mode 已实现 SystemDirectProxyCustomDohDnsCrypt 五种 DNS policy 的透明路由;
  • User Mode 不做任意系统 DNS 的透明拦截;Game Mode 暂停 Admin capture 时也会暂停系统级 DNS interception;
  • DNSCrypt 运行期间采用 fail-closed 策略,不会在启动/恢复失败时静默退回 plaintext system DNS;
  • 应用内置 DNSCrypt health-check 和 DNS privacy 自检。

应用自身不会捆绑 dnscrypt-proxy.exe,需要使用时从官方上游下载并验证。首次安装/启用时,DNS 页面会持续显示带动画的下载、验证、安装和激活操作卡片;在激活完成之前不会用一大片禁用的 DNSCrypt 设置取代进度反馈。

插件

插件页面支持 SIP003 插件管理。

内置选择包括:

  • xray-plugin
  • v2ray-plugin
  • qtun

也可手动导入 ZIP/TAR.GZ。导入 ss:// 时,如果配置需要一个内置目录中已知但尚未安装的插件,Share / QR 会先提示安装,并保留“无插件导入”的显式选项。安装的插件保存在当前 storage root 下,并在服务器配置页面通过插件 ID 选择。

对于 built-in catalog,点击 Install 时会获取最新 Windows x64 release,并在 managed package metadata 中记录受信任的 repository/release/asset 来源。目录安装的插件在应用运行期间每天自动检查一次更新;正在使用的插件会推迟到后续检查。Check updates 可立即执行检查,Automatic updates 可对每个 managed catalog plugin 单独关闭。网络/release 检查失败不会占用成功检查的 24 小时窗口,因此 maintenance 可稍后重试。

更新先在有大小/条目限制的 staging 目录中解包,再通过 rollback-safe directory swap 提升。拒绝路径 traversal、Windows alternate-data-stream 名称以及 TAR link/special entry;GitHub 提供 asset SHA-256 digest 时会在安装前验证。手动导入的 ZIP/TAR.GZ 插件永不参与后台网络更新。任意 repository 字段暂列 TODO,待单独完成 repository 信任与 release asset 选择设计后再开放。

自动更新

自动更新默认可用。客户端会:

  1. 检查 GitHub Releases;
  2. 只接受更高且符合设置的版本;
  3. 下载 Shadowsocks-win-x64.zip.sha256
  4. 校验 SHA-256;
  5. 校验 ZIP 布局与 EXE FileVersion;
  6. 将更新文件暂存到 %TEMP%\Shadowsocks\Updates
  7. 启动经过二次 SHA-256 校验的 updater;
  8. 等待旧进程退出;
  9. 保存 rollback 副本并替换主 EXE;
  10. 启动更新后的安装位置副本;
  11. 清理临时 updater transaction。

5.2.31 还修复了 Windows 上下载临时文件仍被占用时执行 File.Move 导致自动更新失败的问题。

开机启动

普通模式下,Start with Windows 会把经过验证的产品 EXE 同步到:

%LOCALAPPDATA%\Shadowsocks\Startup\Shadowsocks.exe

Windows Run 项指向这个稳定副本,并通过 --startup-origin 保留原始产品 EXE 的路径,以便自动更新真正替换用户使用的主程序。旧版本遗留的匹配 Run 项会自动迁移/清理;关闭 Start with Windows 时,也会删除仍指向 Shadowsocks 产品或 startup copy 的旧 Run 项。

从 5.2.31 的当前实现起,还使用与 Windows App SDK identity 无关的进程级 single-instance gate,因此 startup copy 与原始 EXE 同时被 Windows 激活时不会同时启动两个 controller,也不会因为第二个实例再次占用本地端口而弹出错误。

存储位置

普通模式的持久数据保存在:

%LOCALAPPDATA%\Shadowsocks

包括设置、日志、PAC/GeoSite 缓存、插件、startup copy 和运行时组件工作目录。

详细布局请参阅 Storage policy

Clean Mode

如果 EXE 文件名在 .exe 前以 p 结尾,例如:

Shadowsocksp.exe
Shadowsocks-5.2p.exe

应用会进入 Clean Mode。设置、缓存、PAC、日志、插件和临时 runtime 全部写入独立的 %TEMP%\Shadowsocks\Clean\... session,并在退出时尽力删除。

Clean Mode 不支持 Start with Windows。

全局快捷键

可以在 Hotkeys 页面配置快捷键,也可以选择启动时注册。发生冲突时 UI 会显示对应状态,请更换被其他程序占用的组合键。

日志

Logs 页面使用可选择文本的 RichTextBlock,支持:

  • WARN / ERROR / FATAL 严重级别高亮;
  • 横向滚动;
  • 实时刷新;
  • 日志行数和读取大小限制,避免查看器无限增长。

系统要求

  • Windows 10 2004 / build 19041+ 或 Windows 11;
  • x64;
  • 从源码构建时使用 .NET SDK 10.0.303 或更高版本;Directory.Build.props 是唯一的产品版本源;
  • 发布构建使用 .NET 10.0.11 security baseline。

从源码构建

dotnet restore .\shadowsocks-reborn.sln -p:Platform=x64 -r win-x64
dotnet build .\shadowsocks-reborn.sln -c Release -p:Platform=x64 -m:1 --no-restore
dotnet test .\Shadowsocks.UnitTests\Shadowsocks.UnitTests.csproj -c Release -p:Platform=x64 --no-build

生成正式 release ZIP:

.\packaging\Validate-Repository.ps1
.\packaging\Build-Release.ps1

许可证

Shadowsocks Reborn 本身采用 GPL-3.0-or-later

其他文档

DNSCrypt 解析器目录引导

Shadowsocks Reborn 由应用自身刷新已签名的 DNSCrypt 解析器目录,不允许 dnscrypt-proxy 通过 bootstrap DNS 解析远程 source 主机名。主解析路径为 Cloudflare DoH(1.1.1.1,TLS/SNI cloudflare-dns.com),备用路径为 Google DoH(8.8.8.8,TLS/SNI dns.google);两条 DoH HTTPS 连接都通过当前本地 Shadowsocks SOCKS5 打开。源主机名经该 DoH 路径解析后,public-resolvers.md.minisig 的 HTTPS 下载同样通过 Shadowsocks。

下载大小受到限制,并在发布前使用固定的 DNSCrypt 公共 Minisign 密钥验证。随后 dnscrypt-proxy 只获得本地认证缓存,配置为 urls = []bootstrap_resolvers = []ignore_system_dns = true。如果刷新暂时失败,可以继续使用已有且签名有效的缓存;若不存在有效缓存,则操作 fail-closed,并保留之前的 DNS 模式。

Clone this wiki locally