1
0
mirror of https://github.com/proxysu/ProxySU.git synced 2024-11-22 05:06:08 +03:00

添加Xray

This commit is contained in:
ProxySU 2020-11-26 21:07:35 +08:00
parent ab9021e8a6
commit 1425ce28a1
77 changed files with 6531 additions and 48 deletions

View File

@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ProxySU"
mc:Ignorable="d"
Title="ProxySU - v2.4.25 Beta2" Height="675" Width="650">
Title="ProxySU - v2.5.0 Beta1" Height="675" Width="660">
<!--以下样式参考自https://yq.aliyun.com/articles/331878
https://docs.microsoft.co/en-us/dotnet/desktop-wpf/fundamentals/styles-templates-overview-->
<Window.Resources>
@ -165,7 +165,100 @@
</Grid>
<Grid Grid.Row="2">
<TabControl Grid.Column="0" Grid.Row="9" Grid.ColumnSpan="4" Grid.RowSpan="3">
<TabItem Header="V2Ray" Width="80" Height="30">
<TabItem Header="Xray" Width="60" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
</Grid.RowDefinitions>
<!--<Button x:Name="ButtonGuideConfiguration" Visibility="Visible" Content="启用向导" Grid.Column="0" Grid.Row="0" Click="ButtonGuideConfiguration_Click"></Button>
<TextBlock Text="通过向导生成配置文件" Visibility="Visible" Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" HorizontalAlignment="Center"></TextBlock>-->
<Button x:Name="ButtonTemplateConfigurationXray" Content="{DynamicResource ButtonTemplateConfigurationXray}" Grid.Column="1" Grid.Row="0" Margin="5" Click="ButtonTemplateConfigurationXray_Click"></Button>
<!--<TextBlock Text="模板库" Grid.Column="1" Grid.Row="1" Grid.RowSpan="2" HorizontalAlignment="Center"></TextBlock>-->
<!--<Button x:Name="ButtonAdvancedConfiguration" Visibility="Visible" Content="配置编辑器" Grid.Column="2" Grid.Row="0" Click="ButtonAdvancedConfiguration_Click"></Button>
<TextBlock Text="配置文件高级生成器&#x0a;(有经验用户可以使用)" Visibility="Visible" Grid.Column="2" Grid.Row="1" Grid.RowSpan="2" HorizontalAlignment="Center"></TextBlock>-->
<!--<RadioButton x:Name="RadioButtonGuideConfiguration" Content="向导生成配置" Grid.Column="0" Grid.Row="0"></RadioButton>
<RadioButton x:Name="RadioButtonTemplateConfiguration" Content="模板配置" Grid.Column="0" Grid.Row="1"></RadioButton>
<RadioButton x:Name="RadioButtonAdvancedConfiguration" Content="高级配置" Grid.Column="0" Grid.Row="2"></RadioButton>
<TextBox x:Name="TextBoxJsonPath" Margin="10" Grid.Column="1" Grid.Row="1"></TextBox>
<Button x:Name="ButtonSetConfiguration" Margin="6" Content="配置" Grid.Column="2" Grid.Row="2" Click="ButtonSetConfiguration_Click"></Button>-->
<Grid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockCurrentlySelectedPlan}" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center" ></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanXray" Text="{DynamicResource TextBlockCurrentlySelectedPlanNo}" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<Grid x:Name="GridXrayCurrentlyPlan" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock x:Name="TextBlockXrayShowPort" Text="{DynamicResource TextBlockV2RayServerPort}" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanPortXray" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockXrayShowUUID" Text="UUID:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanUUIDXray" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockXrayShowPathSeedKey" Text="Path/mKCP Seed/Quic Key" Visibility="Collapsed" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanPathSeedKeyXray" Visibility="Collapsed" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<Grid x:Name="GridVlessVmessXtlsTcpWsXray" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock x:Name="TextBlockPathVlessWsXray" Text="{DynamicResource TextBlockV2RayVlessWsPath}" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockBoxPathVlessWSXray" Grid.Column="1" Grid.Row="3" Margin="0"></TextBlock>
<TextBlock x:Name="TextBlockPathVmessTcpXray" Text="{DynamicResource TextBlockV2RayVmessTcpPath}" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockBoxPathVmessTcpXray" Grid.Column="3" Grid.Row="3" Margin="0"></TextBlock>
<TextBlock x:Name="TextBlockPathVmessWsXray" Text="{DynamicResource TextBlockV2RayVmessWsPath}" Grid.Column="4" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockBoxPathVmessWSXray" Grid.Column="5" Grid.Row="3" Margin="0"></TextBlock>
</Grid>
<TextBlock x:Name="TextBlockXrayShowCurrentlySelectedPlanDomain" Text="Domain/Quic Encrypt" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanDomainXray" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockXrayShowCurrentlySelectedPlanFakeWebsite" Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockCurrentlySelectedPlanFakeWebsiteXray" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
</Grid>
</Grid>
<Button x:Name="ButtonXraySetUP" Content="{DynamicResource Button_LoginXray}" Margin="10" Grid.Column="0" Grid.Row="2" Click="ButtonXraySetUP_Click"></Button>
<Button x:Name="ButtonUpdateXray" Content="{DynamicResource ButtonUpdateXray}" Margin="10" Grid.Column="1" Grid.Row="2" Click="ButtonUpdateXray_Click"></Button>
<Button x:Name="Button_Xraycanel" Content="{DynamicResource Button_canel}" Margin="10" Grid.Column="2" Grid.Row="2" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<TabItem Header="V2Ray" Width="60" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -257,7 +350,8 @@
<Button x:Name="Button_canel" Content="{DynamicResource Button_canel}" Margin="10" Grid.Column="2" Grid.Row="2" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<TabItem Header="Trojan-Go" Width="80" Height="30">
<TabItem Header="Trojan-Go" Width="70" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -310,7 +404,7 @@
<Button x:Name="ButtonTrojanGoCancel" Content="{DynamicResource ButtonTrojanGoCancel}" Margin="10" Grid.Column="2" Grid.Row="2" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<TabItem Header="Trojan" Width="80" Height="30">
<TabItem Header="Trojan" Width="60" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>

File diff suppressed because it is too large Load Diff

View File

@ -51,5 +51,5 @@ using System.Windows;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.4.25.0")]
[assembly: AssemblyFileVersion("2.4.25.0")]
[assembly: AssemblyVersion("2.5.0.0")]
[assembly: AssemblyFileVersion("2.5.0.0")]

View File

