1
0
Fork 0
mirror of https://github.com/proxysu/ProxySU.git synced 2025-04-03 22:03:39 +03:00

添加SSR+TLS+Caddy方案

This commit is contained in:
ProxySU 2020-09-08 19:54:18 +08:00
parent 0cb54080a4
commit c42b105fd6
11 changed files with 1662 additions and 85 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.0.4" Height="625" Width="530">
Title="ProxySU - v2.1.0" Height="625" Width="530">
<!--以下样式参考自https://yq.aliyun.com/articles/331878
https://docs.microsoft.com/en-us/dotnet/desktop-wpf/fundamentals/styles-templates-overview-->
<Window.Resources>
@ -126,7 +126,7 @@
<ProgressBar x:Name="ProgressBarSetUpProcessing" Minimum="0" Maximum="100" Value="0" IsIndeterminate="False" Margin="7" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4"></ProgressBar>
<TextBox x:Name="TextBoxMonitorCommandResults" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="4" Grid.RowSpan="5" Margin="30,0,30,10"></TextBox>
<TabControl Grid.Column="0" Grid.Row="9" Grid.ColumnSpan="4" Grid.RowSpan="3">
<TabItem Header="V2Ray" Width="100" Height="30">
<TabItem Header="V2Ray" Width="80" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -185,7 +185,7 @@
<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="100" Height="30">
<TabItem Header="Trojan-Go" Width="80" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -238,7 +238,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="100" Height="30">
<TabItem Header="Trojan" Width="80" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -277,9 +277,9 @@
<TextBlock Text="{DynamicResource TextBlockTrojanHostPassword}" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5"></TextBlock>
<TextBox x:Name="TextBoxTrojanPassword" Grid.Column="1" Grid.Row="2" Margin="3"></TextBox>
<Button x:Name="ButtonTrojanPassword" Content="{DynamicResource ButtonTrojanChangePassword}" Grid.Column="2" Grid.Row="2" Margin="2" Click="ButtonTrojanPassword_Click" ></Button>
<TextBlock Text="伪装网站:" Grid.Column="0" Grid.Row="3" Visibility="Collapsed"></TextBlock>
<TextBox x:Name="TextBoxTrojanSites" Style="{StaticResource TitleText}" Tag="可以增加代理的隐蔽(可为空)" Grid.Column="1" Grid.Row="3" Margin="3" Visibility="Collapsed"></TextBox>
<TextBlock Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="3" Visibility="Collapsed"></TextBlock>
<TextBox x:Name="TextBoxTrojanSites" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxV2RayMaskSitesTag}" Grid.Column="1" Grid.Row="3" Margin="3" Visibility="Collapsed"></TextBox>
</Grid>
</GroupBox>
@ -294,7 +294,7 @@
<Button x:Name="ButtonTrojanCancel" Content="{DynamicResource ButtonTrojanCancel}" Grid.Column="2" Grid.Row="2" Margin="10" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<TabItem x:Name="TabItemNaiveProxy" Header="NaiveProxy" Width="100" Height="30">
<TabItem x:Name="TabItemNaiveProxy" Header="NaiveProxy" Width="80" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
@ -331,8 +331,8 @@
<TextBlock Text="{DynamicResource TextBlockTrojanHostPassword}" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxNaivePassword" Grid.Column="1" Grid.Row="3" Margin="3"></TextBox>
<Button x:Name="ButtonNaivePassword" Content="{DynamicResource ButtonTrojanChangePassword}" Grid.Column="2" Grid.Row="3" Margin="2" Click="ButtonNaivePassword_Click"></Button>
<TextBlock Text="伪装网站:" Grid.Column="0" Grid.Row="4" Visibility="Collapsed"></TextBlock>
<TextBox x:Name="TextBoxNaiveSites" Style="{StaticResource TitleText}" Tag="可以增加代理的隐蔽(可为空)" Grid.Column="1" Grid.Row="4" Margin="3" Visibility="Collapsed"></TextBox>
<TextBlock Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="4" Visibility="Collapsed"></TextBlock>
<TextBox x:Name="TextBoxNaiveSites" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxV2RayMaskSitesTag}" Grid.Column="1" Grid.Row="4" Margin="3" Visibility="Collapsed"></TextBox>
</Grid>
</GroupBox>
@ -343,6 +343,57 @@
<Button x:Name="ButtonNaiveCancel" Content="{DynamicResource ButtonNaiveCancel}" Grid.ColumnSpan="1" Margin="10" Grid.Column="2" Grid.Row="2" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<TabItem Header="SSR" Width="80" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Header="{DynamicResource GroupBoxHeaderParameterTrojan}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" Grid.RowSpan="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="0.4*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockSSRTemplateExplanation}" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockTrojanServerDomain}" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="5"></TextBlock>
<TextBox x:Name="TextBoxSSRHostDomain" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxDomainPrompt}" Grid.Column="1" Grid.Row="1" Margin="3"></TextBox>
<TextBlock Text="{DynamicResource TextBlockTrojanPort}" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
<!--<TextBlock Text="用户名:" Grid.Column="0" Grid.Row="2"></TextBlock>
<TextBox x:Name="TextBoxUser" Grid.Column="1" Grid.Row="2" Margin="3"></TextBox>
<Button x:Name="ButtonNaiveUser" Content="随机" Grid.Column="2" Grid.Row="2" Margin="2" Click="ButtonNaiveUser_Click"></Button>-->
<TextBlock Text="{DynamicResource TextBlockTrojanHostPassword}" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5"></TextBlock>
<TextBox x:Name="TextBoxSSRPassword" Grid.Column="1" Grid.Row="2" Margin="3"></TextBox>
<Button x:Name="ButtonSSRPassword" Content="{DynamicResource ButtonTrojanChangePassword}" Grid.Column="2" Grid.Row="2" Margin="2" Click="ButtonSSRPassword_Click" ></Button>
<TextBlock Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="3" Visibility="Collapsed"></TextBlock>
<TextBox x:Name="TextBoxSSRSites" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxV2RayMaskSitesTag}" Grid.Column="1" Grid.Row="3" Margin="3" Visibility="Collapsed"></TextBox>
</Grid>
</GroupBox>
<Button x:Name="ButtonSSRSetUp" Content="{DynamicResource ButtonSSRSetUp}" Grid.Column="0" Grid.Row="2" Margin="10" Click="ButtonSSRSetUp_Click"/>
<!--<Button x:Name="ButtonUpdateTrojan" Content="{DynamicResource ButtonUpdateTrojan}" Grid.Column="1" Grid.Row="2" Margin="10" Click="ButtonUpdateTrojan_Click"></Button>-->
<Button x:Name="ButtonSSRCancel" Content="{DynamicResource ButtonTrojanCancel}" Grid.Column="2" Grid.Row="2" Margin="10" Click="Button_canel_Click"></Button>
</Grid>
</TabItem>
<!--<TabItem Header="三合一" Width="100" Height="30" Visibility="Collapsed">
<Grid>
<Grid.ColumnDefinitions>
@ -413,7 +464,7 @@
</Grid>
</TabItem>-->
<TabItem Header="{DynamicResource TabItemHeaderSysTools}" Width="100" Height="30">
<TabItem Header="{DynamicResource TabItemHeaderSysTools}" Width="80" 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.0.4.0")]
[assembly: AssemblyFileVersion("2.0.4.0")]
[assembly: AssemblyVersion("2.1.0.0")]
[assembly: AssemblyFileVersion("2.1.0.0")]

