diff --git a/ProxySU_Core/ProxySU_Core.csproj b/ProxySU_Core/ProxySU_Core.csproj index 0ead6f4..5472cad 100644 --- a/ProxySU_Core/ProxySU_Core.csproj +++ b/ProxySU_Core/ProxySU_Core.csproj @@ -233,9 +233,6 @@ ResXFileCodeGenerator Resources.Designer.cs - - PreserveNewest - SettingsSingleFileGenerator @@ -362,6 +359,9 @@ Designer + + + diff --git a/ProxySU_Core/Templates/xray/server/01_api/01_api.json b/ProxySU_Core/Templates/xray/server/01_api/01_api.json index aa1982b..34c6b17 100644 --- a/ProxySU_Core/Templates/xray/server/01_api/01_api.json +++ b/ProxySU_Core/Templates/xray/server/01_api/01_api.json @@ -1,3 +1,3 @@ { - "api": null + "api": {} } \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/08_stats/08_stats.json b/ProxySU_Core/Templates/xray/server/08_stats/08_stats.json index 02c9ed0..b406e15 100644 --- a/ProxySU_Core/Templates/xray/server/08_stats/08_stats.json +++ b/ProxySU_Core/Templates/xray/server/08_stats/08_stats.json @@ -1,3 +1,3 @@ { - "stats": null + "stats": {} } \ No newline at end of file diff --git a/ProxySU_Core/ViewModels/Developers/ConfigBuilder.cs b/ProxySU_Core/ViewModels/Developers/ConfigBuilder.cs index 8946378..e375ad7 100644 --- a/ProxySU_Core/ViewModels/Developers/ConfigBuilder.cs +++ b/ProxySU_Core/ViewModels/Developers/ConfigBuilder.cs @@ -48,7 +48,7 @@ namespace ProxySU_Core.ViewModels.Developers return new { log = logObj["log"], - api = apiObj["api"], + //api = apiObj["api"], api不能为空 dns = dnsObj["dns"], routing = routingObj["routing"], policy = policyObj["policy"], @@ -63,14 +63,14 @@ namespace ProxySU_Core.ViewModels.Developers public static string BuildCaddyConfig(XraySettings parameters) { var caddyStr = File.ReadAllText(Path.Combine(CaddyFileDir, "base.caddyfile")); - caddyStr.Replace("##domain##", parameters.Domain); + caddyStr = caddyStr.Replace("##domain##", parameters.Domain); if (!string.IsNullOrEmpty(parameters.MaskDomain)) { - caddyStr.Replace("##server_proxy##", $"reverse_proxy http://{parameters.MaskDomain} {{ header_up Host {parameters.MaskDomain} }}"); + caddyStr = caddyStr.Replace("##reverse_proxy##", $"reverse_proxy http://{parameters.MaskDomain} {{ header_up Host {parameters.MaskDomain} }}"); } else { - caddyStr.Replace("##server_proxy##", ""); + caddyStr = caddyStr.Replace("##reverse_proxy##", ""); } return caddyStr; diff --git a/ProxySU_Core/ViewModels/Developers/XrayProject.cs b/ProxySU_Core/ViewModels/Developers/XrayProject.cs index b605860..420cad9 100644 --- a/ProxySU_Core/ViewModels/Developers/XrayProject.cs +++ b/ProxySU_Core/ViewModels/Developers/XrayProject.cs @@ -106,6 +106,7 @@ namespace ProxySU_Core.ViewModels.Developers var stream = new MemoryStream(Encoding.UTF8.GetBytes(configJson)); RunCmd("rm -rf /usr/local/etc/xray/config.json"); UploadFile(stream, "/usr/local/etc/xray/config.json"); + RunCmd("systemctl restart xray"); } private void InstallCertToXray() @@ -114,7 +115,7 @@ namespace ProxySU_Core.ViewModels.Developers RunCmd(GetInstallCmd("socat")); // 解决搬瓦工CentOS缺少问题 - RunCmd(GetInstallCmd("automake autoconf libtool")); + RunCmd("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()}"); @@ -153,7 +154,7 @@ namespace ProxySU_Core.ViewModels.Developers // 安装证书到xray RunCmd("mkdir -p /usr/local/etc/xray/ssl"); - RunCmd($"/root/.acme.sh/acme.sh --installcert -d {Parameters.Domain} --certpath /usr/local/etc/xray/ssl/xray_ssl.crt --keypath /usr/local/etc/xray/ssl/xray_ssl.key --capath /usr/local/etc/xray/ssl/xray_ssl.crt --reloadcmd \"systemctl restart xray\""); + RunCmd($"/root/.acme.sh/acme.sh --installcert -d {Parameters.Domain} --certpath /usr/local/etc/xray/ssl/xray_ssl.crt --keypath /usr/local/etc/xray/ssl/xray_ssl.key --capath /usr/local/etc/xray/ssl/xray_ssl.crt"); result = RunCmd(@"if [ ! -f ""/usr/local/etc/xray/ssl/xray_ssl.key"" ]; then echo ""0""; else echo ""1""; fi | head -n 1"); if (result.Contains("1")) { @@ -164,8 +165,7 @@ namespace ProxySU_Core.ViewModels.Developers throw new Exception("安装证书失败,请联系开发者!"); } - - RunCmd(@"chmod 644 /usr/local/etc/xray/ssl/xray_ssl.key"); + RunCmd(@"chmod 755 /usr/local/etc/xray/ssl"); } private string GetRandomEmail() diff --git a/ProxySU_Core/Views/MainWindow.xaml.cs b/ProxySU_Core/Views/MainWindow.xaml.cs index 1f8a29f..a661070 100644 --- a/ProxySU_Core/Views/MainWindow.xaml.cs +++ b/ProxySU_Core/Views/MainWindow.xaml.cs @@ -46,11 +46,14 @@ namespace ProxySU_Core if (File.Exists(RecordPath)) { var recordsJson = File.ReadAllText(RecordPath, Encoding.UTF8); - var records = JsonConvert.DeserializeObject>(recordsJson); - records.ForEach(item => + if (!string.IsNullOrEmpty(recordsJson)) { - Records.Add(new RecordViewModel(item)); - }); + var records = JsonConvert.DeserializeObject>(recordsJson); + records.ForEach(item => + { + Records.Add(new RecordViewModel(item)); + }); + } } @@ -66,10 +69,11 @@ namespace ProxySU_Core { ContractResolver = new CamelCasePropertyNamesContractResolver() }); - if (File.Exists("Data\\Record.json")) + if (!Directory.Exists("Data")) { - File.WriteAllText("Data\\Record.json", json, Encoding.UTF8); + Directory.CreateDirectory("Data"); } + File.WriteAllText("Data\\Record.json", json, Encoding.UTF8); } private void LaunchGitHubSite(object sender, RoutedEventArgs e)