@ -92,6 +92,9 @@
<Compile Include="SSpluginWindow.xaml.cs">
<DependentUpon>SSpluginWindow.xaml</DependentUpon>
</Compile>
<Compile Include="XayTemplateWindow.xaml.cs">
<DependentUpon>XayTemplateWindow.xaml</DependentUpon>
</Compile>
<Compile Include="V2RayTemplateWindow.xaml.cs">
<DependentUpon>V2RayTemplateWindow.xaml</DependentUpon>
</Compile>
@ -134,6 +137,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="XayTemplateWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="V2RayTemplateWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>

View File

@ -13,7 +13,7 @@
<RowDefinition Height="0.12*"></RowDefinition>
</Grid.RowDefinitions>
<!-- V2Ray客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxV2rayClient" Visibility="Visible" Grid.Row="0">
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxV2rayClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
@ -95,7 +95,7 @@
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonVlessTcpXtls" Content="VLESS over TCP with XTLS" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Checked="RadioButtonVlessTcpXtls_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVlessTcpXtls" Content="VLESS over TCP with XTLS" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Checked="RadioButtonVlessTcpXtls_Checked" Visibility="Collapsed"></RadioButton>
<RadioButton x:Name="RadioButtonVlessTcpTls" Content="VLESS over TCP with TLS" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" Checked="RadioButtonVlessTcpTls_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVlessWsTls" Content="VLESS over WS with TLS" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" Checked="RadioButtonVlessWsTls_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVmessTcpTls" Content="VMess over TCP with TLS" Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" Checked="RadioButtonVmessTcpTls_Checked"></RadioButton>
@ -106,6 +106,103 @@
</GroupBox>
</Grid>
</GroupBox>
<!-- Xray客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxXrayClient" Visibility="Visible" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="0.8*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockServerAddress}" Grid.Column="0" Grid.Row="0" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxHostAddressXray" IsReadOnly="True" Grid.Column="1" Grid.Row="0" Margin="2" MouseDoubleClick="TextBoxHostAddressXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockVmessOrVlessXray" Text="" Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockServerPort}" Grid.Column="0" Grid.Row="1" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxPortXray" IsReadOnly="True" Grid.Column="1" Grid.Row="1" Margin="2" MouseDoubleClick="TextBoxPortXray_MouseDoubleClick"></TextBox>
<TextBlock Text="{DynamicResource TextBlockUserUUID}" Grid.Column="0" Grid.Row="2" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxUUIDXray" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="2" MouseDoubleClick="TextBoxUUIDXray_MouseDoubleClick"></TextBox>
<Grid x:Name="GridNotTrojanParametersXray" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Grid.RowSpan="7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock x:Name="TextBlockUUIDextraXray" Text="{DynamicResource TextBlockV2RayAlterId}" Grid.Column="0" Grid.Row="0" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxUUIDextraXray" IsReadOnly="False" Grid.Column="1" Grid.Row="0" Margin="2" MouseDoubleClick="TextBoxUUIDextraXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockEncryptionXray" Text="{DynamicResource TextBlockEncryption}" Grid.Column="0" Grid.Row="1" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxEncryptionXray" IsReadOnly="True" Grid.Column="1" Grid.Row="1" Margin="2" MouseDoubleClick="TextBoxEncryptionXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockTransferProtocolXray" Text="{DynamicResource TextBlockTransferProtocol}" Grid.Column="0" Grid.Row="2" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxTransmissionXray" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="2" MouseDoubleClick="TextBoxTransmissionXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockCamouflageTypeXray" Text="{DynamicResource TextBlockCamouflageType}" Grid.Column="0" Grid.Row="3" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxCamouflageTypeXray" IsReadOnly="True" Grid.Column="1" Grid.Row="3" Margin="2" MouseDoubleClick="TextBoxCamouflageTypeXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockQuicEncryptionXray" Text="{DynamicResource TextBlockQuicEncryption}" Visibility="Collapsed" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockHostXray" Text="Host:" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxHostQuicEncryptionXray" IsReadOnly="True" Grid.Column="1" Grid.Row="4" Margin="2" MouseDoubleClick="TextBoxHostQuicEncryptionXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlockPathXray" Text="{DynamicResource TextBlockClientPath}" Visibility="Visible" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockMkcpSeedXray" Text="{DynamicResource TextBlockClientMkcpSeed}" Visibility="Collapsed" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockQuicKeyXray" Text="{DynamicResource TextBlockClientQuicKey}" Visibility="Collapsed" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxQuicKeyMkcpSeedPathXray" IsReadOnly="True" Grid.Column="1" Grid.Row="5" Margin="2" MouseDoubleClick="TextBoxQuicKeyMkcpSeedPathXray_MouseDoubleClick"></TextBox>
<TextBlock x:Name="TextBlocTLSonOrNoXray" Text="{DynamicResource TextBlockIsOrNotTLS}" Grid.Column="0" Grid.Row="6" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxTLSXray" IsReadOnly="True" Grid.Column="1" Grid.Row="6" Margin="2" MouseDoubleClick="TextBoxTLSXray_MouseDoubleClick"></TextBox>
</Grid>
<TextBlock x:Name="TextBlockUUIDextraExplanationXray" Text="{DynamicResource TextBlockV2RayAlterIdExplain}" TextWrapping="Wrap" Grid.Column="2" Grid.Row="3" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockEncryptionIsAuto}" Grid.Column="2" Grid.Row="4" Visibility="Collapsed" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockCopyToClipExplain}" Grid.Column="0" Grid.Row="10" Grid.ColumnSpan="2" Margin="5"></TextBlock>
<GroupBox x:Name="GroupBoxSelectVlessVmessXtlsTcpWsXray" Grid.Column="2" Grid.Row="5" Grid.RowSpan="6" Margin="10,0,2,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonVlessTcpXtlsXray" Content="VLESS over TCP with XTLS" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Checked="RadioButtonVlessTcpXtlsXray_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVlessTcpTlsXray" Content="VLESS over TCP with TLS" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" Checked="RadioButtonVlessTcpTlsXray_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVlessWsTlsXray" Content="VLESS over WS with TLS" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" Checked="RadioButtonVlessWsTlsXray_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVmessTcpTlsXray" Content="VMess over TCP with TLS" Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" Checked="RadioButtonVmessTcpTlsXray_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonVmessWsTlsXray" Content="VMess over WS with TLS" Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Checked="RadioButtonVmessWsTlsXray_Checked"></RadioButton>
<RadioButton x:Name="RadioButtonTrojanTcpTlsXray" Content="Trojan over TCP with TLS" Grid.Column="1" Grid.Row="5" VerticalAlignment="Center" Checked="RadioButtonTrojanTcpTlsXray_Checked" ></RadioButton>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<!-- Trojan-Go客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxTrojanGoClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
@ -327,7 +424,7 @@
</Grid>
</GroupBox>
<!-- MTProto客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxClientMTProto" Visibility="Collapsed" Grid.Row="0" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,11 @@
<sys:String x:Key="ButtonSaveInstalledLog">Save Installation Log...</sys:String>
<sys:String x:Key="TextBlockSetUpProcessing">Waiting for installation and deployment</sys:String>
<sys:String x:Key="TabItemHeaderSysTools">System Tools</sys:String>
<sys:String x:Key="ButtonTemplateConfigurationXray">Xray template library</sys:String>
<sys:String x:Key="Button_LoginXray">Xray one-click installation</sys:String>
<sys:String x:Key="ButtonUpdateXray">Upgrade Xay</sys:String>
<sys:String x:Key="ButtonV2RayTemplateConfiguration">V2Ray Templates</sys:String>
<sys:String x:Key="ButtonV2RayOneKeyInstall">V2ray install</sys:String>
<sys:String x:Key="ButtonUpdateV2ray">Upgrade V2Ray</sys:String>
@ -184,6 +189,7 @@
<sys:String x:Key="TextBlockV2RayWebSocketTlsWebExplain">Strong stability, Caddy2 as the front, hidden proxy feature, recognized as https traffic to the website, the strongest anti-blocking recognition, domain name is required, CDN support</sys:String >
<sys:String x:Key="TextBlockV2RayHttp2TlsWebExplain">based on HTTP/2 transmission. Completely implemented in accordance with the HTTP/2 standard, with Caddy2 as the front, hidden proxy features, H2C protocol forwarding to V2Ray, domain name is required, and CloudFlare CDN is not currently supported</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot">VLESS over TCP with XTLS + fallback and shunt to WHATEVER (ultimate configuration), configured and recommended by rprx boss (author of xtls), configure the following six solutions at the same time on the server side, sharing the same domain name and port 443, WS can pass through CDN.</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot5">VLESS over TCP with XTLS + fallback and shunt to WHATEVER (ultimate configuration), configured and recommended by rprx boss (author of xtls), configure the following five solutions at the same time on the server side, sharing the same domain name and port 443, WS can pass through CDN.(If you want to add XTLS scheme, please use Xray configuration)</sys:String>
<sys:String x:Key="TextBlockV2RayTcpExplain">Encrypted data transmission will be recognized as unknown tcp traffic</sys:String>
<sys:String x:Key="RadioButtonV2RayTcpHttp">TCP+Http camouflage</sys:String>
<sys:String x:Key="TextBlockV2RayTcpHttpExplain">Encrypted data transmission and HTTP disguise will be recognized as http traffic, but not real http access</sys:String>
@ -336,6 +342,7 @@
<sys:String x:Key="DisplayInstallInfo_InstalledCaddyOK">Caddy installed successfully!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UpgradeCaddy">is upgrading the Caddy v2.2.0 beta version for Http2Web mode!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfig">Upload Caddy configuration file...</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigFailed">Caddy configuration file upload failed!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigOK">The Caddy configuration file is uploaded successfully, OK!</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyService">Starting Caddy...</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyServiceOK">Caddy started successfully!</sys:String>
@ -394,6 +401,11 @@
<sys:String x:Key="DisplayInstallInfo_UpgradeNaiveProxyOK">The upgrade is complete, OK!</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetwork">Optimizing network parameters...</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetworkOK">Optimize network parameters, OK!</sys:String>
<!--The following is the Xray client documentation-->
<sys:String x:Key="readmeTxtXrayExplainLine01">This file is the client configuration file used by the official Xay program. It is configured in global mode, socks5 address: 127.0.0.1:1080, http proxy address: 127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine02">Xray official website: https://github.com/XTLS/Xray-core</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine03">Xray official program download address: https://github.com/XTLS/Xray-core/releases</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine04">Download the corresponding version, select xray-windows-64.zip or xray-windows-32.zip for Windows, extract xray.exe after decompression. Put it in the same directory as config.json, just run xray.exe.</sys:String>
<!--The following is the V2Ray client description file-->
<sys:String x:Key="readmeTxtV2RayExplainLine01">This file is the client configuration file used by the official V2Ray program. It is configured in global mode, socks5 address: 127.0.0.1:1080, http proxy address: 127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine02">v2ray official website: https://www.v2ray.com/</sys:String>

