mirror of
https://github.com/proxysu/ProxySU.git
synced 2025-02-19 16:03:17 +03:00
增加Trojan over TCP with TLS
This commit is contained in:
parent
5b2cf29e6f
commit
2dcbcd1b16
@ -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.20" Height="675" Width="650">
|
||||
Title="ProxySU - v2.4.21 Beta1" Height="675" Width="650">
|
||||
<!--以下样式参考自:https://yq.aliyun.com/articles/331878
|
||||
https://docs.microsoft.co/en-us/dotnet/desktop-wpf/fundamentals/styles-templates-overview-->
|
||||
<Window.Resources>
|
||||
|
@ -1316,7 +1316,7 @@ namespace ProxySU
|
||||
// SetUpProgressBarProcessing(40);
|
||||
// return true;
|
||||
//}
|
||||
|
||||
|
||||
//生成V2Ray服务端配置 44--46
|
||||
//functionResult = GenerateServerConfiguration(client);
|
||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||
@ -1538,8 +1538,7 @@ namespace ProxySU
|
||||
|
||||
//设置VLESS协议的回落端口,指向Caddy
|
||||
if (String.Equals(ReceiveConfigurationParameters[0], "VlessTcpTlsWeb") == true
|
||||
|| String.Equals(ReceiveConfigurationParameters[0], "VlessXtlsTcp") == true
|
||||
|| String.Equals(ReceiveConfigurationParameters[0], "VlessVmessXtlsTcpWebSocketWeb") == true)
|
||||
|| String.Equals(ReceiveConfigurationParameters[0], "VlessXtlsTcp") == true)
|
||||
{
|
||||
//设置Caddy随机监听的端口
|
||||
randomCaddyListenPort = GetRandomPort();
|
||||
@ -1547,14 +1546,19 @@ namespace ProxySU
|
||||
//指向Caddy监听的随机端口
|
||||
jObjectJson["inbounds"][0]["settings"]["fallbacks"][0]["dest"] = randomCaddyListenPort;
|
||||
}
|
||||
|
||||
//
|
||||
//设置VLESS+VMESS+Trojan+XTLS+TCP+WebSocket+Web协议
|
||||
if (String.Equals(ReceiveConfigurationParameters[0], "VlessVmessXtlsTcpWebSocketWeb") == true)
|
||||
{
|
||||
//设置Caddy随机监听的端口
|
||||
randomCaddyListenPort = GetRandomPort();
|
||||
|
||||
//指向Caddy监听的随机端口
|
||||
jObjectJson["inbounds"][1]["settings"]["fallbacks"][0]["dest"] = randomCaddyListenPort;
|
||||
//设置其他模式的UUID
|
||||
jObjectJson["inbounds"][1]["settings"]["clients"][0]["id"] = ReceiveConfigurationParameters[2];
|
||||
jObjectJson["inbounds"][1]["settings"]["clients"][0]["password"] = ReceiveConfigurationParameters[2];
|
||||
jObjectJson["inbounds"][2]["settings"]["clients"][0]["id"] = ReceiveConfigurationParameters[2];
|
||||
jObjectJson["inbounds"][3]["settings"]["clients"][0]["id"] = ReceiveConfigurationParameters[2];
|
||||
jObjectJson["inbounds"][4]["settings"]["clients"][0]["id"] = ReceiveConfigurationParameters[2];
|
||||
|
||||
//设置Vless回落与分流的Path
|
||||
jObjectJson["inbounds"][0]["settings"]["fallbacks"][1]["path"] = ReceiveConfigurationParameters[3];
|
||||
@ -1939,8 +1943,8 @@ namespace ProxySU
|
||||
{
|
||||
//复合方案所需要的配置文件
|
||||
//VLESS over TCP with XTLS模式
|
||||
string outboundsConfigJsonVlessXtls = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_tcp_xtls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsonVlessXtls))
|
||||
string outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_tcp_xtls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
@ -1961,8 +1965,8 @@ namespace ProxySU
|
||||
}
|
||||
|
||||
//VLESS over TCP with TLS模式
|
||||
string outboundsConfigJsonVlessTcpTls = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_tcp_tls_caddy_cilent_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsonVlessTcpTls))
|
||||
outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_tcp_tls_caddy_cilent_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
@ -1983,8 +1987,8 @@ namespace ProxySU
|
||||
}
|
||||
|
||||
//VLESS over WS with TLS 模式
|
||||
string outboundsConfigJsonVlessWsTls = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_ws_tls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsonVlessWsTls))
|
||||
outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vless_ws_tls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
@ -2006,8 +2010,8 @@ namespace ProxySU
|
||||
}
|
||||
|
||||
//VMess over TCP with TLS模式
|
||||
string outboundsConfigJsonVmessTcpTls = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vmess_tcp_tls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsonVmessTcpTls))
|
||||
outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\vmess_tcp_tls_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
@ -2029,8 +2033,8 @@ namespace ProxySU
|
||||
}
|
||||
|
||||
//VMess over WS with TLS模式
|
||||
string outboundsConfigJsonVmessWsTls = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\WebSocketTLSWeb_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsonVmessWsTls))
|
||||
outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\WebSocketTLSWeb_client_config.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
@ -2051,6 +2055,29 @@ namespace ProxySU
|
||||
}
|
||||
}
|
||||
|
||||
//Trojan over TCP with TLS模式
|
||||
outboundsConfigJsons = $"{pwdir}" + @"TemplateConfg\v2ray\client\06_outbounds\trojan_tcp_tls.json";
|
||||
using (StreamReader readerJson = File.OpenText(outboundsConfigJsons))
|
||||
{
|
||||
JObject jObjectJson = (JObject)JToken.ReadFrom(new JsonTextReader(readerJson));
|
||||
|
||||
//设置客户端的地址/端口/id
|
||||
jObjectJson["outbounds"][0]["settings"]["servers"][0]["address"] = ReceiveConfigurationParameters[4];
|
||||
jObjectJson["outbounds"][0]["settings"]["servers"][0]["port"] = int.Parse(ReceiveConfigurationParameters[1]);
|
||||
jObjectJson["outbounds"][0]["settings"]["servers"][0]["password"] = ReceiveConfigurationParameters[2];
|
||||
jObjectJson["outbounds"][0]["streamSettings"]["tlsSettings"]["serverName"] = ReceiveConfigurationParameters[4];
|
||||
|
||||
clientJson["outbounds"] = jObjectJson["outbounds"];
|
||||
if (!Directory.Exists(@"v2ray_config\trojan_tcp_tls_client_config"))//如果不存在就创建file文件夹
|
||||
{
|
||||
Directory.CreateDirectory(@"v2ray_config\trojan_tcp_tls_client_config");//创建该文件夹
|
||||
}
|
||||
using (StreamWriter sw = new StreamWriter(@"v2ray_config\trojan_tcp_tls_client_config\config.json"))
|
||||
{
|
||||
sw.Write(clientJson.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
SetUpProgressBarProcessing(98);
|
||||
@ -7282,8 +7309,8 @@ namespace ProxySU
|
||||
#region 测试用代码
|
||||
private void Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string host = ClassModel.DisguiseURLprocessing("www.google.com/accout/");
|
||||
MessageBox.Show(host);
|
||||
//string host = ClassModel.DisguiseURLprocessing("www.google.com/accout/");
|
||||
//MessageBox.Show(host);
|
||||
//saveShellScriptFileName = GenerateRandomScriptFileName(GenerateRandomStr(10));
|
||||
//saveShellScriptFileName = "tmp." + saveShellScriptFileName + ".sh";
|
||||
//MessageBox.Show(saveShellScriptFileName);
|
||||
@ -7293,9 +7320,9 @@ namespace ProxySU
|
||||
//string randStr = Convert.ToBase64String(bytes);
|
||||
//randStr = randStr.Replace("+","").Replace("/", "").Replace("=","");
|
||||
//MessageBox.Show(randStr);
|
||||
//proxyType = "TrojanGo";
|
||||
//ResultClientInformation resultClientInformation = new ResultClientInformation();
|
||||
//resultClientInformation.ShowDialog();
|
||||
proxyType = "V2Ray";
|
||||
ResultClientInformation resultClientInformation = new ResultClientInformation();
|
||||
resultClientInformation.ShowDialog();
|
||||
//return;
|
||||
//string pwdir = AppDomain.CurrentDomain.BaseDirectory;
|
||||
//MessageBox.Show(pwdir);
|
||||
|
@ -51,5 +51,5 @@ using System.Windows;
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.4.20.0")]
|
||||
[assembly: AssemblyFileVersion("2.4.20.0")]
|
||||
[assembly: AssemblyVersion("2.4.21.0")]
|
||||
[assembly: AssemblyFileVersion("2.4.21.0")]
|
||||
|
@ -42,32 +42,44 @@
|
||||
|
||||
<TextBlock Text="{DynamicResource TextBlockUserUUID}" Grid.Column="0" Grid.Row="2" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxUUID" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="2" MouseDoubleClick="TextBoxUUID_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock x:Name="TextBlockUUIDextra" Text="{DynamicResource TextBlockV2RayAlterId}" Grid.Column="0" Grid.Row="3" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxUUIDextra" IsReadOnly="False" Grid.Column="1" Grid.Row="3" Margin="2" MouseDoubleClick="TextBoxUUIDextra_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockUUIDextraExplanation" Text="{DynamicResource TextBlockV2RayAlterIdExplain}" TextWrapping="Wrap" Grid.Column="2" Grid.Row="3" VerticalAlignment="Center"></TextBlock>
|
||||
<Grid x:Name="GridNotTrojanParameters" 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="TextBlockUUIDextra" Text="{DynamicResource TextBlockV2RayAlterId}" Grid.Column="0" Grid.Row="0" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxUUIDextra" IsReadOnly="False" Grid.Column="1" Grid.Row="0" Margin="2" MouseDoubleClick="TextBoxUUIDextra_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockEncryption" Text="{DynamicResource TextBlockEncryption}" Grid.Column="0" Grid.Row="1" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxEncryption" IsReadOnly="True" Grid.Column="1" Grid.Row="1" Margin="2" MouseDoubleClick="TextBoxEncryption_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockTransferProtocol" Text="{DynamicResource TextBlockTransferProtocol}" Grid.Column="0" Grid.Row="2" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxTransmission" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="2" MouseDoubleClick="TextBoxTransmission_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockCamouflageType" Text="{DynamicResource TextBlockCamouflageType}" Grid.Column="0" Grid.Row="3" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxCamouflageType" IsReadOnly="True" Grid.Column="1" Grid.Row="3" Margin="2" MouseDoubleClick="TextBoxCamouflageType_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock Text="{DynamicResource TextBlockEncryption}" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxEncryption" IsReadOnly="True" Grid.Column="1" Grid.Row="4" Margin="2" MouseDoubleClick="TextBoxEncryption_MouseDoubleClick"></TextBox>
|
||||
<TextBlock Text="{DynamicResource TextBlockEncryptionIsAuto}" Grid.Column="2" Grid.Row="4" Visibility="Collapsed" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock Text="{DynamicResource TextBlockTransferProtocol}" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxTransmission" IsReadOnly="True" Grid.Column="1" Grid.Row="5" Margin="2" MouseDoubleClick="TextBoxTransmission_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockQuicEncryption" Text="{DynamicResource TextBlockQuicEncryption}" Visibility="Collapsed" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockHost" Text="Host:" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxHostQuicEncryption" IsReadOnly="True" Grid.Column="1" Grid.Row="4" Margin="2" MouseDoubleClick="TextBoxHostQuicEncryption_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock Text="{DynamicResource TextBlockCamouflageType}" Grid.Column="0" Grid.Row="6" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxCamouflageType" IsReadOnly="True" Grid.Column="1" Grid.Row="6" Margin="2" MouseDoubleClick="TextBoxCamouflageType_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock x:Name="TextBlockQuicEncryption" Text="{DynamicResource TextBlockQuicEncryption}" Visibility="Collapsed" Grid.Column="0" Grid.Row="7" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockHost" Text="Host:" Grid.Column="0" Grid.Row="7" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxHostQuicEncryption" IsReadOnly="True" Grid.Column="1" Grid.Row="7" Margin="2" MouseDoubleClick="TextBoxHostQuicEncryption_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlockPath" Text="{DynamicResource TextBlockClientPath}" Visibility="Visible" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockMkcpSeed" Text="{DynamicResource TextBlockClientMkcpSeed}" Visibility="Collapsed" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockQuicKey" Text="{DynamicResource TextBlockClientQuicKey}" Visibility="Collapsed" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxQuicKeyMkcpSeedPath" IsReadOnly="True" Grid.Column="1" Grid.Row="5" Margin="2" MouseDoubleClick="TextBoxQuicKeyMkcpSeedPath_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock x:Name="TextBlockPath" Text="{DynamicResource TextBlockClientPath}" Visibility="Visible" Grid.Column="0" Grid.Row="8" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockMkcpSeed" Text="{DynamicResource TextBlockClientMkcpSeed}" Visibility="Collapsed" Grid.Column="0" Grid.Row="8" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBlock x:Name="TextBlockQuicKey" Text="{DynamicResource TextBlockClientQuicKey}" Visibility="Collapsed" Grid.Column="0" Grid.Row="8" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxQuicKeyMkcpSeedPath" IsReadOnly="True" Grid.Column="1" Grid.Row="8" Margin="2" MouseDoubleClick="TextBoxQuicKeyMkcpSeedPath_MouseDoubleClick"></TextBox>
|
||||
|
||||
<TextBlock x:Name="TextBlocTLSonOrNo" Text="{DynamicResource TextBlockIsOrNotTLS}" Grid.Column="0" Grid.Row="9" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxTLS" IsReadOnly="True" Grid.Column="1" Grid.Row="9" Margin="2" MouseDoubleClick="TextBoxTLS_MouseDoubleClick"></TextBox>
|
||||
<TextBlock x:Name="TextBlocTLSonOrNo" Text="{DynamicResource TextBlockIsOrNotTLS}" Grid.Column="0" Grid.Row="6" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
|
||||
<TextBox x:Name="TextBoxTLS" IsReadOnly="True" Grid.Column="1" Grid.Row="6" Margin="2" MouseDoubleClick="TextBoxTLS_MouseDoubleClick"></TextBox>
|
||||
|
||||
</Grid>
|
||||
<TextBlock x:Name="TextBlockUUIDextraExplanation" 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="GroupBoxSelectVlessVmessXtlsTcpWs" Grid.Column="2" Grid.Row="5" Grid.RowSpan="6" Margin="10,0,2,0">
|
||||
<Grid>
|
||||
@ -81,12 +93,14 @@
|
||||
<RowDefinition></RowDefinition>
|
||||
<RowDefinition></RowDefinition>
|
||||
<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="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>
|
||||
<RadioButton x:Name="RadioButtonVmessWsTls" Content="VMess over WS with TLS" Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Checked="RadioButtonVmessWsTls_Checked"></RadioButton>
|
||||
<RadioButton x:Name="RadioButtonTrojanTcpTls" Content="Trojan over TCP with TLS" Grid.Column="1" Grid.Row="5" VerticalAlignment="Center" Checked="RadioButtonTrojanTcpTls_Checked" ></RadioButton>
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
@ -56,7 +56,7 @@ namespace ProxySU
|
||||
TextBoxHostAddress.Text = MainWindow.ReceiveConfigurationParameters[4];
|
||||
//主机端口
|
||||
TextBoxPort.Text = MainWindow.ReceiveConfigurationParameters[1];
|
||||
//用户ID(uuid)
|
||||
//用户ID(uuid)/Trojan密码
|
||||
TextBoxUUID.Text = MainWindow.ReceiveConfigurationParameters[2];
|
||||
//额外ID
|
||||
TextBoxUUIDextra.Text = "0";
|
||||
@ -79,6 +79,8 @@ namespace ProxySU
|
||||
|
||||
//初始化时,隐藏多方案客户端选择面板
|
||||
GroupBoxSelectVlessVmessXtlsTcpWs.Visibility = Visibility.Collapsed;
|
||||
//显示非Trojan的所有参数
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
|
||||
if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "VlessVmessXtlsTcpWebSocketWeb") == false)
|
||||
{
|
||||
@ -343,6 +345,7 @@ namespace ProxySU
|
||||
}
|
||||
else
|
||||
{
|
||||
//显示多方案客户端选择面板
|
||||
GroupBoxSelectVlessVmessXtlsTcpWs.Visibility = Visibility.Visible;
|
||||
|
||||
string proxyfolder = CheckDir("v2ray_config");
|
||||
@ -363,6 +366,7 @@ namespace ProxySU
|
||||
V2raySetVmessWsTls();
|
||||
GenerateV2rayVmessWsTlsShareQRcodeAndBase64Url();
|
||||
|
||||
GenerateV2rayTrojanShareQRcodeAndBase64Url();
|
||||
RadioButtonVlessTcpXtls.IsChecked = true;
|
||||
}
|
||||
|
||||
@ -688,6 +692,7 @@ namespace ProxySU
|
||||
//设置VLESS over TCP with XTLS
|
||||
private void V2raySetVlessTcpXtls()
|
||||
{
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
TextBlockVmessOrVless.Text = Application.Current.FindResource("TabItemHeaderV2RayVlessProtocol").ToString();
|
||||
TextBlockVmessOrVless.Visibility = Visibility.Visible;
|
||||
//隐藏下面的二维码显示
|
||||
@ -709,6 +714,7 @@ namespace ProxySU
|
||||
//设置VLESS over TCP with TLS
|
||||
private void V2raySetVlessTcpTls()
|
||||
{
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
TextBlockVmessOrVless.Text = Application.Current.FindResource("TabItemHeaderV2RayVlessProtocol").ToString();
|
||||
TextBlockVmessOrVless.Visibility = Visibility.Visible;
|
||||
//隐藏下面的二维码显示
|
||||
@ -729,6 +735,7 @@ namespace ProxySU
|
||||
//设置VLESS over WS with TLS
|
||||
private void V2raySetVlessWsTls()
|
||||
{
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
TextBlockVmessOrVless.Text = Application.Current.FindResource("TabItemHeaderV2RayVlessProtocol").ToString();
|
||||
TextBlockVmessOrVless.Visibility = Visibility.Visible;
|
||||
//隐藏下面的二维码显示
|
||||
@ -750,6 +757,7 @@ namespace ProxySU
|
||||
//设置VMess over TCP with TLS
|
||||
private void V2raySetVmessTcpTls()
|
||||
{
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
TextBoxEncryption.Text = "none";
|
||||
TextBoxTransmission.Text = "tcp";
|
||||
TextBoxCamouflageType.Text = "http";
|
||||
@ -769,6 +777,7 @@ namespace ProxySU
|
||||
//设置VMess over WS with TLS
|
||||
private void V2raySetVmessWsTls()
|
||||
{
|
||||
GridNotTrojanParameters.Visibility = Visibility.Visible;
|
||||
TextBoxEncryption.Text = "none";
|
||||
TextBoxTransmission.Text = "ws";
|
||||
TextBoxCamouflageType.Text = "none";
|
||||
@ -782,6 +791,15 @@ namespace ProxySU
|
||||
TextBlockVmessOrVless.Visibility = Visibility.Collapsed;
|
||||
ShowGroupBoxClientQRandURL();
|
||||
}
|
||||
|
||||
//设置Trojan over TCP with TLS
|
||||
private void V2raySetTrojanTcpTls()
|
||||
{
|
||||
//隐藏所有不是Trojan的参数
|
||||
GridNotTrojanParameters.Visibility = Visibility.Collapsed;
|
||||
//显示下面的二维码与分享链接
|
||||
ShowGroupBoxClientQRandURL();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 界面控制相关
|
||||
@ -842,6 +860,44 @@ namespace ProxySU
|
||||
|
||||
}
|
||||
|
||||
//显示加密方式
|
||||
private void ShowEncryption()
|
||||
{
|
||||
TextBlockEncryption.Visibility = Visibility.Visible;
|
||||
TextBoxEncryption.Visibility = Visibility.Visible;
|
||||
}
|
||||
//隐藏加密方式
|
||||
private void HideEncryption()
|
||||
{
|
||||
TextBlockEncryption.Visibility = Visibility.Collapsed;
|
||||
TextBoxEncryption.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
//显示传输协议
|
||||
private void ShowTransferProtocol()
|
||||
{
|
||||
TextBlockTransferProtocol.Visibility = Visibility.Visible;
|
||||
TextBoxTransmission.Visibility = Visibility.Visible;
|
||||
}
|
||||
//隐藏传输协议
|
||||
private void HideTransferProtocol()
|
||||
{
|
||||
TextBlockTransferProtocol.Visibility = Visibility.Collapsed;
|
||||
TextBoxTransmission.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
//显示伪装类型
|
||||
private void ShowTextBlockCamouflageType()
|
||||
{
|
||||
TextBlockCamouflageType.Visibility = Visibility.Visible;
|
||||
TextBoxCamouflageType.Visibility = Visibility.Visible;
|
||||
}
|
||||
//隐藏伪装类型
|
||||
private void HideTextBlockCamouflageType()
|
||||
{
|
||||
TextBlockCamouflageType.Visibility = Visibility.Collapsed;
|
||||
TextBoxCamouflageType.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
//显示二维码与链接分享
|
||||
private void ShowGroupBoxClientQRandURL()
|
||||
{
|
||||
@ -878,6 +934,11 @@ namespace ProxySU
|
||||
{
|
||||
V2raySetVmessWsTls();
|
||||
}
|
||||
|
||||
private void RadioButtonTrojanTcpTls_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
V2raySetTrojanTcpTls();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 复制参数到剪贴板中
|
||||
@ -1730,48 +1791,6 @@ namespace ProxySU
|
||||
using (StreamWriter sw = new StreamWriter($"{configSavePath}\\readme.txt"))
|
||||
{
|
||||
ReadmeTxtWriteGenerate(sw);
|
||||
//sw.WriteLine("config.json");
|
||||
////****** "此文件为v2ray官方程序所使用的客户端配置文件,配置为全局模式,socks5地址:127.0.0.1:1080,http代理地址:127.0.0.1:1081" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine01").ToString());
|
||||
|
||||
////****** "v2ray官方网站:https://www.v2ray.com/" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine02").ToString());
|
||||
|
||||
////****** "v2ray官方程序下载地址:https://github.com/v2ray/v2ray-core/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine03").ToString());
|
||||
|
||||
////****** "下载相应版本,Windows选择v2ray-windows-64.zip或者v2ray-windows-32.zip,解压后提取v2ctl.exe和v2ray.exe。与config.json放在同一目录,运行v2ray.exe即可。" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine04").ToString());
|
||||
|
||||
//sw.WriteLine("-----------------------------------------");
|
||||
//sw.WriteLine("QR.bmp");
|
||||
|
||||
////******"此文件为v2rayN、Qv2ray、v2rayNG(Android)、Shadowrocket(ios)扫码导入节点" * *****
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine05").ToString());
|
||||
|
||||
////****** "v2rayN下载网址:https://github.com/2dust/v2rayN/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine06").ToString());
|
||||
|
||||
////****** "Qv2ray:https://github.com/Qv2ray/Qv2ray/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine07").ToString());
|
||||
|
||||
////****** "v2rayNG(Android)下载网址:https://github.com/2dust/v2rayNG/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine08").ToString());
|
||||
|
||||
////****** "v2rayNG(Android)在Google Play下载网址:https://play.google.com/store/apps/details?id=com.v2ray.ang" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine09").ToString());
|
||||
|
||||
////****** "Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine10").ToString());
|
||||
|
||||
//sw.WriteLine("-----------------------------------------");
|
||||
//sw.WriteLine("url.txt");
|
||||
|
||||
////******"此文件为v2rayN、Qv2ray、v2rayNG(Android)、Shadowrocket(ios)复制粘贴导入节点的vmess网址" * *****
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine11").ToString());
|
||||
|
||||
////写入通用配置参数--
|
||||
//TxtWriteGeneralParameters(sw);
|
||||
|
||||
}
|
||||
}
|
||||
@ -1858,50 +1877,100 @@ namespace ProxySU
|
||||
using (StreamWriter sw = new StreamWriter($"{configSavePath}\\readme.txt"))
|
||||
{
|
||||
ReadmeTxtWriteGenerate(sw);
|
||||
//sw.WriteLine("config.json");
|
||||
////****** "此文件为v2ray官方程序所使用的客户端配置文件,配置为全局模式,socks5地址:127.0.0.1:1080,http代理地址:127.0.0.1:1081" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine01").ToString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
////****** "v2ray官方网站:https://www.v2ray.com/" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine02").ToString());
|
||||
//生成Trojan over TCP with TLS的配置保存
|
||||
private void GenerateV2rayTrojanShareQRcodeAndBase64Url()
|
||||
{
|
||||
//创建保存目录
|
||||
string plainSavePath = @"trojan_tcp_tls_client_config";
|
||||
string configSavePath = CheckDir($"{configDomainSavePath}\\{plainSavePath}");
|
||||
|
||||
////****** "v2ray官方程序下载地址:https://github.com/v2ray/v2ray-core/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine03").ToString());
|
||||
string trojanUrl = $"trojan://{TextBoxUUID.Text}@{TextBoxHostAddress.Text}:{TextBoxPort.Text}#{TextBoxHostAddress.Text}";
|
||||
|
||||
////****** "下载相应版本,Windows选择v2ray-windows-64.zip或者v2ray-windows-32.zip,解压后提取v2ctl.exe和v2ray.exe。与config.json放在同一目录,运行v2ray.exe即可。" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine04").ToString());
|
||||
|
||||
//sw.WriteLine("-----------------------------------------");
|
||||
//sw.WriteLine("QR.bmp");
|
||||
|
||||
////****** "此文件为v2rayN、Qv2ray、v2rayNG(Android)、Shadowrocket(ios)扫码导入节点" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine05").ToString());
|
||||
|
||||
////****** "v2rayN下载网址:https://github.com/2dust/v2rayN/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine06").ToString());
|
||||
|
||||
////****** "Qv2ray:https://github.com/Qv2ray/Qv2ray/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine07").ToString());
|
||||
|
||||
////****** "v2rayNG(Android)下载网址:https://github.com/2dust/v2rayNG/releases" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine08").ToString());
|
||||
|
||||
////****** "v2rayNG(Android)在Google Play下载网址:https://play.google.com/store/apps/details?id=com.v2ray.ang" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine09").ToString());
|
||||
|
||||
////****** "Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine10").ToString());
|
||||
|
||||
//sw.WriteLine("-----------------------------------------");
|
||||
//sw.WriteLine("url.txt");
|
||||
|
||||
////****** "此文件为v2rayN、Qv2ray、v2rayNG(Android)、Shadowrocket(ios)复制粘贴导入节点的vmess网址" ******
|
||||
//sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine11").ToString());
|
||||
|
||||
////写入通用配置参数--
|
||||
//TxtWriteGeneralParameters(sw);
|
||||
TextBoxURL.Text = trojanUrl;
|
||||
using (StreamWriter sw = new StreamWriter($"{configSavePath}\\url.txt"))
|
||||
{
|
||||
sw.WriteLine(trojanUrl);
|
||||
|
||||
}
|
||||
ImageShareQRcode.Source = CreateQRCode(trojanUrl, $"{configSavePath}\\QR.bmp");
|
||||
|
||||
//移动官方程序配置文件到相应目录
|
||||
if (File.Exists($"v2ray_config\\{plainSavePath}\\config.json"))
|
||||
{
|
||||
File.Move($"v2ray_config\\{plainSavePath}\\config.json", $"{configSavePath}\\config.json");
|
||||
Directory.Delete($"v2ray_config\\{plainSavePath}");
|
||||
}
|
||||
|
||||
using (StreamWriter sw = new StreamWriter($"{configSavePath}\\readme.txt"))
|
||||
{
|
||||
//ReadmeTxtWriteGenerate(sw);
|
||||
sw.WriteLine("config.json");
|
||||
//****** "此文件为v2ray官方程序所使用的客户端配置文件,配置为全局模式,socks5地址:127.0.0.1:1080,http代理地址:127.0.0.1:1081" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine01").ToString());
|
||||
|
||||
//****** "v2ray官方网站:https://www.v2ray.com/" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine02").ToString());
|
||||
|
||||
//****** "v2ray官方程序下载地址:https://github.com/v2ray/v2ray-core/releases" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine03").ToString());
|
||||
|
||||
//****** "下载相应版本,Windows选择v2ray-windows-64.zip或者v2ray-windows-32.zip,解压后提取v2ctl.exe和v2ray.exe。与config.json放在同一目录,运行v2ray.exe即可。" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine04").ToString());
|
||||
|
||||
sw.WriteLine("-----------------------------------------");
|
||||
sw.WriteLine("QR.bmp");
|
||||
|
||||
//****** "此文件为v2rayN(windows)、Qv2ray(windows)、v2rayNG(Android)、Shadowrocket(ios)扫码导入节点" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine05").ToString());
|
||||
|
||||
//****** "v2rayN下载网址:https://github.com/2dust/v2rayN/releases" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine06").ToString());
|
||||
|
||||
//****** "Qv2ray下载网址:https://github.com/Qv2ray/Qv2ray/releases" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine07").ToString());
|
||||
|
||||
//****** "v2rayNG(Android)下载网址:https://github.com/2dust/v2rayNG/releases" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine08").ToString());
|
||||
|
||||
//****** "v2rayNG(Android)在Google Play下载网址:https://play.google.com/store/apps/details?id=com.v2ray.ang" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine09").ToString());
|
||||
|
||||
//****** "Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine10").ToString());
|
||||
|
||||
sw.WriteLine("-----------------------------------------");
|
||||
sw.WriteLine("url.txt");
|
||||
|
||||
//****** "此文件为v2rayN、Qv2ray、v2rayNG(Android)、Shadowrocket(ios)复制粘贴导入节点的vmess网址" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine11").ToString());
|
||||
|
||||
sw.WriteLine("-----------------------------------------\n");
|
||||
|
||||
string strApplicat = "";
|
||||
string strParam = "";
|
||||
int strLenth = 20;
|
||||
//****** "服务器通用连接配置参数:" ******
|
||||
sw.WriteLine(Application.Current.FindResource("readmeTxtV2RayExplainLine12").ToString());
|
||||
sw.WriteLine("");
|
||||
|
||||
strApplicat = "TextBlockServerAddress";
|
||||
strParam = TextBoxHostAddress.Text;
|
||||
sw.WriteLine(AlignmentStrFunc(Application.Current.FindResource($"{strApplicat}").ToString(), strLenth) + strParam);
|
||||
|
||||
strApplicat = "TextBlockServerPort";
|
||||
strParam = TextBoxPort.Text;
|
||||
sw.WriteLine(AlignmentStrFunc(Application.Current.FindResource($"{strApplicat}").ToString(), strLenth) + strParam);
|
||||
|
||||
strApplicat = "TextBlockUserUUID";
|
||||
strParam = TextBoxUUID.Text;
|
||||
sw.WriteLine(AlignmentStrFunc(Application.Current.FindResource($"{strApplicat}").ToString(), strLenth) + strParam);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//写入VMESS的readme.txt文件
|
||||
@ -3155,8 +3224,6 @@ namespace ProxySU
|
||||
return spaceString + strTemp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -173,6 +173,7 @@
|
||||
<sys:String x:Key="TextBlockV2RayVmessWsPath">VMESS ws path:</sys:String>
|
||||
<sys:String x:Key="TextBlockQuicEncryption">QUIC Encryption:</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayDomain">Domain name:</sys:String>
|
||||
<sys:String x:Key="TextBlockTrojanPassword">Trojan password is the same as V2ray UUID.</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayMaskSites">Mask a website:</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesTag">Set this option to increase proxy concealment (can be empty)</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesToolTip">Enter only the domain name, excluding "http" and "/" etc.</sys:String>
|
||||
@ -225,7 +226,7 @@
|
||||
<sys:String x:Key="GroupBoxHeaderClientParameter">Client configuration parameters</sys:String>
|
||||
<sys:String x:Key="TextBlockServerAddress">Server address:</sys:String>
|
||||
<sys:String x:Key="TextBlockServerPort">Port:</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">User ID(uuid):</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">User ID(uuid)/Password:</sys:String>
|
||||
<sys:String x:Key="ButtonCopyV2RayUUIDtoClip">Copy</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayUUIDcopyedToClip">Copied to the clipboard!</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayEmptyToClip">Empty content!</sys:String>
|
||||
|
@ -176,6 +176,7 @@
|
||||
|
||||
<sys:String x:Key="TextBlockQuicEncryption">QUIC加密方式:</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayDomain">域名:</sys:String>
|
||||
<sys:String x:Key="TextBlockTrojanPassword">Trojan密码与V2ray的UUID相同。</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayMaskSites">伪装网站:</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesTag">设置此项可增加代理的隐蔽(可为空)</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesToolTip">仅仅输入域名,不包括"http"及"/"等</sys:String>
|
||||
@ -228,7 +229,7 @@
|
||||
<sys:String x:Key="GroupBoxHeaderClientParameter">客户端配置参数</sys:String>
|
||||
<sys:String x:Key="TextBlockServerAddress">服务器地址(address):</sys:String>
|
||||
<sys:String x:Key="TextBlockServerPort">端口(port):</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">用户ID(uuid):</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">用户ID(uuid)/密码:</sys:String>
|
||||
<sys:String x:Key="ButtonCopyV2RayUUIDtoClip">复制</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayUUIDcopyedToClip">已复制到剪贴板中!</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayEmptyToClip">空内容!</sys:String>
|
||||
|
@ -173,6 +173,7 @@
|
||||
<sys:String x:Key="TextBlockV2RayVmessWsPath">VMESS ws路徑:</sys:String>
|
||||
<sys:String x:Key="TextBlockQuicEncryption">QUIC加密方式:</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayDomain">域名:</sys:String>
|
||||
<sys:String x:Key="TextBlockTrojanPassword">Trojan密碼與V2ray的UUID相同。</sys:String>
|
||||
<sys:String x:Key="TextBlockV2RayMaskSites">偽裝網站:</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesTag">設置此項可增加代理的隱蔽(可為空)</sys:String>
|
||||
<sys:String x:Key="TextBoxV2RayMaskSitesToolTip">僅僅輸入域名,不包括"http"及"/"等</sys:String>
|
||||
@ -225,7 +226,7 @@
|
||||
<sys:String x:Key="GroupBoxHeaderClientParameter">客戶端配置參數</sys:String>
|
||||
<sys:String x:Key="TextBlockServerAddress">服務器地址(address):</sys:String>
|
||||
<sys:String x:Key="TextBlockServerPort">端口(port):</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">用戶ID(uuid):</sys:String>
|
||||
<sys:String x:Key="TextBlockUserUUID">用戶ID(uuid)/密碼:</sys:String>
|
||||
<sys:String x:Key="ButtonCopyV2RayUUIDtoClip">複製</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayUUIDcopyedToClip">已復製到剪貼板中!</sys:String>
|
||||
<sys:String x:Key="MessageBoxShow_V2RayEmptyToClip">空內容!</sys:String>
|
||||
|
@ -91,15 +91,18 @@
|
||||
<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" 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" Grid.Column="1" Grid.Row="4" 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+XTLS+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+XTLS+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>
|
||||
@ -372,6 +375,7 @@
|
||||
<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>
|
||||
|
||||
|
@ -203,7 +203,7 @@ namespace ProxySU
|
||||
MainWindow.ReceiveConfigurationParameters[7] = ClassModel.DisguiseURLprocessing(PreTrim(TextBoxMaskSites.Text));
|
||||
}
|
||||
|
||||
//VLESS+VMESS+XTLS+TCP+WebSocket+Web模式被选中
|
||||
//VLESS+VMESS+Trojan+XTLS+TCP+WebSocket+Web模式被选中
|
||||
else if (RadioButtonVlessVmessXtlsTcpWebSocketHot.IsChecked == true)
|
||||
{
|
||||
domainNotEmpty = ClassModel.TestDomainIsEmpty(TextBoxDomain.Text);
|
||||
@ -967,6 +967,7 @@ namespace ProxySU
|
||||
TextBlockPathVmessWs.Visibility = Visibility.Collapsed;
|
||||
TextBoxPathVmessWS.Visibility = Visibility.Collapsed;
|
||||
ButtonVlessVmessPath.Visibility = Visibility.Collapsed;
|
||||
TextBlockTrojanPassword.Visibility = Visibility.Collapsed;
|
||||
|
||||
}
|
||||
//显示VLESS VMESS复合方案路径
|
||||
@ -986,6 +987,7 @@ namespace ProxySU
|
||||
TextBoxPathVmessWS.Text = "/vmessws";
|
||||
|
||||
ButtonVlessVmessPath.Visibility = Visibility.Visible;
|
||||
TextBlockTrojanPassword.Visibility = Visibility.Visible;
|
||||
}
|
||||
//隐藏域名相关项
|
||||
private void HideDomain()
|
||||
|
Binary file not shown.
23
TemplateConfg/v2ray/client/06_outbounds/trojan_tcp_tls.json
Normal file
23
TemplateConfg/v2ray/client/06_outbounds/trojan_tcp_tls.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "trojan",
|
||||
"settings": {
|
||||
"servers": [
|
||||
{
|
||||
"address": null,
|
||||
"port": 443,
|
||||
"password": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"security": "tls",
|
||||
"tlsSettings": {
|
||||
"serverName": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -13,7 +13,8 @@
|
||||
"decryption": "none",
|
||||
"fallbacks": [
|
||||
{
|
||||
"dest": null
|
||||
"dest": 1310,
|
||||
"xver": 1
|
||||
},
|
||||
{
|
||||
"path": "/websocket",
|
||||
@ -48,6 +49,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user