From 67f31e39ff5336975f7489f5b99432998fb6c032 Mon Sep 17 00:00:00 2001 From: ProxySU Date: Sat, 18 Apr 2020 21:21:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E6=9F=A5bug2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProxySU/MainWindow.xaml | 16 +- ProxySU/MainWindow.xaml.cs | 48 ++-- ProxySU/ResultClientInformation.xaml | 57 +++-- ProxySU/ResultClientInformation.xaml.cs | 134 +++++----- ProxySU/TemplateConfiguration.xaml | 2 +- ProxySU/TemplateConfiguration.xaml.cs | 235 +++++++++--------- ProxySU/bin/Release/ProxySU.exe | Bin 111616 -> 112128 bytes ProxySU/bin/Release/Release.zip | Bin 474032 -> 473858 bytes ...ebSocketTLS_selfSigned_client_config.json} | 2 +- ...ebSocketTLS_selfSigned_server_config.json} | 0 .../WebSocket_TLS_client_config.json | 2 +- .../TemplateConfg/http2Web_client_config.json | 5 +- .../http2Web_server_config.caddyfile | 2 +- .../TemplateConfg/http2Web_server_config.json | 5 +- .../http2selfSigned_client_config.json | 4 +- .../TemplateConfg/mkcp_client_config.json | 6 +- .../TemplateConfg/tcp_server_config.json | 41 ++- 17 files changed, 295 insertions(+), 264 deletions(-) rename ProxySU/bin/Release/TemplateConfg/{WebSocket_TLS_selfSigned_client_config.json => WebSocketTLS_selfSigned_client_config.json} (100%) rename ProxySU/bin/Release/TemplateConfg/{WebSocket_TLS_selfSigned_server_config.json => WebSocketTLS_selfSigned_server_config.json} (100%) diff --git a/ProxySU/MainWindow.xaml b/ProxySU/MainWindow.xaml index d77ea5f..289188f 100644 --- a/ProxySU/MainWindow.xaml +++ b/ProxySU/MainWindow.xaml @@ -121,12 +121,12 @@ - - + - - + + --> - + diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index e5e32a3..1bc6d80 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -216,8 +216,8 @@ namespace ProxySU } else if (String.Equals(ReceiveConfigurationParameters[0], "WebSocketTLSselfSigned")) { - serverConfig = "TemplateConfg\\WebSocket_TLS_selfSigned_server_config.json"; - clientConfig = "TemplateConfg\\WebSocket_TLS_selfSigned_client_config.json"; + serverConfig = "TemplateConfg\\WebSocketTLS_selfSigned_server_config.json"; + clientConfig = "TemplateConfg\\WebSocketTLS_selfSigned_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "WebSocketTLS2Web")) { @@ -231,13 +231,13 @@ namespace ProxySU } else if (String.Equals(ReceiveConfigurationParameters[0], "http2Web")) { - serverConfig = "TemplateConfg\\http2Web_server_config.json"; - clientConfig = "TemplateConfg\\http2Web_client_config.json"; + serverConfig = "TemplateConfg\\Http2Web_server_config.json"; + clientConfig = "TemplateConfg\\Http2Web_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "http2selfSigned")) { - serverConfig = "TemplateConfg\\http2selfSigned_server_config.json"; - clientConfig = "TemplateConfg\\http2selfSigned_client_config.json"; + serverConfig = "TemplateConfg\\Http2selfSigned_server_config.json"; + clientConfig = "TemplateConfg\\Http2selfSigned_client_config.json"; } //else if (String.Equals(ReceiveConfigurationParameters[0], "MkcpNone")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2SRTP")||String.Equals(ReceiveConfigurationParameters[0], "mKCPuTP")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WechatVideo")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2DTLS")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WireGuard")) else if (ReceiveConfigurationParameters[0].Contains("mKCP")) @@ -571,7 +571,7 @@ namespace ProxySU } else { - currentStatus = "域名未能正确解析到当前VPS的IP上!"; + currentStatus = "域名未能正确解析到当前VPS的IP上!安装失败!"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); Thread.Sleep(1000); MessageBox.Show("域名未能正确解析到当前VPS的IP上,请检查!若解析设置正确,请等待生效后再重试安装。如果域名使用了CDN,请先关闭!"); @@ -579,7 +579,7 @@ namespace ProxySU } } - if (serverConfig.Contains("TLS") == true || serverConfig.Contains("http2") == true) { + if (serverConfig.Contains("TLS") == true || serverConfig.Contains("http2") == true || serverConfig.Contains("Http2") == true) { //检测是否安装lsof if (string.IsNullOrEmpty(client.RunCommand("command -v lsof").Result) == true) { @@ -667,28 +667,34 @@ namespace ProxySU JObject serverJson = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); //设置uuid serverJson["inbounds"][0]["settings"]["clients"][0]["id"] = ReceiveConfigurationParameters[2]; - //除WebSocketTLSWeb模式外设置监听端口 - if (serverConfig.Contains("WebSocketTLSWeb") == false && serverConfig.Contains("http2Web") == false) + //除WebSocketTLSWeb/http2Web模式外设置监听端口 + if (serverConfig.Contains("WebSocketTLSWeb") == false && serverConfig.Contains("Http2Web") == false) { serverJson["inbounds"][0]["port"] = int.Parse(ReceiveConfigurationParameters[1]); } - //TLS自签证书模式下 - if (serverConfig.Contains("selfSigned") == true) + //TLS自签证书/http2Web模式下,使用v2ctl 生成自签证书 + if (serverConfig.Contains("selfSigned") == true|| serverConfig.Contains("Http2Web") == true) { string selfSignedCa = client.RunCommand("/usr/bin/v2ray/v2ctl cert --ca").Result; JObject selfSignedCaJObject = JObject.Parse(selfSignedCa); serverJson["inbounds"][0]["streamSettings"]["tlsSettings"]["certificates"][0] = selfSignedCaJObject; } - //如果是WebSocketTLSWeb模式,则设置路径 + //如果是WebSocketTLSWeb/WebSocketTLS/WebSocketTLS(自签证书)模式,则设置路径 if (serverConfig.Contains("WebSocket") == true) { serverJson["inbounds"][0]["streamSettings"]["wsSettings"]["path"] = ReceiveConfigurationParameters[3]; } //如果是Http2模式下,设置路径 - if (serverConfig.Contains("http2") == true) + if (serverConfig.Contains("http2") == true|| serverConfig.Contains("Http2") == true) { serverJson["inbounds"][0]["streamSettings"]["httpSettings"]["path"] = ReceiveConfigurationParameters[3]; } + //如果是Http2Web模式下,设置host + if (serverConfig.Contains("Http2Web") == true) + { + serverJson["inbounds"][0]["streamSettings"]["httpSettings"]["path"] = ReceiveConfigurationParameters[3]; + serverJson["inbounds"][0]["streamSettings"]["httpSettings"]["host"][0] = ReceiveConfigurationParameters[4]; + } //mkcp模式下,设置伪装类型 if (serverConfig.Contains("mkcp") == true) { @@ -744,7 +750,7 @@ namespace ProxySU } //如果是WebSocket + TLS + Web模式,需要安装Caddy - if (serverConfig.Contains("WebSocketTLSWeb")==true || serverConfig.Contains("http2Web") == true) + if (serverConfig.Contains("WebSocketTLSWeb")==true || serverConfig.Contains("Http2Web") == true) { currentStatus = "使用WebSocket+TLS+Web/HTTP2+TLS+Web模式,正在安装Caddy......"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); @@ -763,9 +769,9 @@ namespace ProxySU { serverConfig = "TemplateConfg\\WebSocketTLSWeb_server_config.caddyfile"; } - if (serverConfig.Contains("http2Web") == true) + if (serverConfig.Contains("Http2Web") == true) { - serverConfig = "TemplateConfg\\http2Web_server_config.caddyfile"; + serverConfig = "TemplateConfg\\Http2Web_server_config.caddyfile"; } upLoadPath = "/etc/caddy/Caddyfile"; UploadConfig(connectionInfo, serverConfig, upLoadPath); @@ -804,7 +810,7 @@ namespace ProxySU if (serverConfig.Contains("http2") == true|| serverConfig.Contains("WebSocket_TLS") ==true|| serverConfig.Contains("tcp_TLS") == true) { - currentStatus = "使用Http2/WebSocket +TLS/tcp+TLS模式,正在安装acme.sh......"; + currentStatus = "使用Http2/WebSocket+TLS/tcp+TLS模式,正在安装acme.sh......"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); Thread.Sleep(1000); @@ -871,10 +877,14 @@ namespace ProxySU { clientJson["outbounds"][0]["streamSettings"]["wsSettings"]["path"] = ReceiveConfigurationParameters[3]; } - if (clientConfig.Contains("http2") == true) + if (clientConfig.Contains("http2") == true|| clientConfig.Contains("Http2") == true) { clientJson["outbounds"][0]["streamSettings"]["httpSettings"]["path"] = ReceiveConfigurationParameters[3]; } + if (clientConfig.Contains("Http2Web") == true) + { + clientJson["outbounds"][0]["streamSettings"]["httpSettings"]["host"][0] = ReceiveConfigurationParameters[4]; + } if (clientConfig.Contains("mkcp")==true) { clientJson["outbounds"][0]["streamSettings"]["kcpSettings"]["header"]["type"] = ReceiveConfigurationParameters[5]; diff --git a/ProxySU/ResultClientInformation.xaml b/ProxySU/ResultClientInformation.xaml index 7b1abe8..20d53b7 100644 --- a/ProxySU/ResultClientInformation.xaml +++ b/ProxySU/ResultClientInformation.xaml @@ -33,41 +33,46 @@ + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + - - - + + + + + + + + + + @@ -77,7 +82,7 @@ - + diff --git a/ProxySU/ResultClientInformation.xaml.cs b/ProxySU/ResultClientInformation.xaml.cs index 698d73d..3c77d92 100644 --- a/ProxySU/ResultClientInformation.xaml.cs +++ b/ProxySU/ResultClientInformation.xaml.cs @@ -41,6 +41,8 @@ namespace ProxySU TextBoxPath.Text = MainWindow.ReceiveConfigurationParameters[3]; //主机地址 TextBoxHostAddress.Text = MainWindow.ReceiveConfigurationParameters[4]; + //TLS的Host + TextBoxHost.Text = ""; //加密方式,一般都为auto TextBoxEncryption.Text = "auto"; //伪装类型 @@ -52,16 +54,32 @@ namespace ProxySU { TextBoxTransmission.Text = "ws"; TextBoxCamouflageType.Text = "none"; - ShowPathAndTLS(); - HideQuicKey(); TextBoxTLS.Text = "tls"; + ShowPath(); + HideQuicKey(); + } + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "TCP")) + { + TextBoxTransmission.Text = "tcp"; + TextBoxCamouflageType.Text = "none"; + TextBoxTLS.Text = "none"; + HidePath(); + HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "TCPhttp")) { TextBoxTransmission.Text = "tcp"; TextBoxCamouflageType.Text = "http"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); + HideQuicKey(); + } + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "tcpTLS")) + { + TextBoxTransmission.Text = "tcp"; + TextBoxCamouflageType.Text = "none"; + TextBoxTLS.Text = "tls"; + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "tcpTLSselfSigned")) @@ -69,34 +87,56 @@ namespace ProxySU TextBoxTransmission.Text = "tcp"; TextBoxCamouflageType.Text = "none"; TextBoxTLS.Text = "tls"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "webSocket")) { TextBoxTransmission.Text = "ws"; TextBoxCamouflageType.Text = "none"; - //TextBoxPath.Text = "/"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "WebSocketTLS")) { TextBoxTransmission.Text = "ws"; TextBoxCamouflageType.Text = "none"; - //TextBoxPath.Text = "/"; TextBoxTLS.Text = "tls"; - HidePathAndTLS(); + ShowPath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "WebSocketTLSselfSigned")) { TextBoxTransmission.Text = "ws"; TextBoxCamouflageType.Text = "none"; - //TextBoxPath.Text = "/"; TextBoxTLS.Text = "tls"; - HidePathAndTLS(); + ShowPath(); + HideQuicKey(); + } + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "Http2")) + { + TextBoxTransmission.Text = "h2"; + TextBoxCamouflageType.Text = "none"; + TextBoxTLS.Text = "tls"; + ShowPath(); + HideQuicKey(); + } + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "http2Web")) + { + TextBoxTransmission.Text = "h2"; + TextBoxCamouflageType.Text = "none"; + TextBoxHost.Text = MainWindow.ReceiveConfigurationParameters[4]; + TextBoxTLS.Text = "tls"; + ShowPath(); + HideQuicKey(); + } + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "http2selfSigned")) + { + TextBoxTransmission.Text = "h2"; + TextBoxCamouflageType.Text = "none"; + TextBoxTLS.Text = "tls"; + ShowPath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCPNone")) @@ -104,7 +144,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "none"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2SRTP")) @@ -112,7 +152,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "srtp"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCPuTP")) @@ -120,7 +160,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "utp"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2WechatVideo")) @@ -128,7 +168,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "wechat-video"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2DTLS")) @@ -136,7 +176,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "dtls"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2WireGuard")) @@ -144,7 +184,7 @@ namespace ProxySU TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "wireguard"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicNone")) @@ -153,7 +193,7 @@ namespace ProxySU TextBoxCamouflageType.Text = "none"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicSRTP")) @@ -162,7 +202,7 @@ namespace ProxySU TextBoxCamouflageType.Text = "srtp"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "Quic2uTP")) @@ -171,7 +211,7 @@ namespace ProxySU TextBoxCamouflageType.Text = "utp"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicWechatVideo")) @@ -180,7 +220,7 @@ namespace ProxySU TextBoxCamouflageType.Text = "wechat-video"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicDTLS")) @@ -189,7 +229,7 @@ namespace ProxySU TextBoxCamouflageType.Text = "dtls"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicWireGuard")) @@ -198,76 +238,50 @@ namespace ProxySU TextBoxCamouflageType.Text = "wireguard"; TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); ShowQuicKey(); } - else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "Http2")) - { - TextBoxTransmission.Text = "h2"; - TextBoxCamouflageType.Text = "none"; - ShowPathAndTLS(); - HideQuicKey(); - TextBoxTLS.Text = "tls"; - } - //else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "TLS")) - //{ - // TextBoxTransmission.Text = "tcp"; - // TextBoxCamouflageType.Text = "none"; - // TextBoxTLS.Text = "tls"; - // HidePathAndTLS(); - // HideQuicKey(); - //} + else { TextBoxTransmission.Text = "tcp"; TextBoxCamouflageType.Text = "none"; TextBoxTLS.Text = "none"; - HidePathAndTLS(); + HidePath(); HideQuicKey(); } CheckDir("config"); - //if (!Directory.Exists("config"))//如果不存在就创建file文件夹      - //{ - // Directory.CreateDirectory("config");//创建该文件夹   - //} + GenerateV2rayShareQRcodeAndBase64Url(); } - private void HidePathAndTLS() + private void HidePath() { TextBlockPath.Visibility = Visibility.Collapsed; TextBoxPath.Visibility = Visibility.Collapsed; TextBlockPathExplain.Visibility = Visibility.Collapsed; - //TextBlocTLSonOrNo.Visibility = Visibility.Collapsed; - //TextBoxTLS.Visibility = Visibility.Collapsed; - //TextBlocTLSonOrNoExplain.Visibility = Visibility.Collapsed; + } - private void ShowPathAndTLS() + private void ShowPath() { TextBlockPath.Visibility = Visibility.Visible; TextBoxPath.Visibility = Visibility.Visible; TextBlockPathExplain.Visibility = Visibility.Visible; - //TextBlocTLSonOrNo.Visibility = Visibility.Visible; - //TextBoxTLS.Visibility = Visibility.Visible; - //TextBlocTLSonOrNoExplain.Visibility = Visibility.Visible; + } private void HideQuicKey() { TextBlockQuicKey.Visibility = Visibility.Collapsed; TextBoxQuicKey.Visibility = Visibility.Collapsed; TextBlockQuicKeyExplain.Visibility = Visibility.Collapsed; - //TextBlocTLSonOrNo.Visibility = Visibility.Collapsed; - //TextBoxTLS.Visibility = Visibility.Collapsed; - //TextBlocTLSonOrNoExplain.Visibility = Visibility.Collapsed; + } private void ShowQuicKey() { TextBlockQuicKey.Visibility = Visibility.Visible; TextBoxQuicKey.Visibility = Visibility.Visible; TextBlockQuicKeyExplain.Visibility = Visibility.Visible; - //TextBlocTLSonOrNo.Visibility = Visibility.Visible; - //TextBoxTLS.Visibility = Visibility.Visible; - //TextBlocTLSonOrNoExplain.Visibility = Visibility.Visible; + } //生成v2rayN客户端导入文件 private void GenerateV2rayShareQRcodeAndBase64Url() @@ -296,6 +310,7 @@ namespace ProxySU v2rayNjsonObject["aid"] = TextBoxUUIDextra.Text; //设置额外ID v2rayNjsonObject["net"] = TextBoxTransmission.Text; //设置传输模式 v2rayNjsonObject["type"] = TextBoxCamouflageType.Text; //设置伪装类型 + if (TextBoxTransmission.Text.Contains("quic")==true) { v2rayNjsonObject["path"] = TextBoxQuicKey.Text;//设置quic密钥 @@ -304,9 +319,9 @@ namespace ProxySU else { v2rayNjsonObject["path"] = TextBoxPath.Text; //设置路径 - v2rayNjsonObject["host"] = ""; + v2rayNjsonObject["host"] = TextBoxHost.Text;//设置TLS的Host } - + v2rayNjsonObject["tls"] = TextBoxTLS.Text; //设置是否启用TLS v2rayNjsonObject["ps"] = v2rayNjsonObject["add"]; //设置备注 //MessageBox.Show(v2rayNjsonObject["v"].ToString()); @@ -364,6 +379,7 @@ namespace ProxySU sw.WriteLine($"传输协议:{TextBoxTransmission.Text}"); sw.WriteLine($"伪装类型:{TextBoxCamouflageType.Text}"); sw.WriteLine($"是否使用TLS:{TextBoxTLS.Text}"); + sw.WriteLine($"host:{TextBoxHostAddress.Text}"); sw.WriteLine($"路径(Path):{TextBoxPath.Text}"); sw.WriteLine($"QUIC密钥:{TextBoxQuicKey.Text}"); } diff --git a/ProxySU/TemplateConfiguration.xaml b/ProxySU/TemplateConfiguration.xaml index 3f97281..a9a2e3c 100644 --- a/ProxySU/TemplateConfiguration.xaml +++ b/ProxySU/TemplateConfiguration.xaml @@ -119,7 +119,7 @@ - + diff --git a/ProxySU/TemplateConfiguration.xaml.cs b/ProxySU/TemplateConfiguration.xaml.cs index f84dbcb..3aecfc5 100644 --- a/ProxySU/TemplateConfiguration.xaml.cs +++ b/ProxySU/TemplateConfiguration.xaml.cs @@ -200,8 +200,8 @@ namespace ProxySU } } } - //WebSocket+TLS(自签证书)模式被选中 - else if (RadioButtonWebSocketTLSselfSigned.IsChecked == true) + //http2(自签证书)模式被选中 + else if (RadioButtonHTTP2selfSigned.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "http2selfSigned"; @@ -348,92 +348,6 @@ namespace ProxySU //清除其他选项卡中的选项 UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); } - private void RadioButtonWebSocketTLS2Web_Checked(object sender, RoutedEventArgs e) - { - //TextBlockServerListenPort.Visibility = Visibility.Visible; - //TextBoxServerListenPort.Visibility = Visibility.Visible; - //ButtonServerListenPort.Visibility = Visibility.Visible; - TextBoxServerListenPort.Text = "443"; - //显示Path - TextBlockPath.Visibility = Visibility.Visible; - TextBoxPath.Visibility = Visibility.Visible; - TextBoxPath.Text = "/ray"; - ButtonPath.Visibility = Visibility.Visible; - //显示域名 - TextBlockDomain.Visibility = Visibility.Visible; - TextBoxDomain.Visibility = Visibility.Visible; - //ButtonDomain.Visibility = Visibility.Visible; - //隐藏QUIC密钥 - TextBlockQuicUUID.Visibility = Visibility.Collapsed; - TextBoxQuicUUID.Visibility = Visibility.Collapsed; - ButtonQuicUUID.Visibility = Visibility.Collapsed; - //显示伪装网站 - TextBlockMaskSites.Visibility = Visibility.Visible; - TextBoxMaskSites.Visibility = Visibility.Visible; - - Guid uuid = Guid.NewGuid(); - TextBoxNewUUID.Text = uuid.ToString(); - //清除其他选项卡中的选项 - UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); - } - private void RadioButtonWebSocketTLSselfSigned_Checked(object sender, RoutedEventArgs e) - { - //TextBlockServerListenPort.Visibility = Visibility.Visible; - //TextBoxServerListenPort.Visibility = Visibility.Visible; - //ButtonServerListenPort.Visibility = Visibility.Visible; - TextBoxServerListenPort.Text = "443"; - //显示Path - TextBlockPath.Visibility = Visibility.Visible; - TextBoxPath.Visibility = Visibility.Visible; - TextBoxPath.Text = "/ray"; - ButtonPath.Visibility = Visibility.Visible; - //显示域名 - TextBlockDomain.Visibility = Visibility.Collapsed; - TextBoxDomain.Visibility = Visibility.Collapsed; - //TextBoxDomain.Tag = "可为空"; - //ButtonDomain.Visibility = Visibility.Visible; - //隐藏QUIC密钥 - TextBlockQuicUUID.Visibility = Visibility.Collapsed; - TextBoxQuicUUID.Visibility = Visibility.Collapsed; - ButtonQuicUUID.Visibility = Visibility.Collapsed; - //隐藏伪装网站 - TextBlockMaskSites.Visibility = Visibility.Collapsed; - TextBoxMaskSites.Visibility = Visibility.Collapsed; - - Guid uuid = Guid.NewGuid(); - TextBoxNewUUID.Text = uuid.ToString(); - //清除其他选项卡中的选项 - UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); - } - - private void RadioButtonHTTP2_Checked(object sender, RoutedEventArgs e) - { - //TextBlockServerListenPort.Visibility = Visibility.Visible; - //TextBoxServerListenPort.Visibility = Visibility.Visible; - //ButtonServerListenPort.Visibility = Visibility.Visible; - TextBoxServerListenPort.Text = "443"; - //显示Path - TextBlockPath.Visibility = Visibility.Collapsed; - TextBoxPath.Visibility = Visibility.Collapsed; - //TextBoxPath.Text = "/ray"; - ButtonPath.Visibility = Visibility.Collapsed; - //显示域名 - TextBlockDomain.Visibility = Visibility.Visible; - TextBoxDomain.Visibility = Visibility.Visible; - //ButtonDomain.Visibility = Visibility.Visible; - //隐藏QUIC密钥 - TextBlockQuicUUID.Visibility = Visibility.Collapsed; - TextBoxQuicUUID.Visibility = Visibility.Collapsed; - ButtonQuicUUID.Visibility = Visibility.Collapsed; - //隐藏伪装网站 - TextBlockMaskSites.Visibility = Visibility.Collapsed; - TextBoxMaskSites.Visibility = Visibility.Collapsed; - - Guid uuid = Guid.NewGuid(); - TextBoxNewUUID.Text = uuid.ToString(); - //清除其他选项卡中的选项 - UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); - } private void RadioButtonTCPhttp_Checked(object sender, RoutedEventArgs e) { //TextBlockServerListenPort.Visibility = Visibility.Visible; @@ -462,36 +376,6 @@ namespace ProxySU //清除其他选项卡中的选项 UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); } - private void RadioButtonQuicNone_Checked(object sender, RoutedEventArgs e) - { - //显示QUIC密钥 - TextBlockQuicUUID.Visibility = Visibility.Visible; - TextBoxQuicUUID.Visibility = Visibility.Visible; - ButtonQuicUUID.Visibility = Visibility.Visible; - //隐藏Path - TextBlockPath.Visibility = Visibility.Collapsed; - TextBoxPath.Visibility = Visibility.Collapsed; - ButtonPath.Visibility = Visibility.Collapsed; - //隐藏域名 - TextBlockDomain.Visibility = Visibility.Collapsed; - TextBoxDomain.Visibility = Visibility.Collapsed; - ButtonDomain.Visibility = Visibility.Collapsed; - //隐藏伪装网站 - TextBlockMaskSites.Visibility = Visibility.Collapsed; - TextBoxMaskSites.Visibility = Visibility.Collapsed; - - Guid uuid = Guid.NewGuid(); - TextBoxNewUUID.Text = uuid.ToString(); - - uuid = Guid.NewGuid(); - TextBoxQuicUUID.Text = uuid.ToString(); - - Random random = new Random(); - int randomServerPort = random.Next(10000, 50000); - TextBoxServerListenPort.Text = randomServerPort.ToString(); - //清除其他选项卡中的选项 - UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); - } private void RadioButtonTCP2TLS_Checked(object sender, RoutedEventArgs e) { TextBoxServerListenPort.Text = "443"; @@ -542,6 +426,121 @@ namespace ProxySU //清除其他选项卡中的选项 UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); } + private void RadioButtonWebSocketTLS2Web_Checked(object sender, RoutedEventArgs e) + { + //TextBlockServerListenPort.Visibility = Visibility.Visible; + //TextBoxServerListenPort.Visibility = Visibility.Visible; + //ButtonServerListenPort.Visibility = Visibility.Visible; + TextBoxServerListenPort.Text = "443"; + //显示Path + TextBlockPath.Visibility = Visibility.Visible; + TextBoxPath.Visibility = Visibility.Visible; + TextBoxPath.Text = "/ray"; + ButtonPath.Visibility = Visibility.Visible; + //显示域名 + TextBlockDomain.Visibility = Visibility.Visible; + TextBoxDomain.Visibility = Visibility.Visible; + //ButtonDomain.Visibility = Visibility.Visible; + //隐藏QUIC密钥 + TextBlockQuicUUID.Visibility = Visibility.Collapsed; + TextBoxQuicUUID.Visibility = Visibility.Collapsed; + ButtonQuicUUID.Visibility = Visibility.Collapsed; + //显示伪装网站 + TextBlockMaskSites.Visibility = Visibility.Visible; + TextBoxMaskSites.Visibility = Visibility.Visible; + + Guid uuid = Guid.NewGuid(); + TextBoxNewUUID.Text = uuid.ToString(); + //清除其他选项卡中的选项 + UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); + } + private void RadioButtonWebSocketTLSselfSigned_Checked(object sender, RoutedEventArgs e) + { + //TextBlockServerListenPort.Visibility = Visibility.Visible; + //TextBoxServerListenPort.Visibility = Visibility.Visible; + //ButtonServerListenPort.Visibility = Visibility.Visible; + TextBoxServerListenPort.Text = "443"; + //显示Path + TextBlockPath.Visibility = Visibility.Visible; + TextBoxPath.Visibility = Visibility.Visible; + TextBoxPath.Text = "/ray"; + ButtonPath.Visibility = Visibility.Visible; + //隐藏域名 + TextBlockDomain.Visibility = Visibility.Collapsed; + TextBoxDomain.Visibility = Visibility.Collapsed; + //TextBoxDomain.Tag = "可为空"; + //ButtonDomain.Visibility = Visibility.Visible; + //隐藏QUIC密钥 + TextBlockQuicUUID.Visibility = Visibility.Collapsed; + TextBoxQuicUUID.Visibility = Visibility.Collapsed; + ButtonQuicUUID.Visibility = Visibility.Collapsed; + //隐藏伪装网站 + TextBlockMaskSites.Visibility = Visibility.Collapsed; + TextBoxMaskSites.Visibility = Visibility.Collapsed; + + Guid uuid = Guid.NewGuid(); + TextBoxNewUUID.Text = uuid.ToString(); + //清除其他选项卡中的选项 + UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); + } + private void RadioButtonHTTP2_Checked(object sender, RoutedEventArgs e) + { + //TextBlockServerListenPort.Visibility = Visibility.Visible; + //TextBoxServerListenPort.Visibility = Visibility.Visible; + //ButtonServerListenPort.Visibility = Visibility.Visible; + TextBoxServerListenPort.Text = "443"; + //显示Path + TextBlockPath.Visibility = Visibility.Visible; + TextBoxPath.Visibility = Visibility.Visible; + TextBoxPath.Text = "/ray"; + ButtonPath.Visibility = Visibility.Visible; + //显示域名 + TextBlockDomain.Visibility = Visibility.Visible; + TextBoxDomain.Visibility = Visibility.Visible; + //ButtonDomain.Visibility = Visibility.Visible; + //隐藏QUIC密钥 + TextBlockQuicUUID.Visibility = Visibility.Collapsed; + TextBoxQuicUUID.Visibility = Visibility.Collapsed; + ButtonQuicUUID.Visibility = Visibility.Collapsed; + //隐藏伪装网站 + TextBlockMaskSites.Visibility = Visibility.Collapsed; + TextBoxMaskSites.Visibility = Visibility.Collapsed; + + Guid uuid = Guid.NewGuid(); + TextBoxNewUUID.Text = uuid.ToString(); + //清除其他选项卡中的选项 + UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); + } + private void RadioButtonQuicNone_Checked(object sender, RoutedEventArgs e) + { + //显示QUIC密钥 + TextBlockQuicUUID.Visibility = Visibility.Visible; + TextBoxQuicUUID.Visibility = Visibility.Visible; + ButtonQuicUUID.Visibility = Visibility.Visible; + //隐藏Path + TextBlockPath.Visibility = Visibility.Collapsed; + TextBoxPath.Visibility = Visibility.Collapsed; + ButtonPath.Visibility = Visibility.Collapsed; + //隐藏域名 + TextBlockDomain.Visibility = Visibility.Collapsed; + TextBoxDomain.Visibility = Visibility.Collapsed; + ButtonDomain.Visibility = Visibility.Collapsed; + //隐藏伪装网站 + TextBlockMaskSites.Visibility = Visibility.Collapsed; + TextBoxMaskSites.Visibility = Visibility.Collapsed; + + Guid uuid = Guid.NewGuid(); + TextBoxNewUUID.Text = uuid.ToString(); + + uuid = Guid.NewGuid(); + TextBoxQuicUUID.Text = uuid.ToString(); + + Random random = new Random(); + int randomServerPort = random.Next(10000, 50000); + TextBoxServerListenPort.Text = randomServerPort.ToString(); + //清除其他选项卡中的选项 + UncheckLayouts((TabItem)TabControlTemplate.SelectedItem); + } #endregion //产生随机的uuid diff --git a/ProxySU/bin/Release/ProxySU.exe b/ProxySU/bin/Release/ProxySU.exe index f18b754a32e2efea4bc8921f1881da79910aa67b..73d70d33308fcf1c11e83109cff34167ad713362 100644 GIT binary patch delta 19415 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 Ki?p>s{r>>f<{rNQ diff --git a/ProxySU/bin/Release/Release.zip b/ProxySU/bin/Release/Release.zip index 0781301e85bb371c49cdab46e21f465a3cdabe9c..74d4c79d6ad559fb6eaa7aeb3d38bbd7b48f0f73 100644 GIT binary patch delta 32964 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⩔Isi0 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

HL{t!SDZ9G6+Ip<8k4eluIhJ>c0p1IN_f!ZH>^E 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 gAO65nC&rcczjMICft?Kck1Vxc~qF delta 32599 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 I0RQ*@03{n8uK)l5 diff --git a/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_selfSigned_client_config.json b/ProxySU/bin/Release/TemplateConfg/WebSocketTLS_selfSigned_client_config.json similarity index 100% rename from ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_selfSigned_client_config.json rename to ProxySU/bin/Release/TemplateConfg/WebSocketTLS_selfSigned_client_config.json index 7f2d477..28d0957 100644 --- a/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_selfSigned_client_config.json +++ b/ProxySU/bin/Release/TemplateConfg/WebSocketTLS_selfSigned_client_config.json @@ -39,10 +39,10 @@ }, "streamSettings": { "network": "ws", - "security": "tls", "wsSettings": { "path": null }, + "security": "tls", "tlsSettings": { "allowInsecure": true } diff --git a/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_selfSigned_server_config.json b/ProxySU/bin/Release/TemplateConfg/WebSocketTLS_selfSigned_server_config.json similarity index 100% rename from ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_selfSigned_server_config.json rename to ProxySU/bin/Release/TemplateConfg/WebSocketTLS_selfSigned_server_config.json diff --git a/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_client_config.json b/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_client_config.json index bc33578..e5f2c6f 100644 --- a/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_client_config.json +++ b/ProxySU/bin/Release/TemplateConfg/WebSocket_TLS_client_config.json @@ -38,8 +38,8 @@ ] }, "streamSettings": { - "network": "ws", "security": "tls", + "network": "ws", "wsSettings": { "path": null } diff --git a/ProxySU/bin/Release/TemplateConfg/http2Web_client_config.json b/ProxySU/bin/Release/TemplateConfg/http2Web_client_config.json index ab763bb..69e2d6e 100644 --- a/ProxySU/bin/Release/TemplateConfg/http2Web_client_config.json +++ b/ProxySU/bin/Release/TemplateConfg/http2Web_client_config.json @@ -41,7 +41,10 @@ "network": "h2", "security": "tls", "httpSettings": { - "path": null + "path": null, + "host": [ + "" + ] } } } diff --git a/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.caddyfile b/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.caddyfile index 7490061..92e675a 100644 --- a/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.caddyfile +++ b/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.caddyfile @@ -3,7 +3,7 @@ errors stderr root /var/www tls off - ##sites## + ##sites## proxy ##path## https://localhost:10000 { insecure_skip_verify header_upstream Host {host} diff --git a/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.json b/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.json index 4efed3d..df87596 100644 --- a/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.json +++ b/ProxySU/bin/Release/TemplateConfg/http2Web_server_config.json @@ -16,7 +16,10 @@ "network": "h2", "security": "tls", "httpSettings": { - "path": null + "path": null, + "host": [ + "" + ] }, "tlsSettings": { "certificates": [ diff --git a/ProxySU/bin/Release/TemplateConfg/http2selfSigned_client_config.json b/ProxySU/bin/Release/TemplateConfg/http2selfSigned_client_config.json index ca23c19..a56ac4f 100644 --- a/ProxySU/bin/Release/TemplateConfg/http2selfSigned_client_config.json +++ b/ProxySU/bin/Release/TemplateConfg/http2selfSigned_client_config.json @@ -39,13 +39,13 @@ }, "streamSettings": { "network": "h2", - "security": "tls", "httpSettings": { "path": null }, + "security": "tls", "tlsSettings": { "allowInsecure": true - } + } } } ] diff --git a/ProxySU/bin/Release/TemplateConfg/mkcp_client_config.json b/ProxySU/bin/Release/TemplateConfg/mkcp_client_config.json index 1d05f3d..b3f6a50 100644 --- a/ProxySU/bin/Release/TemplateConfg/mkcp_client_config.json +++ b/ProxySU/bin/Release/TemplateConfg/mkcp_client_config.json @@ -40,13 +40,9 @@ "streamSettings": { "network": "kcp", "kcpSettings": { - "mtu": 1350, - "tti": 50, - "uplinkCapacity": 5, + "uplinkCapacity": 100, "downlinkCapacity": 100, "congestion": true, - "readBufferSize": 2, - "writeBufferSize": 2, "header": { "type": null } diff --git a/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json b/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json index 1b49271..d37266d 100644 --- a/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json +++ b/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json @@ -1,23 +1,22 @@ { - "inbounds": [ - - { - "port": null, - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": null, - "alterId": 64 - } - ] - } - } - ], - "outbounds": [ - { - "protocol": "freedom", - "settings": {} - } - ] + "inbounds": [ + { + "port": null, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": null, + "alterId": 64 + } + ] + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] } \ No newline at end of file