View File

@ -30,10 +30,16 @@
<sys:String x:Key="ButtonSaveInstalledLog">安装日志另存为...</sys:String>
<sys:String x:Key="TextBlockSetUpProcessing">等待安装布署</sys:String>
<sys:String x:Key="TabItemHeaderSysTools">系统工具</sys:String>
<sys:String x:Key="ButtonTemplateConfigurationXray">Xray模板库</sys:String>
<sys:String x:Key="Button_LoginXray">Xray一键安装</sys:String>
<sys:String x:Key="ButtonUpdateXray">升级Xay</sys:String>
<sys:String x:Key="ButtonV2RayTemplateConfiguration">V2Ray模板库</sys:String>
<sys:String x:Key="ButtonV2RayOneKeyInstall">V2ray一键安装</sys:String>
<sys:String x:Key="ButtonUpdateV2ray">升级V2Ray</sys:String>
<sys:String x:Key="ButtonUpdateV2ray">升级V2ray</sys:String>
<sys:String x:Key="Button_canel">取消</sys:String>
<sys:String x:Key="ButtonTrojanGoTemplate">Trojan-Go参数设置</sys:String>
<sys:String x:Key="ButtonTrojanGoSetUp">Trojan-Go一键安装</sys:String>
<sys:String x:Key="ButtonUpdateTrojanGo">升级Trojan-Go</sys:String>
@ -187,6 +193,7 @@
<sys:String x:Key="TextBlockV2RayWebSocketTlsWebExplain">稳定性强Caddy2做前置隐藏代理特征被识别为访问网站的https流量抗封锁识别最强,需要域名,支持CDN</sys:String>
<sys:String x:Key="TextBlockV2RayHttp2TlsWebExplain">基于 HTTP/2 传输。完整按 HTTP/2 标准实现Caddy2做前置隐藏代理特征H2C协议转发到V2Ray需要域名暂不支持CloudFlare的CDN</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot">VLESS over TCP with XTLS + 回落 and 分流 to WHATEVER终极配置由rprx大佬 (xtls作者) 配置并推荐在服务端同时配置以下六种方案共用同一域名与443端口其中 WS 都可以通过 CDN。</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot5">VLESS over TCP with XTLS + 回落 and 分流 to WHATEVER终极配置由rprx大佬 (xtls作者) 配置并推荐在服务端同时配置以下五种方案共用同一域名与443端口其中 WS 都可以通过 CDN。(想增加XTLS方案请使用Xray配置)</sys:String>
<sys:String x:Key="RadioButtonV2RayTcpHttp">TCP+Http伪装</sys:String>
<sys:String x:Key="TextBlockV2RayTcpExplain">数据加密传输会被识别为未知的tcp流量</sys:String>
<sys:String x:Key="TextBlockV2RayTcpHttpExplain">数据加密传输并做http伪装会被识别为http流量但并不是真正的http访问</sys:String>
@ -341,6 +348,7 @@
<sys:String x:Key="DisplayInstallInfo_InstalledCaddyOK">Caddy安装成功</sys:String>
<sys:String x:Key="DisplayInstallInfo_UpgradeCaddy">正在为Http2Web模式升级Caddy v2.2.0测试版!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfig">上传Caddy配置文件......</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigFailed">Caddy配置文件上传失败!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigOK">Caddy配置文件上传成功,OK!</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyService">正在启动Caddy......</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyServiceOK">Caddy启动成功</sys:String>
@ -399,11 +407,18 @@
<sys:String x:Key="DisplayInstallInfo_UpgradeNaiveProxyOK">升级完毕OK</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetwork">正在优化网络参数......</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetworkOK">优化网络参数,OK!</sys:String>
<!--以下为Xray客户端说明文件-->
<sys:String x:Key="readmeTxtXrayExplainLine01">此文件为Xay官方程序所使用的客户端配置文件配置为全局模式socks5地址127.0.0.1:1080http代理地址127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine02">Xray官方网站https://github.com/XTLS/Xray-core</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine03">Xray官方程序下载地址https://github.com/XTLS/Xray-core/releases</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine04">下载相应版本Windows选择xray-windows-64.zip或者xray-windows-32.zip解压后提取xray.exe。与config.json放在同一目录运行xray.exe即可。</sys:String>
<!--以下为V2Ray客户端说明文件-->
<sys:String x:Key="readmeTxtV2RayExplainLine01">此文件为V2Ray官方程序所使用的客户端配置文件配置为全局模式socks5地址127.0.0.1:1080http代理地址127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine02">v2ray官方网站https://www.v2ray.com/</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine03">v2ray官方程序下载地址https://github.com/v2ray/v2ray-core/releases</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine04">下载相应版本Windows选择v2ray-windows-64.zip或者v2ray-windows-32.zip解压后提取v2ctl.exe和v2ray.exe。与config.json放在同一目录运行v2ray.exe即可。</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine05">此文件为v2rayN(windows)、Qv2ray(windows)、v2rayNG(Android)、Shadowrocket(ios)扫码导入节点</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine06">v2rayN下载网址https://github.com/2dust/v2rayN/releases</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine07">Qv2ray下载网址https://github.com/Qv2ray/Qv2ray/releases</sys:String>

