-
Notifications
You must be signed in to change notification settings - Fork 0
ZH User Guide
English guide | Русское руководство | 中文使用说明 | 简体中文 README
shadowsocks-reborn 是经典 Shadowsocks for Windows v4 客户端面向现代 Windows 的延续版本。当前构建基于 .NET 10、WinUI 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。
- WinUI 3 原生桌面界面与托盘菜单。
- 系统代理、Local PAC 与 Online PAC。
- 多服务器管理、二维码导入/导出和
ss://协议关联。 - SOCKS5、本地 HTTP/1.1 代理和 HTTPS
CONNECT。 - UDP relay。
- User Mode 与需要管理员权限的 Admin Mode。
- Admin Mode 通过 WinDivert 对 TCP/UDP 流量进行透明捕获。
- Game Mode 在指定游戏/程序运行时自动暂停 Admin capture,退出后自动恢复。
- SIP003 插件管理,内置
xray-plugin、v2ray-plugin、qtun选择,也支持手动导入 ZIP/TAR.GZ。 - DNSCrypt/DoH resolver 管理;ODoH 默认关闭。
- 自动下载、SHA-256 校验、替换并重新启动应用的 self-update。
- 热键、日志查看器、流量页面、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。
.sha256 文件可以采用标准 sha256sum 格式:
<64-hex-sha256> Shadowsocks-win-x64.zip
也可以只包含 64 位十六进制 SHA-256。
PowerShell 手动校验:
(Get-FileHash .\Shadowsocks-win-x64.zip -Algorithm SHA256).Hash- 启动
Shadowsocks.exe。 - 首次运行时进入 Servers 页面添加服务器。
- 在服务器配置中填写服务器名称、地址、端口、密码、加密方式和可选插件。
- 通过托盘或应用界面选择需要的服务器与流量模式。
- User Mode 不需要管理员权限;使用本地/系统代理的程序会经过 Shadowsocks。
- Admin Mode 会请求 UAC,并使用 WinDivert 实现透明 TCP/UDP 捕获。
- 如需针对程序设置不同策略,可使用 application routing 的
Proxy、Direct、Block规则。
- 不需要管理员权限。
- 不启动 NetworkService/WinDivert capture。
- 适用于使用系统代理、本地 SOCKS5/HTTP 代理或 PAC 的应用。
- 需要 UAC。
- 从
Shadowsocks.exe内部按需提取并验证Shadowsocks.NetworkService.exe。 - 通过 WinDivert 对 TCP/UDP 进行透明捕获。
- UI 会显示 NetworkService、WinDivert、TCP/UDP capture 和 redirect port 状态。
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:未实现
实际监听端口以应用设置页面显示的配置为准。
支持:
-
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 和可执行 customabp.txt已全部删除; -
Online PAC:这是独立的显式模式。通过 Shadowsocks 下载并缓存,然后由本地
/pacendpoint 提供给 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-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 已实现
System、Direct、Proxy、CustomDoh、DnsCrypt五种 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-pluginv2ray-pluginqtun
也可手动导入 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 选择设计后再开放。
自动更新默认可用。客户端会:
- 检查 GitHub Releases;
- 只接受更高且符合设置的版本;
- 下载
Shadowsocks-win-x64.zip与.sha256; - 校验 SHA-256;
- 校验 ZIP 布局与 EXE FileVersion;
- 将更新文件暂存到
%TEMP%\Shadowsocks\Updates; - 启动经过二次 SHA-256 校验的 updater;
- 等待旧进程退出;
- 保存 rollback 副本并替换主 EXE;
- 启动更新后的安装位置副本;
- 清理临时 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。
如果 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.ps1Shadowsocks Reborn 本身采用 GPL-3.0-or-later。
- License
- Third-party notices
- 主仓库中的法律文本:
LICENSE.txt与THIRD-PARTY-NOTICES.txt
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 模式。