From a6ff33e007e156d8468ac31b847679c33ebe97f1 Mon Sep 17 00:00:00 2001 From: ProxySU Date: Wed, 3 Jun 2020 22:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBBR=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E6=97=B6=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProxySU/MainWindow.xaml | 16 +- ProxySU/MainWindow.xaml.cs | 591 ++++++++++++++++++++++++++++- ProxySU/Properties/AssemblyInfo.cs | 4 +- ProxySU/bin/Beta/Beta.zip | Bin 490027 -> 490383 bytes 4 files changed, 599 insertions(+), 12 deletions(-) diff --git a/ProxySU/MainWindow.xaml b/ProxySU/MainWindow.xaml index c113bb2..9cdc911 100644 --- a/ProxySU/MainWindow.xaml +++ b/ProxySU/MainWindow.xaml @@ -68,10 +68,10 @@ - - - - + + + + @@ -134,7 +134,7 @@ - + @@ -152,7 +152,9 @@ @@ -385,7 +387,7 @@ - + diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index 246520f..9752945 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -172,7 +172,7 @@ namespace ProxySU return connectionInfo; } - //开始布署安装 + //开始布署安装V2ray private void Button_Login_Click(object sender, RoutedEventArgs e) { @@ -1907,6 +1907,591 @@ namespace ProxySU } + //打开设置TrojanGo的窗口 + private void ButtonTrojanGoTemplate_Click(object sender, RoutedEventArgs e) + { + for (int i = 0; i != ReceiveConfigurationParameters.Length; i++) + + { + ReceiveConfigurationParameters[i] = ""; + } + TrojanTemplateWindow windowTrojanTemplateConfiguration = new TrojanTemplateWindow(); + windowTrojanTemplateConfiguration.ShowDialog(); + } + //Trojan一键安装 + private void ButtonTrojanGoSetUp_Click(object sender, RoutedEventArgs e) + { + ConnectionInfo connectionInfo = GenerateConnectionInfo(); + if (connectionInfo == null) + { + MessageBox.Show("远程主机连接信息有误,请检查"); + return; + } + string serverConfig = ""; //服务端配置文件 + string clientConfig = ""; //生成的客户端配置文件 + string upLoadPath = "/usr/local/etc/trojan/config.json"; //服务端文件位置 + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[4]) == true) + { + ReceiveConfigurationParameters[4] = TextBoxHost.Text.ToString(); + } + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[0]) == true) + { + MessageBox.Show("请先选择配置模板!"); + return; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "TrojanTLS2Web")) + { + serverConfig = "TemplateConfg\\trojan_server_config.json"; + clientConfig = "TemplateConfg\\trojan_client_config.json"; + } + Thread thread = new Thread(() => StartSetUpTrojan(connectionInfo, TextBlockSetUpProcessing, ProgressBarSetUpProcessing, serverConfig, clientConfig, upLoadPath)); + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + } + + //登录远程主机布署Trojan程序 + private void StartSetUpTrojanGo(ConnectionInfo connectionInfo, TextBlock textBlockName, ProgressBar progressBar, string serverConfig, string clientConfig, string upLoadPath) + { + string currentStatus = "正在登录远程主机......"; + Action updateAction = new Action(UpdateTextBlock); + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + + try + { + #region 主机指纹,暂未启用 + //byte[] expectedFingerPrint = new byte[] { + // 0x66, 0x31, 0xaf, 0x00, 0x54, 0xb9, 0x87, 0x31, + // 0xff, 0x58, 0x1c, 0x31, 0xb1, 0xa2, 0x4c, 0x6b + // }; + #endregion + using (var client = new SshClient(connectionInfo)) + + { + #region ssh登录验证主机指纹代码块,暂未启用 + // client.HostKeyReceived += (sender, e) => + // { + // if (expectedFingerPrint.Length == e.FingerPrint.Length) + // { + // for (var i = 0; i < expectedFingerPrint.Length; i++) + // { + // if (expectedFingerPrint[i] != e.FingerPrint[i]) + // { + // e.CanTrust = false; + // break; + // } + // } + // } + // else + // { + // e.CanTrust = false; + // } + // }; + #endregion + + client.Connect(); + if (client.IsConnected == true) + { + currentStatus = "主机登录成功"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + } + + //检测是否运行在root权限下 + string testRootAuthority = client.RunCommand(@"id -u").Result; + if (testRootAuthority.Equals("0\n") == false) + { + MessageBox.Show("请使用具有root权限的账户登录主机!!"); + client.Disconnect(); + return; + } + //检测是否安装有Trojan + currentStatus = "检测系统是否已经安装Trojan......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //string cmdTestTrojanInstalled = @"find / -name trojan"; + string resultCmdTestTrojanInstalled = client.RunCommand(@"find / -name trojan").Result; + + if (resultCmdTestTrojanInstalled.Contains("/usr/local/bin/trojan") == true) + { + MessageBoxResult messageBoxResult = MessageBox.Show("远程主机已安装Trojan,是否强制重新安装?", "", MessageBoxButton.YesNo, MessageBoxImage.Question); + if (messageBoxResult == MessageBoxResult.No) + { + currentStatus = "安装取消,退出"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + client.Disconnect(); + return; + } + } + + //检测远程主机系统环境是否符合要求 + currentStatus = "检测系统是否符合安装要求......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + string resultCmd = client.RunCommand("uname -m").Result; + //var result = client.RunCommand("cat /root/test.ver"); + //string[] linuxKernelVerStr = resultCmd.Split('-'); + + //bool detectResult = DetectKernelVersion(linuxKernelVerStr[0]); + + if (resultCmd.Contains("x86_64") == false) + { + MessageBox.Show($"请在x86_64系统中安装Trojan"); + currentStatus = "系统不符合要求,安装失败!!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + } + + //检测系统是否支持yum 或 apt-get或zypper,且支持Systemd + //如果不存在组件,则命令结果为空,string.IsNullOrEmpty值为真, + bool getApt = String.IsNullOrEmpty(client.RunCommand("command -v apt-get").Result); + bool getYum = String.IsNullOrEmpty(client.RunCommand("command -v yum").Result); + bool getZypper = String.IsNullOrEmpty(client.RunCommand("command -v zypper").Result); + bool getSystemd = String.IsNullOrEmpty(client.RunCommand("command -v systemctl").Result); + bool getGetenforce = String.IsNullOrEmpty(client.RunCommand("command -v getenforce").Result); + + //没有安装apt-get,也没有安装yum,也没有安装zypper,或者没有安装systemd的,不满足安装条件 + //也就是apt-get ,yum, zypper必须安装其中之一,且必须安装Systemd的系统才能安装。 + if ((getApt && getYum && getZypper) || getSystemd) + { + MessageBox.Show($"系统缺乏必要的安装组件如:apt-get||yum||zypper||Syetemd,主机系统推荐使用:CentOS 7/8,Debian 8/9/10,Ubuntu 16.04及以上版本"); + currentStatus = "系统环境不满足要求,安装失败!!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + client.Disconnect(); + return; + } + //判断是否启用了SELinux,如果启用了,并且工作在Enforcing模式下,则改为Permissive模式 + if (getGetenforce == false) + { + string testSELinux = client.RunCommand("getenforce").Result; + //MessageBox.Show(testSELinux); + if (testSELinux.Contains("Enforcing") == true) + { + //MessageBox.Show("Enforcing"); + client.RunCommand("setenforce 0");//不重启改为Permissive模式 + client.RunCommand("sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config");//重启也工作在Permissive模式下 + } + + } + + //如果使用如果是WebSocket + TLS + Web/http2/Http2Web/tcp_TLS/WebSocket_TLS模式,需要检测域名解析是否正确 + if (serverConfig.Contains("trojan_server") == true) + { + currentStatus = "正在检测域名是否解析到当前VPS的IP上......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //在相应系统内安装curl(如果没有安装curl) + if (string.IsNullOrEmpty(client.RunCommand("command -v curl").Result) == true) + { + //为假则表示系统有相应的组件。 + if (getApt == false) + { + client.RunCommand("apt-get -qq update"); + client.RunCommand("apt-get -y -qq install curl"); + } + if (getYum == false) + { + client.RunCommand("yum -q makecache"); + client.RunCommand("yum -y -q install curl"); + } + if (getZypper == false) + { + client.RunCommand("zypper ref"); + client.RunCommand("zypper -y install curl"); + } + } + + string nativeIp = client.RunCommand("curl -4 ip.sb").Result.ToString(); + //MessageBox.Show(nativeIp); + string testDomainCmd = "ping " + ReceiveConfigurationParameters[4] + " -c 1 | grep -oE -m1 \"([0-9]{1,3}\\.){3}[0-9]{1,3}\""; + //MessageBox.Show(testDomainCmd); + string resultTestDomainCmd = client.RunCommand(testDomainCmd).Result.ToString(); + //MessageBox.Show(resultTestDomainCmd); + if (String.Equals(nativeIp, resultTestDomainCmd) == true) + { + currentStatus = "解析正确!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + } + else + { + currentStatus = "域名未能正确解析到当前VPS的IP上!安装失败!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + MessageBox.Show("域名未能正确解析到当前VPS的IP上,请检查!若解析设置正确,请等待生效后再重试安装。如果域名使用了CDN,请先关闭!"); + client.Disconnect(); + return; + } + + } + if (serverConfig.Contains("trojan_server") == true) + { + //检测是否安装lsof + if (string.IsNullOrEmpty(client.RunCommand("command -v lsof").Result) == true) + { + //为假则表示系统有相应的组件。 + if (getApt == false) + { + client.RunCommand("apt-get -qq update"); + client.RunCommand("apt-get -y -qq install lsof"); + } + if (getYum == false) + { + client.RunCommand("yum -q makecache"); + client.RunCommand("yum -y -q install lsof"); + } + if (getZypper == false) + { + client.RunCommand("zypper ref"); + client.RunCommand("zypper -y install lsof"); + } + } + currentStatus = "正在检测端口占用情况......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + //MessageBox.Show(@"lsof -n -P -i :80 | grep LISTEN"); + //MessageBox.Show(client.RunCommand(@"lsof -n -P -i :80 | grep LISTEN").Result); + if (String.IsNullOrEmpty(client.RunCommand(@"lsof -n -P -i :80 | grep LISTEN").Result) == false || String.IsNullOrEmpty(client.RunCommand(@"lsof -n -P -i :443 | grep LISTEN").Result) == false) + { + MessageBoxResult dialogResult = MessageBox.Show("80/443端口之一,或全部被占用,将强制停止占用80/443端口的程序?", "Stop application", MessageBoxButton.YesNo); + if (dialogResult == MessageBoxResult.No) + { + currentStatus = "端口被占用,安装失败......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + client.Disconnect(); + return; + } + + currentStatus = "正在释放80/443端口......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + string cmdTestPort = @"lsof -n -P -i :443 | grep LISTEN"; + string cmdResult = client.RunCommand(cmdTestPort).Result; + //MessageBox.Show(cmdTestPort); + if (String.IsNullOrEmpty(cmdResult) == false) + { + //MessageBox.Show(cmdResult); + string[] cmdResultArry443 = cmdResult.Split(' '); + //MessageBox.Show(cmdResultArry443[3]); + client.RunCommand($"systemctl stop {cmdResultArry443[0]}"); + client.RunCommand($"systemctl disable {cmdResultArry443[0]}"); + client.RunCommand($"kill -9 {cmdResultArry443[3]}"); + } + + cmdTestPort = @"lsof -n -P -i :80 | grep LISTEN"; + cmdResult = client.RunCommand(cmdTestPort).Result; + if (String.IsNullOrEmpty(cmdResult) == false) + { + string[] cmdResultArry80 = cmdResult.Split(' '); + client.RunCommand($"systemctl stop {cmdResultArry80[0]}"); + client.RunCommand($"systemctl disable {cmdResultArry80[0]}"); + client.RunCommand($"kill -9 {cmdResultArry80[3]}"); + } + currentStatus = "80/443端口释放完毕!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + } + } + currentStatus = "符合安装要求,布署中......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //在相应系统内安装curl(如果没有安装curl) + if (string.IsNullOrEmpty(client.RunCommand("command -v curl").Result) == true) + { + //为假则表示系统有相应的组件。 + if (getApt == false) + { + client.RunCommand("apt-get -qq update"); + client.RunCommand("apt-get -y -qq install curl"); + } + if (getYum == false) + { + client.RunCommand("yum -q makecache"); + client.RunCommand("yum -y -q install curl"); + } + if (getZypper == false) + { + client.RunCommand("zypper ref"); + client.RunCommand("zypper -y install curl"); + } + } + + + //下载官方安装脚本安装 + + client.RunCommand("curl -o /tmp/trojan-quickstart.sh https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh"); + client.RunCommand("yes | bash /tmp/trojan-quickstart.sh"); + + string installResult = client.RunCommand("find / -name trojan").Result.ToString(); + + if (!installResult.Contains("/usr/local/bin/trojan")) + { + MessageBox.Show("安装Trojan失败(官方脚本运行出错!"); + client.Disconnect(); + currentStatus = "安装Trojan失败(官方脚本运行出错!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + client.Disconnect(); + return; + } + client.RunCommand("mv /usr/local/etc/trojan/config.json /usr/local/etc/trojan/config.json.1"); + + //上传配置文件 + currentStatus = "Trojan程序安装完毕,配置文件上传中......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //生成服务端配置 + using (StreamReader reader = File.OpenText(serverConfig)) + { + JObject serverJson = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); + //设置密码 + serverJson["password"][0] = ReceiveConfigurationParameters[2]; + //设置监听端口 + //serverJson["inbounds"][0]["port"] = int.Parse(ReceiveConfigurationParameters[1]); + + using (StreamWriter sw = new StreamWriter(@"config.json")) + { + sw.Write(serverJson.ToString()); + } + } + UploadConfig(connectionInfo, @"config.json", upLoadPath); + + File.Delete(@"config.json"); + + //打开防火墙端口 + string openFireWallPort = ReceiveConfigurationParameters[1]; + if (String.IsNullOrEmpty(client.RunCommand("command -v firewall-cmd").Result) == false) + { + if (String.Equals(openFireWallPort, "443")) + { + client.RunCommand("firewall-cmd --zone=public --add-port=80/tcp --permanent"); + client.RunCommand("firewall-cmd --zone=public --add-port=443/tcp --permanent"); + client.RunCommand("firewall-cmd --reload"); + } + else + { + client.RunCommand($"firewall-cmd --zone=public --add-port={openFireWallPort}/tcp --permanent"); + client.RunCommand($"firewall-cmd --zone=public --add-port={openFireWallPort}/udp --permanent"); + client.RunCommand("firewall-cmd --reload"); + } + } + if (String.IsNullOrEmpty(client.RunCommand("command -v ufw").Result) == false) + { + if (String.Equals(openFireWallPort, "443")) + { + client.RunCommand("ufw allow 80"); + client.RunCommand("ufw allow 443"); + client.RunCommand("yes | ufw reset"); + } + else + { + client.RunCommand($"ufw allow {openFireWallPort}/tcp"); + client.RunCommand($"ufw allow {openFireWallPort}/udp"); + client.RunCommand("yes | ufw reset"); + } + } + + + + if (serverConfig.Contains("trojan_server") == true) + { + currentStatus = "使用Trojan+TLS+Web模式,正在安装acme.sh......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + if (getApt == false) + { + //client.RunCommand("apt-get -qq update"); + client.RunCommand("apt-get -y -qq install socat"); + } + if (getYum == false) + { + //client.RunCommand("yum -q makecache"); + client.RunCommand("yum -y -q install socat"); + } + if (getZypper == false) + { + // client.RunCommand("zypper ref"); + client.RunCommand("zypper -y install socat"); + } + client.RunCommand("curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALLONLINE=1 sh"); + client.RunCommand("cd ~/.acme.sh/"); + client.RunCommand("alias acme.sh=~/.acme.sh/acme.sh"); + + currentStatus = "申请域名证书......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //client.RunCommand("mkdir -p /etc/v2ray/ssl"); + client.RunCommand($"/root/.acme.sh/acme.sh --issue --standalone -d {ReceiveConfigurationParameters[4]}"); + + currentStatus = "安装证书到Trojan......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + client.RunCommand($"/root/.acme.sh/acme.sh --installcert -d {ReceiveConfigurationParameters[4]} --certpath /usr/local/etc/trojan/trojan_ssl.crt --keypath /usr/local/etc/trojan/trojan_ssl.key --capath /usr/local/etc/trojan/trojan_ssl.crt --reloadcmd \"systemctl restart trojan\""); + } + + currentStatus = "正在启动Trojan......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + //启动V2ray服务 + client.RunCommand("systemctl restart trojan"); + + currentStatus = "Trojan启动成功!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //安装Caddy + if (serverConfig.Contains("trojan_server") == true) + { + currentStatus = "正在安装Caddy"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + client.RunCommand("curl https://getcaddy.com -o getcaddy"); + client.RunCommand("bash getcaddy personal hook.service"); + client.RunCommand("mkdir -p /etc/caddy"); + client.RunCommand("mkdir -p /var/www"); + + + currentStatus = "上传Caddy配置文件......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + string caddyConfig = ""; + if (serverConfig.Contains("trojan_server") == true) + { + caddyConfig = "TemplateConfg\\trojan_caddy_config.caddyfile"; + } + + upLoadPath = "/etc/caddy/Caddyfile"; + UploadConfig(connectionInfo, caddyConfig, upLoadPath); + + //设置Caddyfile文件中的tls 邮箱 + + string email = $"user@{ReceiveConfigurationParameters[4]}"; + string sshCmd; + //设置域名 + sshCmd = $"sed -i 's/##domain##/{ReceiveConfigurationParameters[4]}:80/' {upLoadPath}"; + //MessageBox.Show(sshCmd); + client.RunCommand(sshCmd); + //设置伪装网站 + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[7]) == false) + { + sshCmd = $"sed -i 's/##sites##/proxy \\/ {ReceiveConfigurationParameters[7]}/' {upLoadPath}"; + //MessageBox.Show(sshCmd); + client.RunCommand(sshCmd); + } + Thread.Sleep(2000); + + //安装Caddy服务 + sshCmd = $"caddy -service install -agree -conf /etc/caddy/Caddyfile -email {email}"; + //MessageBox.Show(sshCmd); + client.RunCommand(sshCmd); + + + //启动Caddy服务 + client.RunCommand("caddy -service restart"); + } + + //测试BBR条件,若满足提示是否启用 + var result = client.RunCommand("uname -r"); + //var result = client.RunCommand("cat /root/test.ver"); + string[] linuxKernelVerStr = result.Result.Split('-'); + + bool detectResult = DetectKernelVersionBBR(linuxKernelVerStr[0]); + string resultCmdTestBBR = client.RunCommand(@"sysctl net.ipv4.tcp_congestion_control | grep bbr").Result; + //如果内核满足大于等于4.9,且还未启用BBR,则启用BBR + if (detectResult == true && resultCmdTestBBR.Contains("bbr") == false) + { + client.RunCommand(@"bash - c 'echo ""net.core.default_qdisc = fq"" >> /etc/sysctl.conf'"); + client.RunCommand(@"bash - c 'echo ""net.ipv4.tcp_congestion_control = bbr"" >> /etc/sysctl.conf'"); + client.RunCommand(@"sysctl -p"); + } + + //生成客户端配置 + currentStatus = "生成客户端配置......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + if (!Directory.Exists("trojan_config"))//如果不存在就创建file文件夹      + { + Directory.CreateDirectory("trojan_config");//创建该文件夹   + } + //string clientConfig = "TemplateConfg\\tcp_client_config.json"; + using (StreamReader reader = File.OpenText(clientConfig)) + { + JObject clientJson = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); + + clientJson["remote_addr"] = ReceiveConfigurationParameters[4]; + clientJson["remote_port"] = int.Parse(ReceiveConfigurationParameters[1]); + clientJson["password"][0] = ReceiveConfigurationParameters[2]; + + using (StreamWriter sw = new StreamWriter(@"trojan_config\config.json")) + { + sw.Write(clientJson.ToString()); + } + } + + client.Disconnect(); + + currentStatus = "安装成功"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + //显示服务端连接参数 + //MessageBox.Show("用于Trojan官方客户端的配置文件已保存在config文件夹中"); + TrojanResultClientInfoWindow resultClientInformation = new TrojanResultClientInfoWindow(); + resultClientInformation.ShowDialog(); + + return; + } + } + catch (Exception ex1)//例外处理 + #region 例外处理 + { + //MessageBox.Show(ex1.Message); + if (ex1.Message.Contains("连接尝试失败") == true) + { + MessageBox.Show($"{ex1.Message}\n请检查主机地址及端口是否正确,如果通过代理,请检查代理是否正常工作"); + } + + else if (ex1.Message.Contains("denied (password)") == true) + { + MessageBox.Show($"{ex1.Message}\n密码错误或用户名错误"); + } + else if (ex1.Message.Contains("Invalid private key file") == true) + { + MessageBox.Show($"{ex1.Message}\n所选密钥文件错误或者格式不对"); + } + else if (ex1.Message.Contains("denied (publickey)") == true) + { + MessageBox.Show($"{ex1.Message}\n使用密钥登录,密钥文件错误或用户名错误"); + } + else if (ex1.Message.Contains("目标计算机积极拒绝") == true) + { + MessageBox.Show($"{ex1.Message}\n主机地址错误,如果使用了代理,也可能是连接代理的端口错误"); + } + else + { + MessageBox.Show("发生错误"); + MessageBox.Show(ex1.Message); + } + currentStatus = "主机登录失败"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + + } + #endregion + + } + //更新NaiveProxy的密码 private void ButtonNaivePassword_Click(object sender, RoutedEventArgs e) { @@ -2568,8 +3153,8 @@ namespace ProxySU //启用BBR - client.RunCommand(@"bash - c 'echo ""net.core.default_qdisc = fq"" >> /etc/sysctl.conf'"); - client.RunCommand(@"bash - c 'echo ""net.ipv4.tcp_congestion_control = bbr"" >> /etc/sysctl.conf'"); + client.RunCommand(@"bash -c 'echo ""net.core.default_qdisc=fq"" >> /etc/sysctl.conf'"); + client.RunCommand(@"bash -c 'echo ""net.ipv4.tcp_congestion_control=bbr"" >> /etc/sysctl.conf'"); client.RunCommand(@"sysctl -p"); resultCmdTestBBR = client.RunCommand(@"sysctl net.ipv4.tcp_congestion_control | grep bbr").Result; diff --git a/ProxySU/Properties/AssemblyInfo.cs b/ProxySU/Properties/AssemblyInfo.cs index 33f87d8..34e53bb 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.6.3.0")] -[assembly: AssemblyFileVersion("1.6.3.0")] +[assembly: AssemblyVersion("1.6.4.0")] +[assembly: AssemblyFileVersion("1.6.4.0")] diff --git a/ProxySU/bin/Beta/Beta.zip b/ProxySU/bin/Beta/Beta.zip index 83642623f72784535cca18b2635177788cf3d755..91faeca1967c71ce35efbcb62976a26d00b65d18 100644 GIT binary patch delta 43839 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 L>1&n%=)3;|_z(kn delta 43565 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%0ArF~@AJr?MUc2MtIcY$9 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 A_5c6?