View File

@ -30,6 +30,11 @@
<sys:String x:Key="ButtonSaveInstalledLog">安裝日誌另存為...</sys:String>
<sys:String x:Key="TextBlockSetUpProcessing">等待安裝佈署</sys:String>
<sys:String x:Key="TabItemHeaderSysTools">系統工具</sys:String>
<sys:String x:Key="ButtonTemplateConfigurationXray">Xray模板庫</sys:String>
<sys:String x:Key="Button_LoginXray">Xray一鍵安裝</sys:String>
<sys:String x:Key="ButtonUpdateXray">升級Xay</sys:String>
<sys:String x:Key="ButtonV2RayTemplateConfiguration">V2Ray模板庫</sys:String>
<sys:String x:Key="ButtonV2RayOneKeyInstall">V2ray一鍵安裝</sys:String>
<sys:String x:Key="ButtonUpdateV2ray">升級V2Ray</sys:String>
@ -184,6 +189,7 @@
<sys:String x:Key="TextBlockV2RayWebSocketTlsWebExplain">穩定性強Caddy2做前置隱藏代理特徵被識別為訪問網站的https流量抗封鎖識別最強,需要域名,支持CDN</sys:String >
<sys:String x:Key="TextBlockV2RayHttp2TlsWebExplain">基於 HTTP/2 傳輸。完整按 HTTP/2 標準實現Caddy2做前置隱藏代理特徵H2C協議轉發到V2Ray需要域名暫不支持CloudFlare的CDN</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot">VLESS over TCP with XTLS + 回落and 分流to WHATEVER終極配置由rprx大佬(xtls作者)配置並推薦在服務端同時配置以下六種方案共用同一域名與443端口其中 WS 都可以通過 CDN。</sys:String>
<sys:String x:Key="TextBlockVlessVmessXtlsTcpWebSocketExplainHot5">VLESS over TCP with XTLS + 回落and 分流to WHATEVER終極配置由rprx大佬(xtls作者)配置並推薦在服務端同時配置以下五種方案共用同一域名與443端口其中 WS 都可以通過 CDN。(想增加XTLS方案請使用Xray配置)</sys:String>
<sys:String x:Key="TextBlockV2RayTcpExplain">數據加密傳輸會被識別為未知的tcp流量</sys:String>
<sys:String x:Key="RadioButtonV2RayTcpHttp">TCP+Http偽裝</sys:String>
<sys:String x:Key="TextBlockV2RayTcpHttpExplain">數據加密傳輸並做http偽裝會被識別為http流量但並不是真正的http訪問</sys:String>
@ -336,6 +342,7 @@
<sys:String x:Key="DisplayInstallInfo_InstalledCaddyOK">Caddy安裝成功</sys:String>
<sys:String x:Key="DisplayInstallInfo_UpgradeCaddy">正在為Http2Web模式升級Caddy v2.2.0測試版!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfig">上傳Caddy配置文件......</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigFailed">Caddy配置文件上傳失敗!</sys:String>
<sys:String x:Key="DisplayInstallInfo_UploadCaddyConfigOK">Caddy配置文件上傳成功,OK!</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyService">正在啟動Caddy......</sys:String>
<sys:String x:Key="DisplayInstallInfo_StartCaddyServiceOK">Caddy啟動成功</sys:String>
@ -394,8 +401,12 @@
<sys:String x:Key="DisplayInstallInfo_UpgradeNaiveProxyOK">升級完畢OK</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetwork">正在優化網絡參數......</sys:String>
<sys:String x:Key="DisplayInstallInfo_OptimizeNetworkOK">優化網絡參數,OK!</sys:String>
<!--以下為Xray客戶端說明文件-->
<sys:String x:Key="readmeTxtXrayExplainLine01">此文件為Xay官方程序所使用的客戶端配置文件配置為全局模式socks5地址127.0.0.1:1080http代理地址127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine02">Xray官方網站https://github.com/XTLS/Xray-core</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine03">Xray官方程序下載地址https://github.com/XTLS/Xray-core/releases</sys:String>
<sys:String x:Key="readmeTxtXrayExplainLine04">下載相應版本Windows選擇xray-windows-64.zip或者xray-windows-32.zip解壓後提取xray.exe。與config.json放在同一目錄運行xray.exe即可。</sys:String>
<!--以下為V2Ray客戶端說明文件-->
<sys:String x:Key="readmeTxtV2RayExplainLine01">此文件為V2Ray官方程序所使用的客戶端配置文件配置為全局模式socks5地址127.0.0.1:1080http代理地址127.0.0.1:1081</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine02">v2ray官方網站https://www.v2ray.com/</sys:String>
<sys:String x:Key="readmeTxtV2RayExplainLine03">v2ray官方程序下載地址https://github.com/v2ray/v2ray-core/releases</sys:String>