View file

@ -12,8 +12,8 @@
<RowDefinition Height="0.8*"></RowDefinition>
<RowDefinition Height="0.12*"></RowDefinition>
</Grid.RowDefinitions>
<!-- 客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxV2rayClient" Visibility="Visible" Grid.Row="0">
<!-- V2Ray客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxV2rayClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.6*"></ColumnDefinition>
@ -32,7 +32,6 @@
<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="TextBoxHostAddress" IsReadOnly="True" Grid.Column="1" Grid.Row="0" Margin="2"></TextBox>
@ -72,6 +71,7 @@
</Grid>
</GroupBox>
<!-- Trojan-Go客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxTrojanGoClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
@ -86,7 +86,6 @@
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockServerAddress}" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center" ></TextBlock>
<TextBox x:Name="TextBoxTrojanGoServerHost" Grid.Column="1" Grid.Row="1" Margin="4"></TextBox>
@ -100,9 +99,9 @@
<TextBlock x:Name="TextBlockTrojanGoWebSocketPath" Text="{DynamicResource TextBlockTrojanGoWebSocketPath}" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxTrojanGoWSPath" Grid.Column="1" Grid.Row="4" Margin="4"></TextBox>
<TextBlock x:Name="TextBlockTrojanGoCaption" Grid.Column="2" Grid.Row="4"></TextBlock>
</Grid>
</GroupBox>
<!-- Trojan客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxTrojanClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
@ -117,8 +116,6 @@
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockServerAddress}" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center" ></TextBlock>
<TextBox x:Name="TextBoxTrojanServerHost" Grid.Column="1" Grid.Row="1" Margin="4"></TextBox>
@ -129,10 +126,9 @@
<TextBlock Text="{DynamicResource TextBlockHostPassword}" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxTrojanServerPassword" Grid.Column="1" Grid.Row="3" Margin="4"></TextBox>
<TextBlock Grid.Column="2" Grid.Row="3"></TextBlock>
</Grid>
</GroupBox>
<!-- NaiveProxy客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxNaiveProxyClient" Visibility="Collapsed" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
@ -147,8 +143,6 @@
<RowDefinition Height="30"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockServerAddress}" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxNaiveServerHost" Grid.Column="1" Grid.Row="1" Margin="4"></TextBox>
@ -160,6 +154,61 @@
<TextBox x:Name="TextBoxNaivePassword" Grid.Column="1" Grid.Row="3" Margin="4"></TextBox>
<TextBlock Grid.Column="2" Grid.Row="3"></TextBlock>
<!--<Button x:Name="ButtonOpenDir" Content="确定" Grid.Column="1" Grid.Row="4" Margin="40,3,40,3" Click="ButtonOpenDir_Click"></Button>-->
</Grid>
</GroupBox>
<!-- SSR+TLS+Caddy客户端配置参数 -->
<GroupBox Header="{DynamicResource GroupBoxHeaderClientParameter}" x:Name="GroupBoxSSRClient" Visibility="Visible" Grid.Row="0">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.6*"></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>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{DynamicResource TextBlockServerAddress}" Grid.Column="0" Grid.Row="0" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRHostAddress" IsReadOnly="True" Grid.Column="1" Grid.Row="0" Margin="2"></TextBox>
<TextBlock Text="" Grid.Column="2" Grid.Row="0"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockServerPort}" Grid.Column="0" Grid.Row="1" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRPort" IsReadOnly="True" Grid.Column="1" Grid.Row="1" Margin="2"></TextBox>
<TextBlock Text="" Grid.Column="2" Grid.Row="1"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockTrojanGoPassword}" Grid.Column="0" Grid.Row="2" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRUUID" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="2"></TextBox>
<TextBlock Text="" Grid.Column="2" Grid.Row="2"></TextBlock>
<!--<TextBlock x:Name="TextBlockSSRUUIDextra" Text="{DynamicResource TextBlockV2RayAlterId}" Grid.Column="0" Grid.Row="3" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRUUIDextra" IsReadOnly="False" Grid.Column="1" Grid.Row="3" Margin="2"></TextBox>
<TextBlock x:Name="TextBlockSSRUUIDextraExplanation" Text="{DynamicResource TextBlockV2RayAlterIdExplain}" TextWrapping="Wrap" Grid.Column="2" Grid.Row="3"></TextBlock>-->
<TextBlock Text="{DynamicResource TextBlockEncryption}" Grid.Column="0" Grid.Row="3" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSREncryption" IsReadOnly="True" Grid.Column="1" Grid.Row="3" Margin="2"></TextBox>
<!--<TextBlock Text="{DynamicResource TextBlockEncryptionIsAuto}" Grid.Column="2" Grid.Row="3"></TextBlock>-->
<TextBlock Text="{DynamicResource TextBlockTransferProtocol}" Grid.Column="0" Grid.Row="4" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRTransmission" IsReadOnly="True" Grid.Column="1" Grid.Row="4" Margin="2"></TextBox>
<TextBlock Text="" Grid.Column="2" Grid.Row="4"></TextBlock>
<TextBlock Text="{DynamicResource TextBlockCamouflageType}" Grid.Column="0" Grid.Row="5" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRCamouflageType" IsReadOnly="True" Grid.Column="1" Grid.Row="5" Margin="2"></TextBox>
<TextBlock Text="" Grid.Column="2" Grid.Row="5"></TextBlock>
<!--<TextBlock x:Name="TextBlocSSRTLSonOrNo" Text="{DynamicResource TextBlockIsOrNotTLS}" Grid.Column="0" Grid.Row="7" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRTLS" IsReadOnly="True" Grid.Column="1" Grid.Row="7" Margin="2"></TextBox>
<TextBlock x:Name="TextBlocSSRTLSonOrNoExplain" Text="" Grid.Column="2" Grid.Row="7"></TextBlock>
<TextBlock x:Name="TextBlockSSRHost" Text="Host:" Grid.Column="0" Grid.Row="8" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRHost" IsReadOnly="True" Grid.Column="1" Grid.Row="8" Margin="2"></TextBox>
<TextBlock x:Name="TextBlockSSRHostExplain" Text="" Grid.Column="2" Grid.Row="8"></TextBlock>-->
<!--<TextBlock x:Name="TextBlockSSRPath" Text="{DynamicResource TextBlockClientPath}" Grid.Column="0" Grid.Row="9" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRPath" IsReadOnly="True" Grid.Column="1" Grid.Row="9" Margin="2"></TextBox>
<TextBlock x:Name="TextBlockSSRPathExplain" Text="" Grid.Column="2" Grid.Row="9"></TextBlock>
<TextBlock x:Name="TextBlockSSRQuicKey" Text="{DynamicResource TextBlockClientMkcpQuicKey}" Grid.Column="0" Grid.Row="10" Margin="1" HorizontalAlignment="Right" VerticalAlignment="Center"></TextBlock>
<TextBox x:Name="TextBoxSSRQuicKey" IsReadOnly="True" Grid.Column="1" Grid.Row="10" Margin="2"></TextBox>
<TextBlock x:Name="TextBlockSSRQuicKeyExplain" Text="" Grid.Column="2" Grid.Row="10"></TextBlock>-->
</Grid>

View file

@ -38,6 +38,8 @@ namespace ProxySU
GroupBoxTrojanGoClient.Visibility = Visibility.Collapsed;
GroupBoxTrojanClient.Visibility = Visibility.Collapsed;
GroupBoxNaiveProxyClient.Visibility = Visibility.Collapsed;
GroupBoxSSRClient.Visibility = Visibility.Collapsed;
//主机地址
TextBoxHostAddress.Text = MainWindow.ReceiveConfigurationParameters[4];
//主机端口
@ -290,6 +292,7 @@ namespace ProxySU
GroupBoxTrojanGoClient.Visibility = Visibility.Visible;
GroupBoxTrojanClient.Visibility = Visibility.Collapsed;
GroupBoxNaiveProxyClient.Visibility = Visibility.Collapsed;
GroupBoxSSRClient.Visibility = Visibility.Collapsed;
TextBoxTrojanGoWSPath.Visibility = Visibility.Hidden;
TextBlockTrojanGoWebSocketPath.Visibility = Visibility.Hidden;
@ -322,6 +325,7 @@ namespace ProxySU
GroupBoxTrojanGoClient.Visibility = Visibility.Collapsed;
GroupBoxTrojanClient.Visibility = Visibility.Visible;
GroupBoxNaiveProxyClient.Visibility = Visibility.Collapsed;
GroupBoxSSRClient.Visibility = Visibility.Collapsed;
TextBlockQrURLexplain.Text = Application.Current.FindResource("TextBlockQrURLexplainTrojan").ToString();
@ -341,6 +345,7 @@ namespace ProxySU
GroupBoxTrojanGoClient.Visibility = Visibility.Collapsed;
GroupBoxTrojanClient.Visibility = Visibility.Collapsed;
GroupBoxNaiveProxyClient.Visibility = Visibility.Visible;
GroupBoxSSRClient.Visibility = Visibility.Collapsed;
TextBlockQrURLexplain.Text = Application.Current.FindResource("TextBlockQrURLexplainNaiveProxy").ToString();
@ -349,7 +354,33 @@ namespace ProxySU
TextBoxNaivePassword.Text = MainWindow.ReceiveConfigurationParameters[2];
GenerateNaivePrxoyShareQRcodeAndBase64Url();
}
else if (String.Equals(MainWindow.proxyType, "SSR"))
{
GroupBoxV2rayClient.Visibility = Visibility.Collapsed;
GroupBoxTrojanGoClient.Visibility = Visibility.Collapsed;
GroupBoxTrojanClient.Visibility = Visibility.Collapsed;
GroupBoxNaiveProxyClient.Visibility = Visibility.Collapsed;
GroupBoxSSRClient.Visibility = Visibility.Visible;
TextBlockQrURLexplain.Text = Application.Current.FindResource("TextBlockQrURLexplainSSR").ToString();
//主机地址
TextBoxSSRHostAddress.Text = MainWindow.ReceiveConfigurationParameters[4];
//主机端口
TextBoxSSRPort.Text = "443";
//密码uuid
TextBoxSSRUUID.Text = MainWindow.ReceiveConfigurationParameters[2];
//加密方式
TextBoxSSREncryption.Text = "none";
//传输协议
TextBoxSSRTransmission.Text = "auth_chain_a";
//混淆
TextBoxSSRCamouflageType.Text = "tls1.2_ticket_auth";
//CheckDir("ssr_config");
GenerateSSRShareQRcodeAndBase64Url();
}
}
#region
private void HidePath()
@ -395,6 +426,7 @@ namespace ProxySU
}
#endregion
//生成v2rayN客户端导入文件
private void GenerateV2rayShareQRcodeAndBase64Url()
{
@ -708,31 +740,9 @@ namespace ProxySU
sw.WriteLine(Application.Current.FindResource("TextBlockTrojanGoPassword").ToString() + $"{TextBoxTrojanGoServerPassword.Text}");
//sw.WriteLine(Application.Current.FindResource("TextBlockTrojanGoWebSocketPath").ToString() + $"{TextBoxTrojanGoWSPath.Text}");
//sw.WriteLine("config.json");
//sw.WriteLine("此文件为Trojan官方程序所使用的客户端配置文件配置为全局模式socks5地址127.0.0.1:1080");
//sw.WriteLine("Trojan官方网站https://trojan-gfw.github.io/trojan/");
//sw.WriteLine("Trojan官方程序下载地址https://github.com/trojan-gfw/trojan/releases");
//sw.WriteLine("下载相应版本Windows选择Trojan-x.xx-win.zip,解压后提取trojan.exe。与config.json放在同一目录运行trojan.exe即可。");
//sw.WriteLine("-----------------------------------------\n");
//sw.WriteLine("QR.bmp");
//sw.WriteLine("此文件为Trojan-QT5 (windows)、igniterAndroid、Shadowrocket(ios)扫码导入节点");
//sw.WriteLine("Trojan-QT5 (windows)下载网址https://github.com/TheWanderingCoel/Trojan-Qt5/releases");
//sw.WriteLine("igniterAndroid下载网址https://github.com/trojan-gfw/igniter/releases");
//sw.WriteLine("Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。");
//sw.WriteLine("-----------------------------------------\n");
//sw.WriteLine("url.txt");
//sw.WriteLine("此文件为Trojan-QT5 (windows)、igniterAndroid、Shadowrocket(ios)复制粘贴导入节点的网址");
//sw.WriteLine("-----------------------------------------\n");
//sw.WriteLine("服务器通用连接配置参数");
//sw.WriteLine($"地址(address){TextBoxTrojanServerHost.Text}");
//sw.WriteLine($"端口(Port){TextBoxTrojanServerPort.Text}");
//sw.WriteLine($"密钥:{TextBoxTrojanServerPassword.Text}");
}
}
//生成NaiveProxy客户端资料
@ -783,21 +793,8 @@ namespace ProxySU
//sw.WriteLine("下载相应版本Windows选择naiveproxy-x.xx-win.zip,解压后提取naive.exe。与config.json放在同一目录运行naive.exe即可。");
sw.WriteLine(Application.Current.FindResource("readmeTxtNaiveProxyExplainLine04").ToString());
//sw.WriteLine("此文件为NaiveProxy官方程序所使用的客户端配置文件配置为全局模式socks5地址127.0.0.1:1080");
//sw.WriteLine("NaiveProxy官方网站https://github.com/klzgrad/naiveproxy");
//sw.WriteLine("NaiveProxy官方程序下载地址https://github.com/klzgrad/naiveproxy/releases");
//sw.WriteLine("下载相应版本Windows选择naiveproxy-x.xx-win.zip,解压后提取naive.exe。与config.json放在同一目录运行naive.exe即可。");
sw.WriteLine("-----------------------------------------\n");
//sw.WriteLine("其他平台的客户端,暂未发布");
//sw.WriteLine("QR.bmp");
//sw.WriteLine("此文件为Trojan-QT5 (windows)、igniterAndroid、Shadowrocket(ios)扫码导入节点");
//sw.WriteLine("Trojan-QT5 (windows)下载网址https://github.com/TheWanderingCoel/Trojan-Qt5/releases");
//sw.WriteLine("igniterAndroid下载网址https://github.com/trojan-gfw/igniter/releases");
//sw.WriteLine("Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。");
//sw.WriteLine("-----------------------------------------\n");
sw.WriteLine("url.txt");
//sw.WriteLine("此文件为NaiveGUI(windows)复制粘贴导入节点的网址");
@ -824,6 +821,80 @@ namespace ProxySU
}
//生成SSR客户端资料
private void GenerateSSRShareQRcodeAndBase64Url()
{
string saveFileFolderFirst = TextBoxSSRHostAddress.Text;
int num = 1;
saveFileFolder = saveFileFolderFirst;
CheckDir("ssr_config");
while (Directory.Exists(@"ssr_config\" + saveFileFolder))
{
saveFileFolder = saveFileFolderFirst + "_copy_" + num.ToString();
num++;
}
CheckDir(@"ssr_config\" + saveFileFolder);
string ssrUrl = GetSSRLinkForServer();
TextBoxURL.Text = ssrUrl;
using (StreamWriter sw = new StreamWriter($"ssr_config\\{saveFileFolder}\\url.txt"))
{
sw.WriteLine(ssrUrl);
}
CreateQRCode(ssrUrl, "ssr_config");
using (StreamWriter sw = new StreamWriter($"ssr_config\\{saveFileFolder}\\readme.txt"))
{
//sw.WriteLine("-----------------------------------------\n");
sw.WriteLine("QR.bmp");
//***"此文件为ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)扫码导入节点"***
sw.WriteLine(Application.Current.FindResource("readmeTxtSSRExplainLine05").ToString());
//***"ShadowsocksR (windows)下载网址https://github.com/shadowsocksrr/shadowsocksr-csharp/releases"***
sw.WriteLine(Application.Current.FindResource("readmeTxtSSRExplainLine06").ToString());
//***"SSRRAndroid下载网址https://github.com/shadowsocksrr/shadowsocksr-android/releases"***
sw.WriteLine(Application.Current.FindResource("readmeTxtSSRExplainLine07").ToString());
//***"Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。"***
sw.WriteLine(Application.Current.FindResource("readmeTxtSSRExplainLine08").ToString());
sw.WriteLine("-----------------------------------------\n");
sw.WriteLine("url.txt");
//***"此文件为ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)复制粘贴导入节点的网址"***
sw.WriteLine(Application.Current.FindResource("readmeTxtSSRExplainLine09").ToString());
sw.WriteLine("-----------------------------------------\n");
//***"服务器通用连接配置参数"***
sw.WriteLine(Application.Current.FindResource("readmeTxtTrojanExplainLine10").ToString());
//****** 服务器地址(address): ******
sw.WriteLine(Application.Current.FindResource("TextBlockServerAddress").ToString() + $"{ TextBoxSSRHostAddress.Text}");
//****** 端口(port): ******
sw.WriteLine(Application.Current.FindResource("TextBlockServerPort").ToString() + $"{TextBoxSSRPort.Text}");
//****** 密码: ******
sw.WriteLine(Application.Current.FindResource("TextBlockTrojanGoPassword").ToString() + $"{TextBoxSSRUUID.Text}");
//****** 加密方式: ******
sw.WriteLine(Application.Current.FindResource("TextBlockEncryption").ToString() + $"{TextBoxSSREncryption.Text}");
//****** 传输协议: ******
sw.WriteLine(Application.Current.FindResource("TextBlockTransferProtocol").ToString() + $"{TextBoxSSRTransmission.Text}");
//****** 混淆: ******
sw.WriteLine(Application.Current.FindResource("TextBlockCamouflageType").ToString() + $"{TextBoxSSRCamouflageType.Text}");
//****** 密码: ******
//sw.WriteLine(Application.Current.FindResource("TextBlockTrojanGoWebSocketPath").ToString() + $"{TextBoxTrojanGoWSPath.Text}");
}
}
//生成base64
private string ToBase64Encode(string text)
{
@ -894,6 +965,69 @@ namespace ProxySU
System.Diagnostics.Process.Start("explorer.exe", openFolderPath);
this.Close();
}
else if (String.Equals(MainWindow.proxyType, "SSR"))
{
string openFolderPath = @"ssr_config\" + saveFileFolder;
System.Diagnostics.Process.Start("explorer.exe", openFolderPath);
this.Close();
}
}
//SSR生成URL链接
public string GetSSRLinkForServer()
{
string server = TextBoxSSRHostAddress.Text;
string server_port = TextBoxSSRPort.Text;
string password = TextBoxSSRUUID.Text;
string protocol = TextBoxSSRTransmission.Text;
string method = TextBoxSSREncryption.Text;
string obfs = TextBoxSSRCamouflageType.Text;
string obfsparam="";
string protocolparam = "";
string remarks = TextBoxSSRHostAddress.Text;
string group = TextBoxSSRHostAddress.Text;
bool udp_over_tcp = true;
int server_udp_port = 0;
string main_part = server + ":" + server_port + ":" + protocol + ":" + method + ":" + obfs + ":" + EncodeUrlSafeBase64(password);
string param_str = "obfsparam=" + EncodeUrlSafeBase64(obfsparam ?? "");
if (!string.IsNullOrEmpty(protocolparam))
{
param_str += "&protoparam=" + EncodeUrlSafeBase64(protocolparam);
}
if (!string.IsNullOrEmpty(remarks))
{
param_str += "&remarks=" + EncodeUrlSafeBase64(remarks);
}
if (!string.IsNullOrEmpty(group))
{
param_str += "&group=" + EncodeUrlSafeBase64(group);
}
if (udp_over_tcp)
{
param_str += "&uot=" + "1";
}
if (server_udp_port > 0)
{
param_str += "&udpport=" + server_udp_port.ToString();
}
string base64 = EncodeUrlSafeBase64(main_part + "/?" + param_str);
return "ssr://" + base64;
}
private string EncodeUrlSafeBase64(byte[] val, bool trim)
{
if (trim)
return Convert.ToBase64String(val).Replace('+', '-').Replace('/', '_').TrimEnd('=');
else
return Convert.ToBase64String(val).Replace('+', '-').Replace('/', '_');
}
private string EncodeUrlSafeBase64(string val, bool trim = true)
{
return EncodeUrlSafeBase64(Encoding.UTF8.GetBytes(val), trim);
}
}
}

View file

@ -44,6 +44,9 @@
<sys:String x:Key="ButtonNaiveProxyChangeUser">Random</sys:String>
<sys:String x:Key="ButtonNavieSetUp">NaiveProxy install</sys:String>
<sys:String x:Key="ButtonNaiveCancel">Cancel</sys:String>
<!-- 以下SSR设置参数标签页界面 -->
<sys:String x:Key="TextBlockSSRTemplateExplanation">Mode: SSR+TLS+Caddy</sys:String>
<sys:String x:Key="ButtonSSRSetUp">SSR install</sys:String>
<!-- The following system tool tab interface -->
<sys:String x:Key="ButtonProofreadTime">Proofreading Time</sys:String>
<sys:String x:Key="ButtonClearOccupiedPorts">Release 80/443</sys:String>
@ -134,7 +137,7 @@
<sys:String x:Key="TextBlockV2RayAlterIdExplain">The default is 16, and you can fill in a value not exceeding 64. If the client does not have this option, leave it blank</sys:String>
<sys:String x:Key="TextBlockEncryption">Encryption method:</sys:String>
<sys:String x:Key="TextBlockTransferProtocol">Transfer Protocol:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">Camouflage type:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">Camouflage type(Confuse):</sys:String>
<sys:String x:Key="TextBlockIsOrNotTLS">TLS:</sys:String>
<sys:String x:Key="TextBlockClientPath">Path:</sys:String>
<sys:String x:Key="TextBlockClientMkcpQuicKey">mKCP Seed/QUIC key:</sys:String>
@ -145,6 +148,7 @@
<sys:String x:Key="TextBlockQrURLexplainTrojan-go">" can be used for ShadowRocket (ios), ignore (Android), Trojan-QT5 (windows) to scan codes and import URLs. Note: some clients may not support WebSocket mode ."</sys:String>
<sys:String x:Key="TextBlockQrURLexplainTrojan">"Can be used for ShadowRocket (ios), ignore (Android), Trojan-QT5 (windows) to scan codes and import URLs. Note: Some clients may not support WebSocket mode."</sys:String>
<sys:String x:Key="TextBlockQrURLexplainNaiveProxy">URL import link for NaiveGUI (windows)</sys:String>
<sys:String x:Key="TextBlockQrURLexplainSSR">Used to scan codes and import URL import links for ShadowsocksR (windows), SSRR (android), Shadowrocket (ios)</sys:String>
<!--The following is in the program-->
<sys:String x:Key="MessageBoxShow_ErrorHostPortUserNotEmpty">Host address, host port, and user name are required and cannot be empty!!</sys:String>
<sys:String x:Key="MessageBoxShow_ErrorHostPasswordNotEmpty">The login password is required and cannot be empty!!</sys:String>
@ -307,7 +311,13 @@
<sys:String x:Key="readmeTxtNaiveProxyExplainLine05">This file is NaiveGUI (windows) copy and paste the URL of the imported node</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine06">NaiveGUI(windows) download URL: https://github.com/ExcitedCodes/NaiveGUI/releases</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine07">Server general connection configuration parameters</sys:String>
<!--The following is the SSR+TLS+Caddy client documentation-->
<sys:String x:Key="readmeTxtSSRExplainLine05">This file is for ShadowsocksR (windows), SSRR (Android), Shadowrocket (ios) scan code import node</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine06">ShadowsocksR (windows) download URL: https://github.com/shadowsocksrr/shadowsocksr-csharp/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine07">SSRR (Android) download URL: https://github.com/shadowsocksrr/shadowsocksr-android/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine08">Shadowrocket(ios) download, you need to use the AppleID of the foreign region. Please Google method yourself.</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine09">This file is ShadowsocksR (windows), SSRR (Android), Shadowrocket (ios) copy and paste the URL of the imported node</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine10">Server general connection configuration parameters</sys:String>
<!--<sys:String x:Key="TabItemHeaderAppDeployment">Deployment</sys:String>
<sys:String x:Key="TabItemHeaderResourceTools">Resource Tools</sys:String>

View file

@ -44,6 +44,10 @@
<sys:String x:Key="ButtonNaiveProxyChangeUser">随机</sys:String>
<sys:String x:Key="ButtonNavieSetUp">NaiveProxy一键安装</sys:String>
<sys:String x:Key="ButtonNaiveCancel">取消</sys:String>
<!-- 以下SSR设置参数标签页界面 -->
<sys:String x:Key="TextBlockSSRTemplateExplanation">模式SSR+TLS+Caddy</sys:String>
<sys:String x:Key="ButtonSSRSetUp">SSR一键安装</sys:String>
<!-- 以下系统工具标签页界面 -->
<sys:String x:Key="ButtonProofreadTime">校对时间</sys:String>
<sys:String x:Key="ButtonClearOccupiedPorts">释放80/443端口</sys:String>
@ -134,7 +138,7 @@
<sys:String x:Key="TextBlockV2RayAlterIdExplain">默认16可以填不超过64的值客户端没有此选项可不填</sys:String>
<sys:String x:Key="TextBlockEncryption">加密方式:</sys:String>
<sys:String x:Key="TextBlockTransferProtocol">传输协议:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">伪装类型:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">伪装类型(混淆):</sys:String>
<sys:String x:Key="TextBlockIsOrNotTLS">是否使用TLS:</sys:String>
<sys:String x:Key="TextBlockClientPath">路径(Path):</sys:String>
<sys:String x:Key="TextBlockClientMkcpQuicKey">mKCP Seed/QUIC密钥:</sys:String>
@ -145,6 +149,7 @@
<sys:String x:Key="TextBlockQrURLexplainTrojan-go">"可用于ShadowRocket (ios)、igniterAndroid、Trojan-QT5 (windows) 扫码和导入url。注意有的客户端可能不支持WebSocket模式。"</sys:String>
<sys:String x:Key="TextBlockQrURLexplainTrojan">"可用于ShadowRocket (ios)、igniterAndroid、Trojan-QT5 (windows) 扫码和导入url。注意有的客户端可能不支持WebSocket模式。"</sys:String>
<sys:String x:Key="TextBlockQrURLexplainNaiveProxy">用于NaiveGUI(windows)的URL导入链接</sys:String>
<sys:String x:Key="TextBlockQrURLexplainSSR">用于ShadowsocksR(windows)、SSRR(android)、Shadowrocket(ios)的扫码和导入URL导入链接</sys:String>
<!--以下为程序内的-->
<sys:String x:Key="MessageBoxShow_ErrorHostPortUserNotEmpty">主机地址、主机端口、用户名为必填项,不能为空!!</sys:String>
<sys:String x:Key="MessageBoxShow_ErrorHostPasswordNotEmpty">登录密码为必填项,不能为空!!</sys:String>
@ -307,7 +312,13 @@
<sys:String x:Key="readmeTxtNaiveProxyExplainLine05">此文件为NaiveGUI(windows)复制粘贴导入节点的网址</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine06">NaiveGUI(windows)下载网址https://github.com/ExcitedCodes/NaiveGUI/releases</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine07">服务器通用连接配置参数</sys:String>
<!--以下为SSR+TLS+Caddy客户端说明文件-->
<sys:String x:Key="readmeTxtSSRExplainLine05">此文件为ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)扫码导入节点</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine06">ShadowsocksR (windows)下载网址https://github.com/shadowsocksrr/shadowsocksr-csharp/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine07">SSRRAndroid下载网址https://github.com/shadowsocksrr/shadowsocksr-android/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine08">Shadowrocket(ios)下载,需要使用国外区的AppleID。请自行谷歌方法。</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine09">此文件为ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)复制粘贴导入节点的网址</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine10">服务器通用连接配置参数</sys:String>
<!--<sys:String x:Key="MsgShowTime">Now</sys:String>
<sys:String x:Key="BtnOK1">OK</sys:String>
<sys:String x:Key="HdNo1">No.</sys:String>

