diff --git a/ProxySU/MainWindow.xaml b/ProxySU/MainWindow.xaml index 55a5b89..763f455 100644 --- a/ProxySU/MainWindow.xaml +++ b/ProxySU/MainWindow.xaml @@ -410,7 +410,7 @@ - + diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index 171e93e..b7a823d 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -311,7 +311,7 @@ namespace ProxySU } #endregion - #region 界面控件的有效无效控制代码块 + #region 主界面控件的有效无效控制代码块 private void RadioButtonNoProxy_Checked(object sender, RoutedEventArgs e) { TextBlockProxyHost.IsEnabled = false; @@ -783,6 +783,10 @@ namespace ProxySU if (serverConfig.Contains("mkcp") == true) { serverJson["inbounds"][0]["streamSettings"]["kcpSettings"]["header"]["type"] = ReceiveConfigurationParameters[5]; + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[6])==false ) + { + serverJson["inbounds"][0]["streamSettings"]["kcpSettings"]["seed"] = ReceiveConfigurationParameters[6]; + } } //quic模式下设置伪装类型及密钥 if (serverConfig.Contains("quic") == true) @@ -823,13 +827,13 @@ namespace ProxySU { client.RunCommand("ufw allow 80"); client.RunCommand("ufw allow 443"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } else { client.RunCommand($"ufw allow {openFireWallPort}/tcp"); client.RunCommand($"ufw allow {openFireWallPort}/udp"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } } @@ -987,6 +991,10 @@ namespace ProxySU if (clientConfig.Contains("mkcp")==true) { clientJson["outbounds"][0]["streamSettings"]["kcpSettings"]["header"]["type"] = ReceiveConfigurationParameters[5]; + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[6]) == false) + { + clientJson["outbounds"][0]["streamSettings"]["kcpSettings"]["seed"] = ReceiveConfigurationParameters[6]; + } } if (clientConfig.Contains("quic") == true) { @@ -1703,13 +1711,13 @@ namespace ProxySU { client.RunCommand("ufw allow 80"); client.RunCommand("ufw allow 443"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } else { client.RunCommand($"ufw allow {openFireWallPort}/tcp"); client.RunCommand($"ufw allow {openFireWallPort}/udp"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } } @@ -2321,13 +2329,13 @@ namespace ProxySU //{ client.RunCommand("ufw allow 80"); client.RunCommand("ufw allow 443"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); //} //else //{ // client.RunCommand($"ufw allow {openFireWallPort}/tcp"); // client.RunCommand($"ufw allow {openFireWallPort}/udp"); - // client.RunCommand("yes | ufw reset"); + // client.RunCommand("yes | ufw reload"); //} } @@ -2885,13 +2893,13 @@ namespace ProxySU { client.RunCommand("ufw allow 80"); client.RunCommand("ufw allow 443"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } else { client.RunCommand($"ufw allow {openFireWallPort}/tcp"); client.RunCommand($"ufw allow {openFireWallPort}/udp"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } } @@ -4229,7 +4237,7 @@ namespace ProxySU client.RunCommand("ufw allow 80"); client.RunCommand("ufw allow 443"); - client.RunCommand("yes | ufw reset"); + client.RunCommand("yes | ufw reload"); } currentStatus = "符合安装要求,V2ray安装中......"; diff --git a/ProxySU/Properties/AssemblyInfo.cs b/ProxySU/Properties/AssemblyInfo.cs index 6dd97a4..17b2ff3 100644 --- a/ProxySU/Properties/AssemblyInfo.cs +++ b/ProxySU/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.7.1.0")] -[assembly: AssemblyFileVersion("1.7.1.0")] +[assembly: AssemblyVersion("1.7.2.0")] +[assembly: AssemblyFileVersion("1.7.2.0")] diff --git a/ProxySU/ResultClientInformation.xaml b/ProxySU/ResultClientInformation.xaml index ebb4d60..ba6af55 100644 --- a/ProxySU/ResultClientInformation.xaml +++ b/ProxySU/ResultClientInformation.xaml @@ -66,7 +66,7 @@ - + diff --git a/ProxySU/ResultClientInformation.xaml.cs b/ProxySU/ResultClientInformation.xaml.cs index 5c87506..ffb2912 100644 --- a/ProxySU/ResultClientInformation.xaml.cs +++ b/ProxySU/ResultClientInformation.xaml.cs @@ -143,49 +143,55 @@ namespace ProxySU { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "none"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2SRTP")) { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "srtp"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCPuTP")) { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "utp"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2WechatVideo")) { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "wechat-video"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2DTLS")) { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "dtls"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "mKCP2WireGuard")) { TextBoxTransmission.Text = "kcp"; TextBoxCamouflageType.Text = "wireguard"; + TextBoxQuicKey.Text = MainWindow.ReceiveConfigurationParameters[6]; TextBoxTLS.Text = "none"; HidePath(); - HideQuicKey(); + ShowQuicKey(); } else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "QuicNone")) { @@ -383,7 +389,7 @@ namespace ProxySU sw.WriteLine($"是否使用TLS:{TextBoxTLS.Text}"); sw.WriteLine($"host:{TextBoxHostAddress.Text}"); sw.WriteLine($"路径(Path):{TextBoxPath.Text}"); - sw.WriteLine($"QUIC密钥:{TextBoxQuicKey.Text}"); + sw.WriteLine($"mKCP/QUIC密钥:{TextBoxQuicKey.Text}"); } diff --git a/ProxySU/TemplateConfiguration.xaml b/ProxySU/TemplateConfiguration.xaml index a9a2e3c..05d9287 100644 --- a/ProxySU/TemplateConfiguration.xaml +++ b/ProxySU/TemplateConfiguration.xaml @@ -173,17 +173,17 @@ - + - + - + - + - + - + @@ -247,23 +247,25 @@ - + - + - + - + + + - + - + diff --git a/ProxySU/TemplateConfiguration.xaml.cs b/ProxySU/TemplateConfiguration.xaml.cs index 3aecfc5..18f6f25 100644 --- a/ProxySU/TemplateConfiguration.xaml.cs +++ b/ProxySU/TemplateConfiguration.xaml.cs @@ -217,6 +217,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCPNone"; MainWindow.ReceiveConfigurationParameters[5] = "none"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text)==false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //mKCP+srtp伪装模式被选中 else if (RadioButton2mKCP2SRTP.IsChecked == true) @@ -224,6 +228,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2SRTP"; MainWindow.ReceiveConfigurationParameters[5] = "srtp"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text) == false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //mKCP+utp伪装模式被选中 else if (RadioButton2mKCPuTP.IsChecked == true) @@ -231,6 +239,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCPuTP"; MainWindow.ReceiveConfigurationParameters[5] = "utp"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text) == false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //mKCP+wechat-video伪装模式被选中 else if (RadioButton2mKCP2WechatVideo.IsChecked == true) @@ -238,6 +250,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2WechatVideo"; MainWindow.ReceiveConfigurationParameters[5] = "wechat-video"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text) == false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //mKCP+dtls伪装模式被选中 else if (RadioButton2mKCP2DTLS.IsChecked == true) @@ -245,6 +261,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2DTLS"; MainWindow.ReceiveConfigurationParameters[5] = "dtls"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text) == false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //mKCP+wireguard伪装模式被选中 else if (RadioButton2mKCP2WireGuard.IsChecked == true) @@ -252,6 +272,10 @@ namespace ProxySU //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2WireGuard"; MainWindow.ReceiveConfigurationParameters[5] = "wireguard"; + if (String.IsNullOrEmpty(TextBoxQuicUUID.Text) == false) + { + MainWindow.ReceiveConfigurationParameters[6] = TextBoxQuicUUID.Text; + } } //QUIC无伪装模式被选中 else if (RadioButtonQuicNone.IsChecked == true) diff --git a/ProxySU/bin/Beta/Beta.zip b/ProxySU/bin/Beta/Beta.zip index 29b95d6..29e632b 100644 Binary files a/ProxySU/bin/Beta/Beta.zip and b/ProxySU/bin/Beta/Beta.zip differ diff --git a/TemplateConfg/mkcp_client_config.json b/TemplateConfg/mkcp_client_config.json index b3f6a50..28f650b 100644 --- a/TemplateConfg/mkcp_client_config.json +++ b/TemplateConfg/mkcp_client_config.json @@ -45,7 +45,8 @@ "congestion": true, "header": { "type": null - } + }, + "seed": null } } } diff --git a/TemplateConfg/mkcp_server_config.json b/TemplateConfg/mkcp_server_config.json index ec5ce25..d34f632 100644 --- a/TemplateConfg/mkcp_server_config.json +++ b/TemplateConfg/mkcp_server_config.json @@ -1,33 +1,34 @@ { - "inbounds": [ - { - "port": null, - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": null, - "alterId": 64 - } - ] - }, - "streamSettings": { - "network": "mkcp", - "kcpSettings": { - "uplinkCapacity": 100, - "downlinkCapacity": 100, - "congestion": true, - "header": { - "type": null - } - } - } - } - ], - "outbounds": [ - { - "protocol": "freedom", - "settings": {} - } - ] + "inbounds": [ + { + "port": null, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": null, + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "mkcp", + "kcpSettings": { + "uplinkCapacity": 100, + "downlinkCapacity": 100, + "congestion": true, + "header": { + "type": null + }, + "seed": null + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] } \ No newline at end of file