View File

@ -93,16 +93,16 @@
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockVlessVmessXtlsTcpWebSocketExplainHot}" TextWrapping="Wrap" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<TextBlock Text="1. VLESS over TCP with XTLS(direct)" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="2. VLESS over TCP with TLS" Grid.Column="1" Grid.Row="2" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="3. VLESS over WS with TLS" Grid.Column="1" Grid.Row="3" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="4. VMess over TCP with TLS (Not Recommended)" Grid.Column="1" Grid.Row="4" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="5. VMess over WS with TLS" Grid.Column="1" Grid.Row="5" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="6. Trojan over TCP with TLS" Grid.Column="1" Grid.Row="6" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockVlessVmessXtlsTcpWebSocketExplainHot5}" TextWrapping="Wrap" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<TextBlock Text="1. VLESS over TCP with XTLS(direct)" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom" Visibility="Collapsed"></TextBlock>
<TextBlock Text="1. VLESS over TCP with TLS" Grid.Column="1" Grid.Row="2" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="2. VLESS over WS with TLS" Grid.Column="1" Grid.Row="3" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="3. VMess over TCP with TLS (Not Recommended)" Grid.Column="1" Grid.Row="4" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="4. VMess over WS with TLS" Grid.Column="1" Grid.Row="5" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="5. Trojan over TCP with TLS" Grid.Column="1" Grid.Row="6" VerticalAlignment="Bottom"></TextBlock>
</Grid>
<RadioButton x:Name="RadioButtonVlessVmessXtlsTcpWebSocketHot" Content="VLESS+VMESS+Trojan+XTLS(direct)+TCP+WebSocket+Web" GroupName="TemplateGroup" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Checked="RadioButtonVlessVmessXtlsTcpWebSocketHot_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<RadioButton x:Name="RadioButtonVlessVmessXtlsTcpWebSocketHot" Content="VLESS+VMESS+Trojan+TCP+WebSocket+Web" GroupName="TemplateGroup" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Checked="RadioButtonVlessVmessXtlsTcpWebSocketHot_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<!--<Grid Grid.Column="0" Grid.Row="2">
<Grid.ColumnDefinitions>
@ -136,8 +136,8 @@
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockVlessExplain}" TextWrapping="Wrap" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="4" Margin="5,3,5,0"></TextBlock>
<RadioButton x:Name="RadioButtonVlessXtlsTcp" Content="VLESS+TCP+XTLS(direct)+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonVlessTcpTlsWeb_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" ></RadioButton>
<TextBlock Text="{DynamicResource TextBlockVlessXtlsTcpExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,0,5,0" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonVlessXtlsTcp" Content="VLESS+TCP+XTLS(direct)+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonVlessTcpTlsWeb_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="Collapsed"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockVlessXtlsTcpExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,0,5,0" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="Collapsed"></TextBlock>
<RadioButton x:Name="RadioButtonVlessTcpTlsWeb" Content="VLESS+TCP+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Checked="RadioButtonVlessTcpTlsWeb_Checked" ></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayVlessTcpTlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" Margin="0,0,5,0" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>

View File

