From 77cf7737f75ebb29d42f2b835ac982b88554479f Mon Sep 17 00:00:00 2001 From: next-autumn Date: Sat, 6 Mar 2021 17:26:17 +0800 Subject: [PATCH 01/16] save client info --- ProxySU_Core/ProxySU_Core.csproj | 7 ++++ .../ViewModels/XraySettingsViewModel.cs | 19 +++++++---- ProxySU_Core/Views/ClientInfoWindow.xaml | 24 ++++++++++++++ ProxySU_Core/Views/ClientInfoWindow.xaml.cs | 32 +++++++++++++++++++ ProxySU_Core/Views/MainWindow.xaml | 1 + ProxySU_Core/Views/MainWindow.xaml.cs | 26 +++++++++++++++ 6 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 ProxySU_Core/Views/ClientInfoWindow.xaml create mode 100644 ProxySU_Core/Views/ClientInfoWindow.xaml.cs diff --git a/ProxySU_Core/ProxySU_Core.csproj b/ProxySU_Core/ProxySU_Core.csproj index 1daf4c3..0ead6f4 100644 --- a/ProxySU_Core/ProxySU_Core.csproj +++ b/ProxySU_Core/ProxySU_Core.csproj @@ -201,6 +201,9 @@ + + ClientInfoWindow.xaml + MainWindow.xaml @@ -342,6 +345,10 @@ MSBuild:Compile Designer + + Designer + MSBuild:Compile + MSBuild:Compile Designer diff --git a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs b/ProxySU_Core/ViewModels/XraySettingsViewModel.cs index 3bf4ef3..1df53d4 100644 --- a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs +++ b/ProxySU_Core/ViewModels/XraySettingsViewModel.cs @@ -76,7 +76,9 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.VLESS_TCP_TLS); + if (!settings.Types.Contains(XrayType.VLESS_TCP_TLS)) + settings.Types.Add(XrayType.VLESS_TCP_TLS); + } else { @@ -97,7 +99,8 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.VLESS_TCP_XTLS); + if (!settings.Types.Contains(XrayType.VLESS_TCP_XTLS)) + settings.Types.Add(XrayType.VLESS_TCP_XTLS); } else { @@ -117,7 +120,8 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.VLESS_WS_TLS); + if (!settings.Types.Contains(XrayType.VLESS_WS_TLS)) + settings.Types.Add(XrayType.VLESS_WS_TLS); } else { @@ -138,7 +142,8 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.VMESS_TCP_TLS); + if (!settings.Types.Contains(XrayType.VMESS_TCP_TLS)) + settings.Types.Add(XrayType.VMESS_TCP_TLS); } else { @@ -159,7 +164,8 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.VMESS_WS_TLS); + if (!settings.Types.Contains(XrayType.VMESS_WS_TLS)) + settings.Types.Add(XrayType.VMESS_WS_TLS); } else { @@ -180,7 +186,8 @@ namespace ProxySU_Core.ViewModels { if (value == true) { - settings.Types.Add(XrayType.Trojan_TCP_TLS); + if (!settings.Types.Contains(XrayType.Trojan_TCP_TLS)) + settings.Types.Add(XrayType.Trojan_TCP_TLS); } else { diff --git a/ProxySU_Core/Views/ClientInfoWindow.xaml b/ProxySU_Core/Views/ClientInfoWindow.xaml new file mode 100644 index 0000000..5e01deb --- /dev/null +++ b/ProxySU_Core/Views/ClientInfoWindow.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + diff --git a/ProxySU_Core/Views/ClientInfoWindow.xaml.cs b/ProxySU_Core/Views/ClientInfoWindow.xaml.cs new file mode 100644 index 0000000..00a0f5d --- /dev/null +++ b/ProxySU_Core/Views/ClientInfoWindow.xaml.cs @@ -0,0 +1,32 @@ +using ProxySU_Core.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace ProxySU_Core.Views +{ + /// + /// ClientInfoWindow.xaml 的交互逻辑 + /// + public partial class ClientInfoWindow + { + Record Record { get; set; } + public ClientInfoWindow(Record record) + { + InitializeComponent(); + this.Record = record; + + DataContext = this.Record; + } + } +} diff --git a/ProxySU_Core/Views/MainWindow.xaml b/ProxySU_Core/Views/MainWindow.xaml index 22e7029..4860593 100644 --- a/ProxySU_Core/Views/MainWindow.xaml +++ b/ProxySU_Core/Views/MainWindow.xaml @@ -96,6 +96,7 @@ diff --git a/ProxySU_Core/packages.config b/ProxySU_Core/packages.config index 1c6357a..43548b5 100644 --- a/ProxySU_Core/packages.config +++ b/ProxySU_Core/packages.config @@ -1,12 +1,11 @@  - - - + + - + \ No newline at end of file From b5978e738d1f9fce229afc83c0dc98f1be44a82f Mon Sep 17 00:00:00 2001 From: next-autumn Date: Tue, 9 Mar 2021 18:18:29 +0800 Subject: [PATCH 05/16] merge --- ProxySU_Core/ViewModels/Developers/Project.cs | 4 +++- ProxySU_Core/Views/TerminalWindow.xaml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ProxySU_Core/ViewModels/Developers/Project.cs b/ProxySU_Core/ViewModels/Developers/Project.cs index dc6cce5..ed785e8 100644 --- a/ProxySU_Core/ViewModels/Developers/Project.cs +++ b/ProxySU_Core/ViewModels/Developers/Project.cs @@ -359,12 +359,14 @@ namespace ProxySU_Core.ViewModels.Developers { RunCmd("dnf install 'dnf-command(copr)'"); RunCmd("dnf copr enable @caddy/caddy"); + RunCmd(GetUpdateCmd()); RunCmd("dnf install caddy"); } else if (CmdType == CmdType.Yum) { - RunCmd("yum install yum-plugin-copr"); + RunCmd("y | yum install yum-plugin-copr"); RunCmd("yum copr enable @caddy/caddy"); + RunCmd(GetUpdateCmd()); RunCmd("yum install caddy"); } } diff --git a/ProxySU_Core/Views/TerminalWindow.xaml b/ProxySU_Core/Views/TerminalWindow.xaml index 0820d2d..a1fcfbd 100644 --- a/ProxySU_Core/Views/TerminalWindow.xaml +++ b/ProxySU_Core/Views/TerminalWindow.xaml @@ -54,7 +54,7 @@ Themezy - Themezy + One Page Love HTML5 UP From 25f322d35c83c2397cada88f449bbd1e691e2ff0 Mon Sep 17 00:00:00 2001 From: next-autumn Date: Tue, 9 Mar 2021 19:02:14 +0800 Subject: [PATCH 06/16] fix centos install caddy issue --- ProxySU_Core/ViewModels/Developers/Project.cs | 54 ++++++++++--------- .../ViewModels/Developers/XrayProject.cs | 18 ++++++- ProxySU_Core/Views/TerminalWindow.xaml | 7 +++ ProxySU_Core/Views/TerminalWindow.xaml.cs | 8 +++ 4 files changed, 61 insertions(+), 26 deletions(-) diff --git a/ProxySU_Core/ViewModels/Developers/Project.cs b/ProxySU_Core/ViewModels/Developers/Project.cs index ed785e8..73057f8 100644 --- a/ProxySU_Core/ViewModels/Developers/Project.cs +++ b/ProxySU_Core/ViewModels/Developers/Project.cs @@ -347,28 +347,32 @@ namespace ProxySU_Core.ViewModels.Developers /// protected void InstallCaddy() { - if (CmdType == CmdType.Apt) - { - RunCmd("sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https"); - RunCmd("curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -"); - RunCmd("curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list"); - RunCmd("sudo apt update"); - RunCmd("sudo apt install caddy"); - } - else if (CmdType == CmdType.Dnf) - { - RunCmd("dnf install 'dnf-command(copr)'"); - RunCmd("dnf copr enable @caddy/caddy"); - RunCmd(GetUpdateCmd()); - RunCmd("dnf install caddy"); - } - else if (CmdType == CmdType.Yum) - { - RunCmd("y | yum install yum-plugin-copr"); - RunCmd("yum copr enable @caddy/caddy"); - RunCmd(GetUpdateCmd()); - RunCmd("yum install caddy"); - } + RunCmd("rm -rf caddy_install.sh"); + RunCmd("curl -o caddy_install.sh https://raw.githubusercontent.com/proxysu/shellscript/master/Caddy-Naive/caddy-naive-install.sh"); + RunCmd("yes | bash caddy_install.sh"); + + //if (CmdType == CmdType.Apt) + //{ + // RunCmd("sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https"); + // RunCmd("curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -"); + // RunCmd("curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list"); + // RunCmd(GetUpdateCmd()); + // RunCmd("sudo apt install caddy"); + //} + //else if (CmdType == CmdType.Dnf) + //{ + // RunCmd("echo y | dnf install 'dnf-command(copr)'"); + // RunCmd("echo y | dnf copr enable @caddy/caddy"); + // RunCmd(GetUpdateCmd()); + // RunCmd("dnf install caddy"); + //} + //else if (CmdType == CmdType.Yum) + //{ + // RunCmd("echo y | echo y | yum install yum-plugin-copr"); + // RunCmd("echo y | echo y | yum copr enable @caddy/caddy"); + // RunCmd(GetUpdateCmd()); + // RunCmd("yum install caddy"); + //} } @@ -526,15 +530,15 @@ namespace ProxySU_Core.ViewModels.Developers { if (CmdType == CmdType.Apt) { - return "apt-get update "; + return "echo y | apt-get update "; } else if (CmdType == CmdType.Dnf) { - return "dnf clean all;dnf makecache"; + return "echo y | dnf update "; } else if (CmdType == CmdType.Yum) { - return "yum clean all;yum makecache"; + return "echo y | yum update "; } throw new Exception("未识别的系统"); diff --git a/ProxySU_Core/ViewModels/Developers/XrayProject.cs b/ProxySU_Core/ViewModels/Developers/XrayProject.cs index cd0cf31..802bc3e 100644 --- a/ProxySU_Core/ViewModels/Developers/XrayProject.cs +++ b/ProxySU_Core/ViewModels/Developers/XrayProject.cs @@ -35,16 +35,32 @@ namespace ProxySU_Core.ViewModels.Developers EnsureSystemEnv(); this.InstallCertToXray(); RunCmd("systemctl restart xray"); + WriteOutput("安装证书完成"); } public void UploadWeb(Stream stream) { EnsureRootAuth(); EnsureSystemEnv(); + if (!FileExists("/usr/share/caddy")) + { + RunCmd("mkdir /usr/share/caddy"); + } RunCmd("rm -rf /usr/share/caddy/*"); UploadFile(stream, "/usr/share/caddy/caddy.zip"); RunCmd("unzip /usr/share/caddy/caddy.zip -d /usr/share/caddy"); RunCmd("chmod -R 777 /usr/share/caddy"); + RunCmd("systemctl restart caddy"); + WriteOutput("上传网站模板完成"); + } + + public void ReinstallCaddy() + { + EnsureRootAuth(); + EnsureSystemEnv(); + InstallCaddy(); + UploadCaddyFile(); + WriteOutput("重装Caddy完成"); } @@ -157,7 +173,7 @@ namespace ProxySU_Core.ViewModels.Developers RunCmd(GetInstallCmd("socat")); // 解决搬瓦工CentOS缺少问题 - RunCmd("y | " + GetInstallCmd("automake autoconf libtool")); + RunCmd("echo y | " + GetInstallCmd("automake autoconf libtool")); // 安装Acme var result = RunCmd($"curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m {GetRandomEmail()}"); diff --git a/ProxySU_Core/Views/TerminalWindow.xaml b/ProxySU_Core/Views/TerminalWindow.xaml index a1fcfbd..89d9b7c 100644 --- a/ProxySU_Core/Views/TerminalWindow.xaml +++ b/ProxySU_Core/Views/TerminalWindow.xaml @@ -46,6 +46,13 @@ Width="120" IsEnabled="{Binding HasConnected}" Click="UploadWeb"/> + +