菜单

服务器配置界面

相关源文件

服务器配置UI是Shadowsocks Windows客户端的核心组件,提供了一个用于管理代理服务器连接的界面。本页面介绍了服务器配置对话框的结构、功能和工作流程,该对话框允许用户添加、编辑、删除和管理Shadowsocks服务器配置。

有关配置系统代理的信息,请参阅系统代理配置

概述

服务器配置UI作为Windows Forms对话框(ConfigForm)实现,提供了一个全面的界面用于管理Shadowsocks服务器配置。它使用户能够:

  • 查看并从已配置服务器列表中选择
  • 添加、复制和删除服务器配置
  • 编辑服务器属性,包括地址、端口、加密和认证
  • 配置插件选项以扩展代理功能
  • 重新排序列表中的服务器
  • 设置应用程序范围的选项,如本地代理端口

来源:shadowsocks-csharp/View/ConfigForm.cs12-621

UI 结构

ConfigForm是一个双面板界面,结合了列表视图和详细编辑表单。左侧面板显示所有已配置的服务器,而右侧面板显示所选服务器的详细属性。

来源:shadowsocks-csharp/View/ConfigForm.Designer.cs29-607

服务器属性

下表显示了可配置的服务器属性:

属性描述验证
服务器IP/主机名Shadowsocks服务器地址必须是有效的主机名或IP地址
服务器端口服务器监听的端口号必须是有效整数
密码服务器的认证密码不能为空
加密使用的加密算法从预定义列表中选择
插件程序用于扩展功能的可选SIP003插件可选
插件选项插件的配置选项可选
插件参数插件的命令行参数可选,仅在选中“需要插件参数”时显示
备注用户定义的服务器备注可选
超时连接超时(秒)必须是有效整数
分组服务器分组此界面中只读

来源:shadowsocks-csharp/View/ConfigForm.cs166-193 shadowsocks-csharp/Model/Server.cs15-148

加密方法

服务器配置UI提供了多种加密方法来保护代理连接。这些方法在EncryptionMethod类中定义,并显示在下拉菜单中。

可用的加密方法包括:

  • none
  • plain
  • aes-256-gcm
  • aes-192-gcm
  • aes-128-gcm
  • chacha20-ietf-poly1305
  • xchacha20-ietf-poly1305

默认方法是“chacha20-ietf-poly1305”,如Server类中定义。

来源:shadowsocks-csharp/View/ConfigForm.cs22-86 shadowsocks-csharp/Model/Server.cs17

服务器列表管理

UI提供了多种操作来管理服务器列表:

添加新服务器

点击“添加”按钮时,会创建一个新的默认服务器并添加到配置中。然后服务器列表会更新,新服务器被选中以进行编辑。

来源:shadowsocks-csharp/View/ConfigForm.cs497-504

复制服务器

“复制”按钮会创建当前所选服务器的副本,并将其插入到列表中当前位置之后。

来源:shadowsocks-csharp/View/ConfigForm.cs506-515

删除服务器

“删除”按钮会从配置中移除当前所选服务器。如果删除了最后一个服务器,会自动创建一个新的默认服务器。

来源:shadowsocks-csharp/View/ConfigForm.cs517-535

重新排序服务器

“上移”和“下移”按钮允许重新排序列表中的服务器。

来源:shadowsocks-csharp/View/ConfigForm.cs544-577

数据流和验证

ConfigForm实现了健壮的验证系统,以确保配置的完整性。当用户编辑服务器详细信息时,表单会在保存更改之前验证输入。

来源:shadowsocks-csharp/View/ConfigForm.cs138-212 shadowsocks-csharp/View/ConfigForm.cs216-368

与控制器的集成

ConfigForm与ShadowsocksController交互以加载和保存配置。控制器负责将更改应用到运行中的系统。

配置工作流程如下:

  1. 当表单打开时,它从控制器获取当前配置
  2. 对配置的本地副本进行更改
  3. 应用时,控制器会使用修改后的配置进行更新
  4. 控制器负责将配置持久化到存储

来源:shadowsocks-csharp/View/ConfigForm.cs88-104 shadowsocks-csharp/View/ConfigForm.cs418-437 shadowsocks-csharp/View/ConfigForm.cs439-458

用户体验考量

服务器配置UI包含多项功能以提升用户体验:

  1. 自动验证:输入字段在用户输入时进行验证,并显示清晰的错误消息
  2. 更改跟踪:“应用”按钮仅在有更改时启用
  3. 未保存更改处理:提示用户保存或放弃更改
  4. 密码可见性:“显示密码”复选框用于切换密码可见性
  5. 条件UI:插件参数字段仅在需要时显示

来源:shadowsocks-csharp/View/ConfigForm.cs112-136 shadowsocks-csharp/View/ConfigForm.cs607-616

应用程序范围设置

除了服务器特定设置,ConfigForm还提供了应用程序范围设置的配置:

  1. 本地代理端口:Shadowsocks客户端监听本地应用程序的端口
  2. 便携模式:以便携模式运行Shadowsocks的选项(配置与可执行文件存储在一起)

这些设置在保存配置时应用。

来源:shadowsocks-csharp/View/ConfigForm.cs446-450

延伸阅读

有关相关组件的更多信息,请参阅:

  • 代理服务 - 关于如何使用已配置服务器进行代理连接的文档
  • PAC系统 - 关于自动代理配置如何工作的信息
  • SIP003插件 - 关于与服务器配置一起使用的插件系统的详细信息
  • 系统代理配置 - Shadowsocks如何与系统代理设置集成