@ -0,0 +1,390 @@
<Window x:Name="XrayTemplateConfiguration" x:Class="ProxySU.XrayWindowTemplateConfiguration"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ProxySU"
mc:Ignorable="d"
Title="XayTemplateConfiguration" Height="600" Width="950">
<Window.Resources>
<Style BasedOn="{StaticResource {x:Type TextBox}}"
TargetType="TextBox"
x:Key="TitleText">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Text" Value=""/>
<Condition Property="TextBox.IsFocused" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0">
<TextBlock x:Name="MainTextBlock" Text="{TemplateBinding TextBox.Tag}" Width="{TemplateBinding TextBox.ActualWidth}" Foreground="Gray" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</MultiTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Header="{DynamicResource ButtonTemplateConfigurationXray}" Grid.Row="0" Grid.RowSpan="3">
<Grid>
<TabControl x:Name="TabControlTemplate">
<TabItem Header="{DynamicResource TabItemHeaderV2RayHotPlan}" Width="100" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.8*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="0.3*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.2*"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonWebSocketTLS2WebHot" Content="WebSocket+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonWebSocketTLS2Web_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayWebSocketTlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonHTTP2WebHot" Content="HTTP2+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonWebSocketTLS2Web_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayHttp2TlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayEarlyPlan}" Width="100" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="10"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="0.4*"></RowDefinition>
<RowDefinition Height="10"></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.2*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockVlessVmessXtlsTcpWebSocketExplainHot}" TextWrapping="Wrap" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<TextBlock Text="1. VLESS over TCP with XTLS(direct)" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="2. VLESS over TCP with TLS" Grid.Column="1" Grid.Row="2" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="3. VLESS over WS with TLS" Grid.Column="1" Grid.Row="3" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="4. VMess over TCP with TLS (Not Recommended)" Grid.Column="1" Grid.Row="4" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="5. VMess over WS with TLS" Grid.Column="1" Grid.Row="5" VerticalAlignment="Bottom"></TextBlock>
<TextBlock Text="6. Trojan over TCP with TLS" Grid.Column="1" Grid.Row="6" VerticalAlignment="Bottom"></TextBlock>
</Grid>
<RadioButton x:Name="RadioButtonVlessVmessXtlsTcpWebSocketHot" Content="VLESS+VMESS+Trojan+XTLS(direct)+TCP+WebSocket+Web" GroupName="TemplateGroup" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Checked="RadioButtonVlessVmessXtlsTcpWebSocketHot_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<!--<Grid Grid.Column="0" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.15*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock x:Name="TextBlockVlessVmessXtlsTcpWebSocket" Text="VLESS+VMESS+XTLS+TCP+WebSocket+Web" TextWrapping="Wrap" Margin="0,0,8,0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left" MouseDown="TextBlockVlessVmessXtlsTcpWebSocket_MouseDown"></TextBlock>
</Grid>-->
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayVlessProtocol}" Width="100" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1.2*"></RowDefinition>
<RowDefinition Height="1.2*"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="3"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockVlessExplain}" TextWrapping="Wrap" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="4" Margin="5,3,5,0"></TextBlock>
<RadioButton x:Name="RadioButtonVlessXtlsTcp" Content="VLESS+TCP+XTLS(direct)+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonVlessTcpTlsWeb_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" ></RadioButton>
<TextBlock Text="{DynamicResource TextBlockVlessXtlsTcpExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,0,5,0" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonVlessTcpTlsWeb" Content="VLESS+TCP+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Checked="RadioButtonVlessTcpTlsWeb_Checked" ></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayVlessTcpTlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" Margin="0,0,5,0" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonVlessWebSocketTlsWeb" Content="VLESS+WebSocket+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonWebSocketTLS2Web_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="{DynamicResource TextBlockVlessWebSocketTlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Margin="0,0,8,0" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonVlessHttp2Web" Content="VLESS+http2+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="4" Checked="RadioButtonWebSocketTLS2Web_Checked" VerticalAlignment="Center" HorizontalAlignment="Left"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockVlessHttp2WebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" Margin="0,0,5,0" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayTcpProtocol}" Width="110" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="1.3*"></RowDefinition>
<RowDefinition Height="1.7*"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonTCP" Content="TCP" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonTCP_Checked" VerticalAlignment="Center" HorizontalAlignment="Left"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayTcpExplain}" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonTCPhttp" Content="{DynamicResource RadioButtonV2RayTcpHttp}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonTCPhttp_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" ></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayTcpHttpExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonTCP2TLS" Content="TCP+TLS" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonTCP2TLS_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="{DynamicResource TextBlockV2RayTcpTlsExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<RadioButton x:Name="RadioButtonTcpTLS2SelfSigned" Content="{DynamicResource RadioButtonV2RayTcpTlsSelfSigned}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="4" Checked="RadioButtonTCP2TLSnoDomain_Checked" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="{DynamicResource TextBlockV2RayTcpTlsSelfSignedExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockV2RaySelfSignedShadowrocketExplain}" TextWrapping="Wrap" Grid.Column="4" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center" ></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayWebSocketProtocol}" Width="150" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="1.3*"></RowDefinition>
<RowDefinition Height="1.3*"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonWebSocket" Content="WebSocket" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonTCP_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="{DynamicResource TextBlockV2RayWebSocketExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonWebSocketTLS" Content="WebSocket+TLS" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonHTTP2_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="{DynamicResource TextBlockV2RayWebSocketTlsExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonWebSocketTLS2Web" Content="WebSocket+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonWebSocketTLS2Web_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayWebSocketTlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonWebSocketTLSselfSigned" Content="{DynamicResource RadioButtonV2RayWebSocketTlsSelfSigned}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="4" Checked="RadioButtonWebSocketTLSselfSigned_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayWebSocketTlsSelfSignedExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockV2RaySelfSignedShadowrocketExplain}" TextWrapping="Wrap" Grid.Column="4" Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center" ></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayHttp2Protocol}" Width="110" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="1.8*"></RowDefinition>
<RowDefinition Height="1.5*"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonHTTP2" Content="HTTP2" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonHTTP2_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayHttp2Explain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonHTTP2Web" Content="HTTP2+TLS+Web" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonWebSocketTLS2Web_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayHttp2TlsWebExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonHTTP2selfSigned" Content="{DynamicResource RadioButtonV2RayHttp2SelfSigned}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonWebSocketTLSselfSigned_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayHttp2SelfSignedExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockV2RaySelfSignedShadowrocketExplain}" TextWrapping="Wrap" Grid.Column="4" Grid.Row="3" ></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayMkcpProtocol}" Width="110" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<RadioButton x:Name="RadioButtonVMESSmKCP" Content="VMESS" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></RadioButton>
<RadioButton x:Name="RadioButtonVLESSmKCP" Content="VLESS" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></RadioButton>
</Grid>
<RadioButton x:Name="RadioButtonMkcpNone" Content="{DynamicResource RadioButtonV2RayMkcpNone}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpNoneExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2SRTP" Content="mKCP+SRTP" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpSRTPExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButton2mKCPuTP" Content="mKCP+uTP" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpuTPExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2WechatVideo" Content="mKCP+WechatVideo" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="4" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpWeChatExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2DTLS" Content="mKCP+DTLS 1.2" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="5" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpDTLSExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2WireGuard" Content="mKCP+WireGuard" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="6" Checked="RadioButtonMkcp_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayMkcpWireGuardExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="{DynamicResource TabItemHeaderV2RayQuicProtocol}" Width="110" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicShadowrocketExplain}" Foreground="Red" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="5" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuicNone" Content="{DynamicResource RadioButtonV2RayQuicNone}" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="1" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicNoneExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuicSRTP" Content="QUIC+SRTP" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="2" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicSRTPExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuic2uTP" Content="QUIC+uTP" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="3" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicuTPExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuicWechatVideo" Content="QUIC+WechatVideo" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="4" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicWeChatExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuicDTLS" Content="QUIC+DTLS 1.2" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="5" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicDTLSExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<RadioButton x:Name="RadioButtonQuicWireGuard" Content="QUIC+WireGuard" GroupName="TemplateGroup" Grid.Column="0" Grid.Row="6" Checked="RadioButtonQuicNone_Checked" HorizontalAlignment="Left" VerticalAlignment="Center"></RadioButton>
<TextBlock Text="{DynamicResource TextBlockV2RayQuicWireGuardExplain}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
</Grid>
</TabItem>
</TabControl>
</Grid>
</GroupBox>
<GroupBox Header="{DynamicResource GroupBoxHeaderParameterV2Ray}" Grid.Row="3" Grid.RowSpan="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.1*"></ColumnDefinition>
<ColumnDefinition ></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock x:Name="TextBlockServerListenPort" Text="{DynamicResource TextBlockV2RayServerPort}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxServerListenPort" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Margin="3"></TextBox>
<Button x:Name="ButtonServerListenPort" Content="{DynamicResource ButtonV2RayServerPortChange}" Grid.Column="4" Grid.Row="0" Margin="2" Click="ButtonServerListenPort_Click"></Button>
<TextBlock Text="{DynamicResource TextBlockV2RayServerPortExplain}" Grid.Column="5" Grid.ColumnSpan="2" Grid.Row="0" Margin="3"></TextBlock>
<TextBlock x:Name="TextBlockNewUUID" Text="UUID:" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxNewUUID" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" Margin="3"></TextBox>
<Button x:Name="ButtonNewUUID" Content="{DynamicResource ButtonTrojanChangePassword}" Grid.Column="4" Grid.Row="1" Margin="2" Click="ButtonNewUUID_Click"></Button>
<TextBlock Text="{DynamicResource TextBlockV2RayUUIDExplain}" TextWrapping="Wrap" Grid.Column="5" Grid.Row="1" Grid.ColumnSpan="2" Margin="0"></TextBlock>
<TextBlock x:Name="TextBlockQuicUUID" Text="{DynamicResource TextBlockV2RayQuicUUID}" Visibility="Collapsed" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockMkcpSeedUUID" Text="{DynamicResource TextBlockV2RayMkcpSeedUUID}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxQuicAndMkcpSeedUUID" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="3" Margin="3"></TextBox>
<Button x:Name="ButtonQuicAndmKcpSeedUUID" Content="{DynamicResource ButtonTrojanChangePassword}" Grid.Column="4" Grid.Row="2" Margin="2" Click="ButtonQuicAndMkcpSeedUUID_Click"></Button>
<TextBlock x:Name="TextBlockMkcpUUID" Text="{DynamicResource TextBlockV2RayMkcpExplain}" TextWrapping="Wrap" Grid.Column="5" Grid.Row="2" Grid.ColumnSpan="2"></TextBlock>
<TextBlock x:Name="TextBlockPath" Text="{DynamicResource TextBlockV2RayPath}" Visibility="Collapsed" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxPath" Visibility="Collapsed" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" Margin="3"></TextBox>
<Button x:Name="ButtonPath" Content="{DynamicResource ButtonNaiveProxyChangeUser}" Visibility="Collapsed" Grid.Column="4" Grid.Row="3" Margin="2" Click="ButtonPath_Click"></Button>
<TextBlock x:Name="TextBlockPathVlessWs" Text="{DynamicResource TextBlockV2RayVlessWsPath}" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxPathVlessWS" Grid.Column="1" Grid.Row="3" Margin="3"></TextBox>
<TextBlock x:Name="TextBlockPathVmessTcp" Text="{DynamicResource TextBlockV2RayVmessTcpPath}" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxPathVmessTcp" Grid.Column="3" Grid.Row="3" Margin="3"></TextBox>
<TextBlock x:Name="TextBlockPathVmessWs" Text="{DynamicResource TextBlockV2RayVmessWsPath}" Grid.Column="4" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxPathVmessWS" Grid.Column="5" Grid.Row="3" Margin="3"></TextBox>
<Button x:Name="ButtonVlessVmessPath" Content="{DynamicResource ButtonNaiveProxyChangeUser}" Grid.Column="6" Grid.Row="3" Margin="2" Click="ButtonVlessVmessPath_Click"></Button>
<TextBlock x:Name="TextBlockQuicEncryption" Text="{DynamicResource TextBlockQuicEncryption}" Visibility="Collapsed" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<ComboBox x:Name="ComboBoxEncryptionMethodInfo" Visibility="Collapsed" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Height="25" Margin="3,0,0,0" SelectionChanged="ComboBoxEncryptionMethodInfo_SelectionChanged"></ComboBox>
<TextBlock x:Name="TextBlockDomain" Text="{DynamicResource TextBlockV2RayDomain}" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxDomain" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxDomainPrompt}" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="3" Margin="3"></TextBox>
<Button x:Name="ButtonDomain" Content="检测" Visibility="Collapsed" Grid.Column="4" Grid.Row="4" Margin="2" Click="ButtonDomain_Click"></Button>
<TextBlock x:Name="TextBlockTrojanPassword" Text="{DynamicResource TextBlockTrojanPassword}" Grid.Column="5" Grid.Row="4" Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<TextBlock x:Name="TextBlockMaskSites" Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="1" HorizontalAlignment="Right" VerticalAlignment="Center" ></TextBlock>
<TextBox x:Name="TextBoxMaskSites" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxV2RayMaskSitesTag}" ToolTip="{DynamicResource TextBoxV2RayMaskSitesToolTip}" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" Margin="3" ></TextBox>
<Button x:Name="ButtondDecide" Content="{DynamicResource ButtonTrojanGoTemplateOK}" Grid.Column="1" Grid.Row="6" Margin="0" Click="ButtondDecide_Click"></Button>
<Button x:Name="ButtondCancel" Content="{DynamicResource ButtonTrojanGoTemplateCancel}" Grid.Column="3" Grid.Row="6" Margin="0" Click="ButtondCancel_Click"></Button>
<!--<Button x:Name="ButtonTestChecked" Content="测试选中状态" Grid.Column="5" Grid.Row="6" Click="ButtonTestChecked_Click"></Button>-->
</Grid>
</GroupBox>
</Grid>
</Window>

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"log": {},
"api": {},
"dns": {},
"routing": {},
"policy": {},
"inbounds": [],
"outbounds": [],
"transport": {},
"stats": {},
"reverse": {}
}

