菜单

概述

相关源文件

Shadowsocks for Windows 是一款轻量级的 Shadowsocks 代理协议客户端应用程序,旨在帮助用户绕过互联网审查并访问受限内容。它提供了一个用户友好的界面,用于配置和管理 Shadowsocks 连接,并支持各种加密方法、代理模式和连接策略。

本页面提供了 Shadowsocks Windows 客户端的高级介绍,包括其功能、架构和系统要求。有关特定组件的更多详细信息,请参阅其各自的维基页面。

目的与主要功能

Shadowsocks 是一种安全的 SOCKS5 代理,用于加密客户端和服务器之间的流量。Windows 客户端实现了 Shadowsocks 协议,具有以下关键特性:

  • 系统代理集成:自动配置 Windows 系统代理设置
  • 多种代理模式:支持 PAC(代理自动配置)和全局代理模式
  • GeoSite 规则:使用 v2fly/domain-list-community 中的基于域的规则进行智能流量路由
  • 服务器管理:添加、编辑和切换多个服务器配置
  • 连接策略:用于选择服务器的负载均衡和高可用模式
  • 协议扩展:支持 SIP002(URI 方案)和 SIP003(插件)
  • 流量加密:支持多种加密方法,包括 AEAD 密码
  • 附加功能:通过 Privoxy 支持 HTTP 代理、UDP 中继、便携模式

来源:README.md8-17 CHANGES1-45

系统架构

Shadowsocks for Windows 遵循模块化架构,组件之间职责明确分离。该系统的核心是 ShadowsocksController 类,它协调所有其他组件。

高层架构

来源:shadowsocks-csharp/Controller/ShadowsocksController.cs shadowsocks-csharp/Model/Configuration.cs shadowsocks-csharp/Controller/System/SystemProxy.cs

网络数据流

以下图表说明了网络流量如何通过 Shadowsocks Windows 客户端流动:

来源:shadowsocks-csharp/Controller/Service/TCPRelay.cs shadowsocks-csharp/Controller/Service/Listener.cs shadowsocks-csharp/Encryption/IEncryptor.cs

关键组件

ShadowsocksController

中央控制器,负责协调所有其他组件。它管理配置、处理用户界面事件、启动和停止代理服务,并与操作系统集成。

代理服务

  • 监听器 (Listener):监听本地端口上的传入连接,并将其转发到适当的中继器
  • TCP 中继 (TCPRelay):处理 TCP 连接,加密/解密数据,并与远程服务器通信
  • UDP 中继 (UDPRelay):为 UDP 流量提供类似功能
  • PAC 服务器 (PAC Server):提供代理自动配置脚本,告知浏览器哪些网站应通过代理访问
  • Privoxy:通过将 HTTP 请求转换为 SOCKS 来提供 HTTP 代理支持

配置系统

管理服务器配置、代理设置和用户偏好。配置存储在 JSON 文件中,可通过用户界面修改。

加密

实现各种加密算法以确保客户端和服务器之间的通信安全。Shadowsocks 支持多种密码,其中 AEAD(带关联数据的认证加密)是推荐的方法。

系统集成

  • 系统代理:配置 Windows 系统代理设置
  • 全局热键:注册用于控制 Shadowsocks 的系统范围键盘快捷键
  • 自动启动:注册应用程序随 Windows 启动
  • URL 协议处理器:允许从 ss:// 链接导入服务器配置

当前版本和要求

截至本文档编写时,当前版本为 4.4.1.0。

系统要求

  • Windows 7 或更高版本
  • .NET Framework 4.8 或更高版本
  • Microsoft Visual C++ 2015 可再发行组件包 (x86)

来源:shadowsocks-csharp/Controller/Service/UpdateChecker.cs36 README.md24

许可证与开发

Shadowsocks for Windows 是一款根据 GNU 通用公共许可证 v3.0 (GPLv3) 发布的开源软件。该项目由 Shadowsocks 社区维护并欢迎贡献。

有关从源代码构建、测试和贡献指南的信息,请参阅开发

来源:LICENSE.txt1-10 README.md129-170

组件关系

下表总结了主要组件及其主要职责:

组件角色关键类
控制器协调所有组件ShadowsocksController
配置管理用户和服务器设置Configuration, Server
代理服务处理网络流量Listener, TCPRelay, UDPRelay
PAC 系统管理自动代理规则PACServer, PACDaemon, GeositeUpdater
加密加密/解密流量EncryptorFactory, IEncryptor implementations
用户界面用户界面MenuViewController, ConfigForm
系统集成操作系统集成SystemProxy, HotkeyReg, AutoStartup
更新系统检查并应用更新UpdateChecker

来源:shadowsocks-csharp/shadowsocks-csharp.csproj220-334

有关特定组件的更多详细信息,请参阅维基中相应的章节: