菜单

设置界面

相关源文件

本页介绍了v2rayN中的设置界面,它为用户提供了一个全面的配置面板,用于自定义应用程序的各个方面。有关服务器配置文件管理的信息,请参阅服务器管理

概述

设置界面允许用户配置核心功能、用户界面行为、系统代理设置、TUN模式以及核心类型选择。它采用MVVM架构模式实现,并为Windows (WPF) 和跨平台 (Avalonia) 提供了特定于平台的UI实现。

来源:v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs

实现架构

设置界面遵循MVVM模式,组件分布在多个项目中,以支持Windows和跨平台实现。

来源:v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs v2rayN/ServiceLib/Models/ConfigItems.cs

核心设置选项卡

核心设置选项卡包含代理核心功能的关键配置选项。

可用选项

选项描述模型属性
Socks端口SOCKS代理的本地端口InItem.LocalPort
第二个本地端口启用/禁用第二个本地端口InItem.SecondLocalPortEnabled
UDP启用启用/禁用UDP代理支持InItem.UdpEnabled
嗅探启用启用/禁用协议嗅探InItem.SniffingEnabled
目标覆盖在嗅探中覆盖的协议InItem.DestOverride
仅路由启用仅路由模式InItem.RouteOnly
允许局域网连接允许来自局域网的连接InItem.AllowLANConn
局域网新端口为局域网连接使用新端口InItem.NewPort4LAN
身份验证用于代理身份验证的用户名/密码InItem.User, InItem.Pass
多路复用启用连接多路复用CoreBasicItem.MuxEnabled
日志记录启用日志记录到文件CoreBasicItem.LogEnabled
日志级别设置日志详细级别CoreBasicItem.Loglevel
允许不安全默认允许不安全的TLS连接CoreBasicItem.DefAllowInsecure
指纹默认TLS指纹CoreBasicItem.DefFingerprint
用户代理默认HTTP用户代理CoreBasicItem.DefUserAgent
Singbox Mux协议singbox的多路复用协议Mux4SboxItem.Protocol
Singbox缓存文件为singbox启用缓存文件CoreBasicItem.EnableCacheFile4Sbox
Hysteria带宽Hysteria的上行/下行带宽设置HysteriaItem.UpMbps, HysteriaItem.DownMbps
启用分片启用数据包分片CoreBasicItem.EnableFragment

来源:v2rayN/v2rayN/Views/OptionSettingWindow.xaml42-404 v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml38-339 v2rayN/ServiceLib/Models/ConfigItems.cs3-32

UI设置选项卡

UI设置选项卡允许自定义用户界面行为和外观。

可用选项

选项描述模型属性
开机自启在系统启动时运行应用程序GUIItem.AutoRun
启用统计启用流量统计GUIItem.EnableStatistics
显示实时速度在UI中显示实时速度GUIItem.DisplayRealTimeSpeed
保留旧的去重去重时保留较旧的服务器GUIItem.KeepOlderDedupl
自动调整列宽自动调整主列表列宽UIItem.EnableAutoAdjustMainLvColWidth
仅更新带有备注的订阅仅当存在备注时更新订阅UIItem.EnableUpdateSubOnlyRemarksExist
启用TLS 1.3启用TLS 1.3协议安全GUIItem.EnableSecurityProtocolTls13
启动时自动隐藏启动时自动隐藏窗口UIItem.AutoHideStartup
关闭时隐藏到托盘关闭时最小化到托盘而不是退出UIItem.Hide2TrayWhenClose
启用拖放排序允许通过拖放来排序服务器UIItem.EnableDragDropSort
双击激活双击激活服务器UIItem.DoubleClick2Activate
自动更新间隔自动更新之间的时间(分钟)GUIItem.AutoUpdateInterval
字体系列UI字体系列UIItem.CurrentFontFamily
混合并发数混合测试的并发连接数SpeedTestItem.MixedConcurrencyCount
速度测试超时速度测试超时时间(秒)SpeedTestItem.SpeedTestTimeout
速度测试URL用于速度测试的URLSpeedTestItem.SpeedTestUrl
速度Ping测试URL用于Ping测试的URLSpeedTestItem.SpeedPingTestUrl
订阅转换URL订阅转换的URLConstItem.SubConvertUrl
主网格方向主网格的方向(垂直/水平)UIItem.MainGirdOrientation
地理文件源地理文件的源URLConstItem.GeoSourceUrl
Singbox规则集源singbox规则集文件的源URLConstItem.SrsSourceUrl
路由规则源路由规则模板的源URLConstItem.RouteRulesTemplateSourceUrl

来源:v2rayN/v2rayN/Views/OptionSettingWindow.xaml526-660 v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml341-659 v2rayN/ServiceLib/Models/ConfigItems.cs66-117

系统代理设置选项卡

系统代理设置选项卡配置v2rayN如何与操作系统代理设置集成。

可用选项

选项描述模型属性
不代理本地地址不代理本地地址SystemProxyItem.NotProxyLocalAddress
高级协议用于系统代理的协议SystemProxyItem.SystemProxyAdvancedProtocol
异常处理绕过代理的地址SystemProxyItem.SystemProxyExceptions

来源:v2rayN/v2rayN/Views/OptionSettingWindow.xaml662-710 v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml662-710 v2rayN/ServiceLib/Models/ConfigItems.cs216-223

TUN模式设置选项卡

TUN模式设置选项卡配置TUN虚拟网络适配器模式。

可用选项

选项描述模型属性
严格路由启用严格路由TunModeItem.StrictRoute
要使用的网络堆栈TunModeItem.Stack
MTU最大传输单元TunModeItem.Mtu
启用外部入站启用外部入站连接TunModeItem.EnableExInbound
启用IPv6地址启用IPv6寻址TunModeItem.EnableIPv6Address
Linux Sudo密码Linux上sudo操作的密码TunModeItem.LinuxSudoPwd

来源:v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml713-809 v2rayN/ServiceLib/Models/ConfigItems.cs142-151

核心类型设置选项卡

核心类型设置选项卡配置要为每种协议类型使用的核心实现。

可用选项

协议描述模型属性
VMessVMess协议的核心类型CoreTypeItem[0].CoreType
自定义自定义协议的核心类型CoreTypeItem[1].CoreType
ShadowsocksShadowsocks协议的核心类型CoreTypeItem[2].CoreType
SocksSocks协议的核心类型CoreTypeItem[3].CoreType
VLESSVLESS协议的核心类型CoreTypeItem[4].CoreType
TrojanTrojan协议的核心类型CoreTypeItem[5].CoreType
WireguardWireguard协议的核心类型CoreTypeItem[6].CoreType

可用的核心类型包括

  • Xray
  • V2Ray
  • SingBox

来源: v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml812-908 v2rayN/ServiceLib/Models/ConfigItems.cs134-139 v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs176-182

设置数据流

下图说明了设置界面中设置的加载、修改和保存过程。

来源: v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs107-120 v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs272-381

平台特定考量

设置界面针对不同平台有不同的实现

  1. Windows 实现:使用 WPF 作为 UI (v2rayN/v2rayN/Views/OptionSettingWindow.xaml)
  2. 跨平台实现:使用 Avalonia 作为 UI (v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml)

两种实现方式共享相同的视图模型(v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs),但具有特定于平台的 UI 组件和行为。

某些设置仅在特定平台上可见

  • “关闭时隐藏到托盘”选项仅在 Linux 上可见
  • “Linux Sudo 密码”字段仅在 Linux 上可见
  • 系统代理高级协议选项因平台而异

来源: v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs169-192

结论

设置界面提供了影响 v2rayN 所有功能的全面配置选项。它遵循应用程序中使用的 MVVM 模式,并支持特定于 Windows 和跨平台实现。