View File

@ -0,0 +1,18 @@
##domain## {
root * /usr/share/caddy
file_server
tls {
protocols tls1.2 tls1.3
ciphers TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
curves x25519
}
reverse_proxy ##path## http://localhost:10000 {
transport http {
versions h2c 2
}
}
##reverse_Proxy1##
##reverse_Proxy2##
##reverse_Proxy3##
}

View File

@ -0,0 +1,18 @@
##domain## {
root * /usr/share/caddy
file_server
tls {
protocols tls1.2 tls1.3
ciphers TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
curves x25519
}
@xray_websocket {
path ##path##
header Connection *Upgrade*
header Upgrade websocket
}
reverse_proxy @xray_websocket localhost:10000
##reverse_Proxy1##
##reverse_Proxy2##
##reverse_Proxy3##
}

View File

@ -0,0 +1,10 @@
:8800 {
root * /usr/share/caddy
file_server
##reverse_Proxy1##
##reverse_Proxy2##
##reverse_Proxy3##
}
##domain##:80 {
redir https://##domain##{uri}
}

View File

@ -0,0 +1,5 @@
{
"log": {
"loglevel": "warning"
}
}

View File

@ -0,0 +1,3 @@
{
"api": null
}

View File

@ -0,0 +1,3 @@
{
"dns": {}
}

View File

@ -0,0 +1,3 @@
{
"routing": {}
}

View File

@ -0,0 +1,3 @@
{
"policy": {}
}

View File

@ -0,0 +1,22 @@
{
"inbounds": [
{
"protocol": "http",
"port": 1081
},
{
"port": 1080,
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"settings": {
"auth": "noauth"
}
}
]
}

View File

@ -0,0 +1,3 @@
{
"outbounds": []
}

View File

@ -0,0 +1,32 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"httpSettings": {
"path": null,
"host": [
""
]
}
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "h2",
"httpSettings": {
"path": null
},
"security": "tls",
"tlsSettings": {
"allowInsecure": true
}
}
}
]
}

View File

@ -0,0 +1,29 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": null
},
"security": "tls",
"tlsSettings": {
"allowInsecure": true
}
}
}
]
}

View File

@ -0,0 +1,29 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"security": "tls",
"network": "ws",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,29 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"httpSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,34 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true,
"header": {
"type": null
},
"seed": null
}
}
}
]
}

View File