View file

@ -44,6 +44,9 @@
<sys:String x:Key="ButtonNaiveProxyChangeUser">隨機</sys:String>
<sys:String x:Key="ButtonNavieSetUp">NaiveProxy一鍵安裝</sys:String>
<sys:String x:Key="ButtonNaiveCancel">取消</sys:String>
<!-- 以下SSR设置参数标签页界面 -->
<sys:String x:Key="TextBlockSSRTemplateExplanation">模式SSR+TLS+Caddy</sys:String>
<sys:String x:Key="ButtonSSRSetUp">SSR一鍵安裝</sys:String>
<!-- 以下系統工具標籤頁界面 -->
<sys:String x:Key="ButtonProofreadTime">校對時間</sys:String>
<sys:String x:Key="ButtonClearOccupiedPorts">釋放80/443端口</sys:String>
@ -134,7 +137,7 @@
<sys:String x:Key="TextBlockV2RayAlterIdExplain">默認16可以填不超過64的值客戶端沒有此選項可不填</sys:String>
<sys:String x:Key="TextBlockEncryption">加密方式:</sys:String>
<sys:String x:Key="TextBlockTransferProtocol">傳輸協議:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">偽裝類型:</sys:String>
<sys:String x:Key="TextBlockCamouflageType">偽裝類型(混淆):</sys:String>
<sys:String x:Key="TextBlockIsOrNotTLS">是否使用TLS:</sys:String>
<sys:String x:Key="TextBlockClientPath">路徑(Path):</sys:String>
<sys:String x:Key="TextBlockClientMkcpQuicKey">mKCP Seed/QUIC密鑰:</sys:String>
@ -145,6 +148,7 @@
<sys:String x:Key="TextBlockQrURLexplainTrojan-go">"可用於ShadowRocket (ios)、igniterAndroid、Trojan-QT5 (windows) 掃碼和導入url。注意有的客戶端可能不支持WebSocket模式。"</sys:String>
<sys:String x:Key="TextBlockQrURLexplainTrojan">"可用於ShadowRocket (ios)、igniterAndroid、Trojan-QT5 (windows) 掃碼和導入url。注意有的客戶端可能不支持WebSocket模式。"</sys:String>
<sys:String x:Key="TextBlockQrURLexplainNaiveProxy">用於NaiveGUI(windows)的URL導入鏈接</sys:String>
<sys:String x:Key="TextBlockQrURLexplainSSR">用於ShadowsocksR(windows)、SSRR(android)、Shadowrocket(ios)的掃碼和導入URL導入鏈接</sys:String>
<!--以下為程序內的-->
<sys:String x:Key="MessageBoxShow_ErrorHostPortUserNotEmpty">主機地址、主機端口、用戶名為必填項,不能為空!!</sys:String>
<sys:String x:Key="MessageBoxShow_ErrorHostPasswordNotEmpty">登錄密碼為必填項,不能為空!!</sys:String>
@ -308,5 +312,12 @@
<sys:String x:Key="readmeTxtNaiveProxyExplainLine05">此文件為NaiveGUI(windows)複製粘貼導入節點的網址</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine06">NaiveGUI(windows)下載網址https://github.com/ExcitedCodes/NaiveGUI/releases</sys:String>
<sys:String x:Key="readmeTxtNaiveProxyExplainLine07">服務器通用連接配置參數</sys:String>
<!--以下為SSR+TLS+Caddy客戶端說明文件-->
<sys:String x:Key="readmeTxtSSRExplainLine05">此文件為ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)掃碼導入節點</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine06">ShadowsocksR (windows)下載網址https://github.com/shadowsocksrr/shadowsocksr-csharp/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine07">SSRRAndroid下載網址https://github.com/shadowsocksrr/shadowsocksr-android/releases</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine08">Shadowrocket(ios)下載,需要使用國外區的AppleID。請自行谷歌方法。</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine09">此文件為ShadowsocksR (windows)、SSRRAndroid、Shadowrocket(ios)複製粘貼導入節點的網址</sys:String>
<sys:String x:Key="readmeTxtSSRExplainLine10">服務器通用連接配置參數</sys:String>
</ResourceDictionary>

View file

@ -93,8 +93,8 @@
<TextBox x:Name="TextBoxPath" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="1" Margin="5"></TextBox>
<Button x:Name="ButtonPath" Content="{DynamicResource ButtonNaiveProxyChangeUser}" Grid.Column="2" Grid.Row="2" Margin="2" Click="ButtonPath_Click"></Button>
<TextBlock x:Name="TextBlockMaskSites" Text="伪装网站:" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Visibility="Hidden"></TextBlock>
<TextBox x:Name="TextBoxMaskSites" Style="{StaticResource TitleText}" Tag="设置此项可增加代理的隐蔽(可为空)" Grid.Column="1" Grid.Row="3" Margin="5" Visibility="Hidden"></TextBox>
<TextBlock x:Name="TextBlockMaskSites" Text="{DynamicResource TextBlockV2RayMaskSites}" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Visibility="Hidden"></TextBlock>
<TextBox x:Name="TextBoxMaskSites" Style="{StaticResource TitleText}" Tag="{DynamicResource TextBoxV2RayMaskSitesTag}" Grid.Column="1" Grid.Row="3" Margin="5" Visibility="Hidden"></TextBox>
<Grid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>

View file

@ -502,7 +502,7 @@ namespace ProxySU
Guid uuid = Guid.NewGuid();
TextBoxNewUUID.Text = uuid.ToString();
Random random = new Random();
int randomServerPort = random.Next(10000, 50000);
int randomServerPort = random.Next(30001, 50000);
TextBoxServerListenPort.Text = randomServerPort.ToString();
//清除其他选项卡中的选项
UncheckLayouts((TabItem)TabControlTemplate.SelectedItem);
@ -705,7 +705,7 @@ namespace ProxySU
TextBoxQuicUUID.Text = uuid.ToString();
Random random = new Random();
int randomServerPort = random.Next(10000, 50000);
int randomServerPort = random.Next(30001, 50000);
TextBoxServerListenPort.Text = randomServerPort.ToString();
//清除其他选项卡中的选项
UncheckLayouts((TabItem)TabControlTemplate.SelectedItem);
@ -728,7 +728,7 @@ namespace ProxySU
private void ButtonServerListenPort_Click(object sender, RoutedEventArgs e)
{
Random random = new Random();
int randomServerPort = random.Next(10000, 50000);
int randomServerPort = random.Next(30001, 50000);
TextBoxServerListenPort.Text = randomServerPort.ToString();
}
//产生随机的Path

Binary file not shown.