@ -0,0 +1,32 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "quic",
"quicSettings": {
"security": "chacha20-poly1305",
"key": null,
"header": {
"type": null
}
}
}
}
]
}

View File

@ -0,0 +1,29 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"allowInsecure": true
}
}
}
]
}

View File

@ -0,0 +1,26 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls"
}
}
]
}

View File

@ -0,0 +1,25 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp"
}
}
]
}

View File

@ -0,0 +1,56 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"request": {
"version": "1.1",
"method": "GET",
"path": [
"/"
],
"headers": {
"Host": [
"www.cloudflare.com",
"www.amazon.com",
"www.microsoft.com",
"www.intel.com"
],
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
],
"Accept-Encoding": [
"gzip, deflate"
],
"Connection": [
"keep-alive"
],
"Pragma": "no-cache"
}
}
}
}
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"outbounds": [
{
"protocol": "trojan",
"settings": {
"servers": [
{
"address": null,
"port": 443,
"password": null
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": null
}
}
}
]
}

View File

@ -0,0 +1,31 @@
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"httpSettings": {
"path": null,
"host": [
""
]
}
}
}
]
}

View File

@ -0,0 +1,33 @@
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true,
"header": {
"type": null
},
"seed": null
}
}
}
]
}

View File

@ -0,0 +1,25 @@
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls"
}
}
]
}

View File

@ -0,0 +1,26 @@
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"flow": "xtls-rprx-direct",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls"
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,36 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": 443,
"users": [
{
"id": null,
"alterId": 0,
"security": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tcpSettings": {
"header": {
"type": "http",
"request": {
"path": [
""
]
}
}
}
}
}
]
}

View File

@ -0,0 +1,25 @@
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": null,
"port": null,
"users": [
{
"id": null,
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws"
}
}
]
}

View File

@ -0,0 +1,3 @@
{
"transport": {}
}

View File

@ -0,0 +1,3 @@
{
"stats": null
}

View File

@ -0,0 +1,3 @@
{
"reverse": {}
}

View File

@ -0,0 +1,5 @@
{
"log": {
"loglevel": "warning"
}
}

View File

@ -0,0 +1,3 @@
{
"api": null
}

View File

@ -0,0 +1,3 @@
{
"dns": {}
}

View File

@ -0,0 +1,14 @@
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "block"
}
]
}
}

View File

@ -0,0 +1,3 @@
{
"policy": {}
}

View File

@ -0,0 +1,9 @@
{
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

View File

@ -0,0 +1,3 @@
{
"inbounds": []
}

View File

@ -0,0 +1,27 @@
{
"inbounds": [
{
"port": 10000,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "h2",
"security": "none",
"httpSettings": {
"path": null,
"host": [
""
]
}
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"tlsSettings": {
"certificates": [
{}
]
},
"httpSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,23 @@
{
"inbounds": [
{
"port": 10000,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"certificates": [
{}
]
},
"network": "ws",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,31 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
},
"network": "ws",
"wsSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,31 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
},
"httpSettings": {
"path": null
}
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "mkcp",
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true,
"header": {
"type": null
},
"seed": null
}
}
}
]
}

View File

@ -0,0 +1,26 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "quic",
"quicSettings": {
"security": "chacha20-poly1305",
"key": null,
"header": {
"type": null
}
}
}
}
]
}

View File

@ -0,0 +1,25 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"certificates": [
{}
]
},
"network": "tcp"
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
},
"network": "tcp"
}
}
]
}

View File

@ -0,0 +1,44 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-Type": [
"application/octet-stream",
"application/x-msdownload",
"text/html",
"application/x-shockwave-flash"
],
"Transfer-Encoding": [
"chunked"
],
"Connection": [
"keep-alive"
],
"Pragma": "no-cache"
}
}
}
}
}
}
]
}

View File

@ -0,0 +1,16 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
}
}
]
}

View File

@ -0,0 +1,27 @@
{
"inbounds": [
{
"port": 10000,
"listen": "127.0.0.1",
"protocol": "vless",
"settings": {
"clients": [
{
"id": ""
}
],
"decryption": "none"
},
"streamSettings": {
"network": "h2",
"security": "none",
"httpSettings": {
"path": null,
"host": [
""
]
}
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"inbounds": [
{
"port": null,
"protocol": "vless",
"settings": {
"clients": [
{
"id": null
}
],
"decryption": "none"
},
"streamSettings": {
"network": "mkcp",
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true,
"header": {
"type": null
},
"seed": null
}
}
}
]
}

View File

@ -0,0 +1,36 @@
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": null
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 8800
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"alpn": [
"http/1.1"
],
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
}
}
}
]
}

View File

@ -0,0 +1,37 @@
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": null,
"flow": "xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 8800
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"alpn": [
"http/1.1"
],
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
}
}
}
]
}

View File

@ -0,0 +1,145 @@
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": null,
"flow": "xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 1310,
"xver": 1
},
{
"path": "/websocket",
"dest": 1234,
"xver": 1
},
{
"path": "/vmesstcp",
"dest": 2345,
"xver": 1
},
{
"path": "/vmessws",
"dest": 3456,
"xver": 1
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"alpn": [
"http/1.1"
],
"certificates": [
{
"certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt",
"keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key"
}
]
}
}
},
{
"port": 1310,
"listen": "127.0.0.1",
"protocol": "trojan",
"settings": {
"clients": [
{
"password": null
}
],
"fallbacks": [
{
"dest": null
}
]
},
"streamSettings": {
"network": "tcp",
"security": "none",
"tcpSettings": {
"acceptProxyProtocol": true
}
}
},
{
"port": 1234,
"listen": "127.0.0.1",
"protocol": "vless",
"settings": {
"clients": [
{
"id": null
}
],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"acceptProxyProtocol": true,
"path": "/websocket"
}
}
},
{
"port": 2345,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null
}
]
},
"streamSettings": {
"network": "tcp",
"security": "none",
"tcpSettings": {
"acceptProxyProtocol": true,
"header": {
"type": "http",
"request": {
"path": [
"/vmesstcp"
]
}
}
}
}
},
{
"port": 3456,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null
}
]
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"acceptProxyProtocol": true,
"path": "/vmessws"
}
}
}
]
}

View File

@ -0,0 +1,24 @@
{
"inbounds": [
{
"port": 10000,
"listen": "127.0.0.1",
"protocol": "vless",
"settings": {
"clients": [
{
"id": ""
}
],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": ""
}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"inbounds": [
{
"port": null,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": null,
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws"
}
}
]
}

View File

@ -0,0 +1,12 @@
{
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}

View File

@ -0,0 +1,3 @@
{
"transport": {}
}

View File

@ -0,0 +1,3 @@
{
"stats": null
}

View File

@ -0,0 +1,3 @@
{
"reverse": {}
}