From 7584f49871c0559502f5b6f8a4758b89215e91d9 Mon Sep 17 00:00:00 2001 From: autumn Date: Fri, 22 Apr 2022 10:13:25 +0800 Subject: [PATCH] update ip.sb --- ProxySU.sln | 28 +- ProxySU/MainWindow.xaml.cs | 6 +- ProxySU/Properties/Resources.Designer.cs | 60 +- ProxySU/Properties/Settings.Designer.cs | 30 +- ProxySU/ProxySU.csproj | 11 +- ProxySU/app.config | 3 + ProxySU/packages.config | 2 +- ProxySU_Core/App.config | 14 - ProxySU_Core/App.xaml | 33 - ProxySU_Core/App.xaml.cs | 17 - ProxySU_Core/AssemblyInfo.cs | 10 - ProxySU_Core/Common/Base64.cs | 23 - .../Converters/LoginSecretTypeConverter.cs | 32 - ProxySU_Core/Converters/ProxyTypeConverter.cs | 31 - ProxySU_Core/Converters/VisibleConverter.cs | 34 - ProxySU_Core/Models/AppSettings.cs | 13 - ProxySU_Core/Models/Developers/IParameters.cs | 15 - ProxySU_Core/Models/Developers/Project.cs | 740 ----------------- .../Developers/TrojanGoConfigBuilder.cs | 63 -- .../Models/Developers/TrojanGoProject.cs | 135 ---- .../Models/Developers/TrojanGoSettings.cs | 29 - .../Models/Developers/XrayConfigBuilder.cs | 232 ------ ProxySU_Core/Models/Developers/XrayProject.cs | 321 -------- .../Models/Developers/XraySettings.cs | 220 ------ ProxySU_Core/Models/Host.cs | 35 - ProxySU_Core/Models/LocalProxy.cs | 20 - ProxySU_Core/Models/LocalProxyType.cs | 23 - ProxySU_Core/Models/LoginSecretType.cs | 12 - ProxySU_Core/Models/Record.cs | 24 - ProxySU_Core/Models/ShareLink.cs | 196 ----- ProxySU_Core/Models/XrayType.cs | 34 - ProxySU_Core/Properties/AssemblyInfo.cs | 55 -- ProxySU_Core/Properties/Resources.Designer.cs | 63 -- ProxySU_Core/Properties/Resources.resx | 117 --- ProxySU_Core/Properties/Settings.Designer.cs | 26 - ProxySU_Core/Properties/Settings.settings | 7 - ProxySU_Core/ProxySU.ico | Bin 16958 -> 0 bytes ProxySU_Core/ProxySU_Core.csproj | 463 ----------- ProxySU_Core/Resources/Languages/en.xaml | 122 --- ProxySU_Core/Resources/Languages/zh_cn.xaml | 120 --- ProxySU_Core/Resources/ProxySU.ico | Bin 16958 -> 0 bytes .../MaterialDesignThemes.Overrides.xaml | 48 -- .../Templates/trojan-go/base.caddyfile | 9 - .../Templates/trojan-go/trojan-go.json | 16 - ProxySU_Core/Templates/xray/base.json | 12 - .../Templates/xray/caddy/base.caddyfile | 9 - .../Templates/xray/client/00_log/00_log.json | 5 - .../Templates/xray/client/01_api/01_api.json | 3 - .../Templates/xray/client/02_dns/02_dns.json | 3 - .../xray/client/03_routing/03_routing.json | 3 - .../xray/client/04_policy/04_policy.json | 3 - .../xray/client/05_inbounds/05_inbounds.json | 23 - .../client/06_outbounds/06_outbounds.json | 3 - .../client/06_outbounds/VLESS_HTTP2_TLS.json | 31 - .../client/06_outbounds/VLESS_TCP_TLS_WS.json | 32 - .../client/07_transport/07_transport.json | 3 - .../xray/client/08_stats/08_stats.json | 3 - .../xray/client/09_reverse/09_reverse.json | 3 - .../Templates/xray/server/00_log/00_log.json | 6 - .../Templates/xray/server/01_api/01_api.json | 3 - .../Templates/xray/server/02_dns/02_dns.json | 3 - .../xray/server/03_routing/03_routing.json | 14 - .../xray/server/04_policy/04_policy.json | 3 - .../xray/server/05_inbounds/05_inbounds.json | 3 - .../server/05_inbounds/Shadowsocks-AEAD.json | 13 - .../xray/server/05_inbounds/Trojan_TCP.json | 24 - .../xray/server/05_inbounds/Trojan_WS.json | 26 - .../xray/server/05_inbounds/VLESS_HTTP2.json | 19 - .../xray/server/05_inbounds/VLESS_KCP.json | 24 - .../server/05_inbounds/VLESS_TCP_XTLS.json | 31 - .../xray/server/05_inbounds/VLESS_WS.json | 21 - .../xray/server/05_inbounds/VLESS_gRPC.json | 25 - .../xray/server/05_inbounds/VMESS_HTTP2.json | 18 - .../xray/server/05_inbounds/VMESS_KCP.json | 23 - .../xray/server/05_inbounds/VMESS_TCP.json | 27 - .../xray/server/05_inbounds/VMESS_WS.json | 20 - .../server/06_outbounds/06_outbounds.json | 12 - .../server/07_transport/07_transport.json | 3 - .../xray/server/08_stats/08_stats.json | 3 - .../xray/server/09_reverse/09_reverse.json | 3 - ProxySU_Core/Tools/DateTimeUtils.cs | 83 -- ProxySU_Core/Tools/Extensions.cs | 62 -- ProxySU_Core/ViewModels/BaseCommand.cs | 41 - ProxySU_Core/ViewModels/BaseModel.cs | 38 - ProxySU_Core/ViewModels/BaseViewModel.cs | 20 - ProxySU_Core/ViewModels/HostViewModel.cs | 144 ---- ProxySU_Core/ViewModels/IdValueViewModel.cs | 21 - ProxySU_Core/ViewModels/RecordViewModel.cs | 58 -- ProxySU_Core/ViewModels/Terminal.cs | 38 - .../ViewModels/XraySettingsViewModel.cs | 399 ---------- .../Views/ClientInfo/ClientInfoWindow.xaml | 114 --- .../Views/ClientInfo/ClientInfoWindow.xaml.cs | 127 --- .../Views/ClientInfo/ShadowSocksControl.xaml | 34 - .../ClientInfo/ShadowSocksControl.xaml.cs | 28 - .../Views/ClientInfo/Trojan_TCP_Control.xaml | 29 - .../ClientInfo/Trojan_TCP_Control.xaml.cs | 28 - .../Views/ClientInfo/VLESS_KCP_Control.xaml | 59 -- .../ClientInfo/VLESS_KCP_Control.xaml.cs | 28 - .../ClientInfo/VLESS_TCP_TLS_Control.xaml | 64 -- .../ClientInfo/VLESS_TCP_TLS_Control.xaml.cs | 28 - .../ClientInfo/VLESS_WS_TLS_Control.xaml | 64 -- .../ClientInfo/VLESS_WS_TLS_Control.xaml.cs | 28 - .../Views/ClientInfo/VLESS_XTLS_Control.xaml | 64 -- .../ClientInfo/VLESS_XTLS_Control.xaml.cs | 28 - .../Views/ClientInfo/VLESS_gRPC_Control.xaml | 64 -- .../ClientInfo/VLESS_gRPC_Control.xaml.cs | 28 - .../Views/ClientInfo/VMESS_KCP_Control.xaml | 59 -- .../ClientInfo/VMESS_KCP_Control.xaml.cs | 28 - .../ClientInfo/VMESS_TCP_TLS_Control.xaml | 59 -- .../ClientInfo/VMESS_TCP_TLS_Control.xaml.cs | 28 - .../ClientInfo/VMESS_WS_TLS_Control.xaml | 59 -- .../ClientInfo/VMESS_WS_TLS_Control.xaml.cs | 28 - ProxySU_Core/Views/MainWindow.xaml | 171 ---- ProxySU_Core/Views/MainWindow.xaml.cs | 220 ------ .../RecordEditor/RecordEditorWindow.xaml | 76 -- .../RecordEditor/RecordEditorWindow.xaml.cs | 53 -- .../Views/RecordEditor/ServerInfoControl.xaml | 198 ----- .../RecordEditor/ServerInfoControl.xaml.cs | 28 - .../Views/RecordEditor/XrayEditorControl.xaml | 295 ------- .../RecordEditor/XrayEditorControl.xaml.cs | 28 - ProxySU_Core/Views/TerminalWindow.xaml | 124 --- ProxySU_Core/Views/TerminalWindow.xaml.cs | 235 ------ ProxySU_Core/Views/TextBoxWindow.xaml | 17 - ProxySU_Core/Views/TextBoxWindow.xaml.cs | 33 - ProxySU_Core/packages.config | 12 - ProxySuper.Core/App.cs | 18 - .../Converters/LoginSecretTypeConverter.cs | 27 - .../Converters/ProxyTypeConverter.cs | 33 - .../Converters/VisibleConverter.cs | 34 - ProxySuper.Core/Helpers/DateTimeUtils.cs | 86 -- ProxySuper.Core/Helpers/Utils.cs | 37 - ProxySuper.Core/Models/Hosts/Host.cs | 58 -- ProxySuper.Core/Models/Hosts/LocalProxy.cs | 24 - .../Models/Hosts/LocalProxyType.cs | 25 - .../Models/Hosts/LoginSecretType.cs | 14 - .../Models/Projects/IProjectSettings.cs | 31 - .../Models/Projects/NaiveProxySettings.cs | 30 - .../Models/Projects/ProjectType.cs | 15 - .../Models/Projects/TrojanGoSettings.cs | 67 -- .../Models/Projects/XraySettings.cs | 99 --- .../Models/Projects/XraySettings_SS.cs | 35 - .../Models/Projects/XraySettings_Trojan.cs | 22 - .../Models/Projects/XraySettings_VLESS.cs | 97 --- .../Models/Projects/XraySettings_VMESS.cs | 70 -- ProxySuper.Core/Models/Projects/XrayType.cs | 34 - ProxySuper.Core/Models/Record.cs | 111 --- ProxySuper.Core/Properties/AssemblyInfo.cs | 36 - ProxySuper.Core/ProxySuper.Core.csproj | 111 --- ProxySuper.Core/Services/NaiveProxyProject.cs | 172 ---- ProxySuper.Core/Services/ProjectBase.cs | 747 ------------------ ProxySuper.Core/Services/ShareLink.cs | 226 ------ .../Services/TrojanGoConfigBuilder.cs | 72 -- ProxySuper.Core/Services/TrojanGoProject.cs | 187 ----- ProxySuper.Core/Services/XrayConfigBuilder.cs | 235 ------ ProxySuper.Core/Services/XrayProject.cs | 325 -------- ProxySuper.Core/ViewModels/HomeViewModel.cs | 209 ----- .../ViewModels/NaiveProxyConfigViewModel.cs | 29 - .../ViewModels/NaiveProxyEditorViewModel.cs | 55 -- .../NaiveProxyInstallerViewModel.cs | 44 -- .../ViewModels/ShareLinkViewModel.cs | 34 - .../ViewModels/TrojanGoConfigViewModel.cs | 29 - .../ViewModels/TrojanGoEditorViewModel.cs | 54 -- .../ViewModels/TrojanGoInstallerViewModel.cs | 45 -- .../ViewModels/XrayConfigViewModel.cs | 99 --- .../ViewModels/XrayEditorViewModel.cs | 423 ---------- .../ViewModels/XrayInstallerViewModel.cs | 49 -- ProxySuper.Core/packages.config | 7 - ProxySuper.WPF/App.config | 6 - ProxySuper.WPF/App.xaml | 33 - ProxySuper.WPF/App.xaml.cs | 24 - ProxySuper.WPF/Controls/HostControl.xaml | 165 ---- ProxySuper.WPF/Controls/HostControl.xaml.cs | 28 - .../Controls/ShadowSocksControl.xaml | 34 - .../Controls/ShadowSocksControl.xaml.cs | 28 - .../Controls/Trojan_TCP_Control.xaml | 29 - .../Controls/Trojan_TCP_Control.xaml.cs | 28 - .../Controls/VLESS_KCP_Control.xaml | 59 -- .../Controls/VLESS_KCP_Control.xaml.cs | 28 - .../Controls/VLESS_TCP_TLS_Control.xaml | 64 -- .../Controls/VLESS_TCP_TLS_Control.xaml.cs | 28 - .../Controls/VLESS_WS_TLS_Control.xaml | 64 -- .../Controls/VLESS_WS_TLS_Control.xaml.cs | 28 - .../Controls/VLESS_XTLS_Control.xaml | 64 -- .../Controls/VLESS_XTLS_Control.xaml.cs | 28 - .../Controls/VLESS_gRPC_Control.xaml | 64 -- .../Controls/VLESS_gRPC_Control.xaml.cs | 28 - .../Controls/VMESS_KCP_Control.xaml | 59 -- .../Controls/VMESS_KCP_Control.xaml.cs | 28 - .../Controls/VMESS_TCP_TLS_Control.xaml | 59 -- .../Controls/VMESS_TCP_TLS_Control.xaml.cs | 28 - .../Controls/VMESS_WS_TLS_Control.xaml | 59 -- .../Controls/VMESS_WS_TLS_Control.xaml.cs | 28 - .../Controls/XraySettingsControl.xaml | 295 ------- .../Controls/XraySettingsControl.xaml.cs | 28 - ProxySuper.WPF/MainWindow.xaml | 15 - ProxySuper.WPF/MainWindow.xaml.cs | 28 - ProxySuper.WPF/Properties/AssemblyInfo.cs | 55 -- .../Properties/Resources.Designer.cs | 63 -- ProxySuper.WPF/Properties/Resources.resx | 117 --- .../Properties/Settings.Designer.cs | 26 - ProxySuper.WPF/Properties/Settings.settings | 7 - ProxySuper.WPF/ProxySU.ico | Bin 16958 -> 0 bytes ProxySuper.WPF/ProxySuper.WPF.csproj | 476 ----------- ProxySuper.WPF/Resources/Languages/en.xaml | 112 --- ProxySuper.WPF/Resources/Languages/tw_cn.xaml | 112 --- ProxySuper.WPF/Resources/Languages/zh_cn.xaml | 113 --- ProxySuper.WPF/Resources/ProxySU.ico | Bin 16958 -> 0 bytes .../Resources/Styles/DataGridStyle.xaml | 158 ---- .../NaiveProxy/naive_server.caddyfile | 11 - .../Templates/trojan-go/base.caddyfile | 9 - .../Templates/trojan-go/trojan-go.json | 20 - ProxySuper.WPF/Templates/xray/base.json | 12 - .../Templates/xray/caddy/base.caddyfile | 9 - .../Templates/xray/client/00_log/00_log.json | 5 - .../Templates/xray/client/01_api/01_api.json | 3 - .../Templates/xray/client/02_dns/02_dns.json | 3 - .../xray/client/03_routing/03_routing.json | 3 - .../xray/client/04_policy/04_policy.json | 3 - .../xray/client/05_inbounds/05_inbounds.json | 23 - .../client/06_outbounds/06_outbounds.json | 3 - .../client/06_outbounds/VLESS_HTTP2_TLS.json | 31 - .../client/06_outbounds/VLESS_TCP_TLS_WS.json | 32 - .../client/07_transport/07_transport.json | 3 - .../xray/client/08_stats/08_stats.json | 3 - .../xray/client/09_reverse/09_reverse.json | 3 - .../Templates/xray/server/00_log/00_log.json | 6 - .../Templates/xray/server/01_api/01_api.json | 3 - .../Templates/xray/server/02_dns/02_dns.json | 3 - .../xray/server/03_routing/03_routing.json | 14 - .../xray/server/04_policy/04_policy.json | 3 - .../xray/server/05_inbounds/05_inbounds.json | 3 - .../server/05_inbounds/Shadowsocks-AEAD.json | 13 - .../xray/server/05_inbounds/Trojan_TCP.json | 24 - .../xray/server/05_inbounds/Trojan_WS.json | 26 - .../xray/server/05_inbounds/VLESS_HTTP2.json | 19 - .../xray/server/05_inbounds/VLESS_KCP.json | 24 - .../server/05_inbounds/VLESS_TCP_XTLS.json | 31 - .../xray/server/05_inbounds/VLESS_WS.json | 21 - .../xray/server/05_inbounds/VLESS_gRPC.json | 25 - .../xray/server/05_inbounds/VMESS_HTTP2.json | 18 - .../xray/server/05_inbounds/VMESS_KCP.json | 23 - .../xray/server/05_inbounds/VMESS_TCP.json | 27 - .../xray/server/05_inbounds/VMESS_WS.json | 20 - .../server/06_outbounds/06_outbounds.json | 12 - .../server/07_transport/07_transport.json | 3 - .../xray/server/08_stats/08_stats.json | 3 - .../xray/server/09_reverse/09_reverse.json | 3 - ProxySuper.WPF/Views/HomeView.xaml | 116 --- ProxySuper.WPF/Views/HomeView.xaml.cs | 84 -- .../Views/NaiveProxyConfigView.xaml | 41 - .../Views/NaiveProxyConfigView.xaml.cs | 28 - .../Views/NaiveProxyEditorView.xaml | 68 -- .../Views/NaiveProxyEditorView.xaml.cs | 28 - .../Views/NaiveProxyInstallerView.xaml | 55 -- .../Views/NaiveProxyInstallerView.xaml.cs | 166 ---- ProxySuper.WPF/Views/ShareLinkView.xaml | 15 - ProxySuper.WPF/Views/ShareLinkView.xaml.cs | 28 - ProxySuper.WPF/Views/TrojanGoConfigView.xaml | 44 -- .../Views/TrojanGoConfigView.xaml.cs | 37 - ProxySuper.WPF/Views/TrojanGoEditorView.xaml | 69 -- .../Views/TrojanGoEditorView.xaml.cs | 30 - .../Views/TrojanGoInstallerView.xaml | 56 -- .../Views/TrojanGoInstallerView.xaml.cs | 175 ---- ProxySuper.WPF/Views/XrayConfigView.xaml | 103 --- ProxySuper.WPF/Views/XrayConfigView.xaml.cs | 132 ---- ProxySuper.WPF/Views/XrayEditorView.xaml | 59 -- ProxySuper.WPF/Views/XrayEditorView.xaml.cs | 35 - ProxySuper.WPF/Views/XrayInstallerView.xaml | 59 -- .../Views/XrayInstallerView.xaml.cs | 192 ----- ProxySuper.WPF/packages.config | 10 - 270 files changed, 57 insertions(+), 16346 deletions(-) create mode 100644 ProxySU/app.config delete mode 100644 ProxySU_Core/App.config delete mode 100644 ProxySU_Core/App.xaml delete mode 100644 ProxySU_Core/App.xaml.cs delete mode 100644 ProxySU_Core/AssemblyInfo.cs delete mode 100644 ProxySU_Core/Common/Base64.cs delete mode 100644 ProxySU_Core/Converters/LoginSecretTypeConverter.cs delete mode 100644 ProxySU_Core/Converters/ProxyTypeConverter.cs delete mode 100644 ProxySU_Core/Converters/VisibleConverter.cs delete mode 100644 ProxySU_Core/Models/AppSettings.cs delete mode 100644 ProxySU_Core/Models/Developers/IParameters.cs delete mode 100644 ProxySU_Core/Models/Developers/Project.cs delete mode 100644 ProxySU_Core/Models/Developers/TrojanGoConfigBuilder.cs delete mode 100644 ProxySU_Core/Models/Developers/TrojanGoProject.cs delete mode 100644 ProxySU_Core/Models/Developers/TrojanGoSettings.cs delete mode 100644 ProxySU_Core/Models/Developers/XrayConfigBuilder.cs delete mode 100644 ProxySU_Core/Models/Developers/XrayProject.cs delete mode 100644 ProxySU_Core/Models/Developers/XraySettings.cs delete mode 100644 ProxySU_Core/Models/Host.cs delete mode 100644 ProxySU_Core/Models/LocalProxy.cs delete mode 100644 ProxySU_Core/Models/LocalProxyType.cs delete mode 100644 ProxySU_Core/Models/LoginSecretType.cs delete mode 100644 ProxySU_Core/Models/Record.cs delete mode 100644 ProxySU_Core/Models/ShareLink.cs delete mode 100644 ProxySU_Core/Models/XrayType.cs delete mode 100644 ProxySU_Core/Properties/AssemblyInfo.cs delete mode 100644 ProxySU_Core/Properties/Resources.Designer.cs delete mode 100644 ProxySU_Core/Properties/Resources.resx delete mode 100644 ProxySU_Core/Properties/Settings.Designer.cs delete mode 100644 ProxySU_Core/Properties/Settings.settings delete mode 100644 ProxySU_Core/ProxySU.ico delete mode 100644 ProxySU_Core/ProxySU_Core.csproj delete mode 100644 ProxySU_Core/Resources/Languages/en.xaml delete mode 100644 ProxySU_Core/Resources/Languages/zh_cn.xaml delete mode 100644 ProxySU_Core/Resources/ProxySU.ico delete mode 100644 ProxySU_Core/Resources/Styles/MaterialDesignThemes.Overrides.xaml delete mode 100644 ProxySU_Core/Templates/trojan-go/base.caddyfile delete mode 100644 ProxySU_Core/Templates/trojan-go/trojan-go.json delete mode 100644 ProxySU_Core/Templates/xray/base.json delete mode 100644 ProxySU_Core/Templates/xray/caddy/base.caddyfile delete mode 100644 ProxySU_Core/Templates/xray/client/00_log/00_log.json delete mode 100644 ProxySU_Core/Templates/xray/client/01_api/01_api.json delete mode 100644 ProxySU_Core/Templates/xray/client/02_dns/02_dns.json delete mode 100644 ProxySU_Core/Templates/xray/client/03_routing/03_routing.json delete mode 100644 ProxySU_Core/Templates/xray/client/04_policy/04_policy.json delete mode 100644 ProxySU_Core/Templates/xray/client/05_inbounds/05_inbounds.json delete mode 100644 ProxySU_Core/Templates/xray/client/06_outbounds/06_outbounds.json delete mode 100644 ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_HTTP2_TLS.json delete mode 100644 ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_TCP_TLS_WS.json delete mode 100644 ProxySU_Core/Templates/xray/client/07_transport/07_transport.json delete mode 100644 ProxySU_Core/Templates/xray/client/08_stats/08_stats.json delete mode 100644 ProxySU_Core/Templates/xray/client/09_reverse/09_reverse.json delete mode 100644 ProxySU_Core/Templates/xray/server/00_log/00_log.json delete mode 100644 ProxySU_Core/Templates/xray/server/01_api/01_api.json delete mode 100644 ProxySU_Core/Templates/xray/server/02_dns/02_dns.json delete mode 100644 ProxySU_Core/Templates/xray/server/03_routing/03_routing.json delete mode 100644 ProxySU_Core/Templates/xray/server/04_policy/04_policy.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/05_inbounds.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/Shadowsocks-AEAD.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_TCP.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_WS.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_HTTP2.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_KCP.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_TCP_XTLS.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_WS.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_gRPC.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_HTTP2.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_KCP.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_TCP.json delete mode 100644 ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_WS.json delete mode 100644 ProxySU_Core/Templates/xray/server/06_outbounds/06_outbounds.json delete mode 100644 ProxySU_Core/Templates/xray/server/07_transport/07_transport.json delete mode 100644 ProxySU_Core/Templates/xray/server/08_stats/08_stats.json delete mode 100644 ProxySU_Core/Templates/xray/server/09_reverse/09_reverse.json delete mode 100644 ProxySU_Core/Tools/DateTimeUtils.cs delete mode 100644 ProxySU_Core/Tools/Extensions.cs delete mode 100644 ProxySU_Core/ViewModels/BaseCommand.cs delete mode 100644 ProxySU_Core/ViewModels/BaseModel.cs delete mode 100644 ProxySU_Core/ViewModels/BaseViewModel.cs delete mode 100644 ProxySU_Core/ViewModels/HostViewModel.cs delete mode 100644 ProxySU_Core/ViewModels/IdValueViewModel.cs delete mode 100644 ProxySU_Core/ViewModels/RecordViewModel.cs delete mode 100644 ProxySU_Core/ViewModels/Terminal.cs delete mode 100644 ProxySU_Core/ViewModels/XraySettingsViewModel.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/ShadowSocksControl.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/Trojan_TCP_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_KCP_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_TCP_TLS_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_WS_TLS_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_XTLS_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_gRPC_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VLESS_gRPC_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_KCP_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_TCP_TLS_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml delete mode 100644 ProxySU_Core/Views/ClientInfo/VMESS_WS_TLS_Control.xaml.cs delete mode 100644 ProxySU_Core/Views/MainWindow.xaml delete mode 100644 ProxySU_Core/Views/MainWindow.xaml.cs delete mode 100644 ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml delete mode 100644 ProxySU_Core/Views/RecordEditor/RecordEditorWindow.xaml.cs delete mode 100644 ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml delete mode 100644 ProxySU_Core/Views/RecordEditor/ServerInfoControl.xaml.cs delete mode 100644 ProxySU_Core/Views/RecordEditor/XrayEditorControl.xaml delete mode 100644 ProxySU_Core/Views/RecordEditor/XrayEditorControl.xaml.cs delete mode 100644 ProxySU_Core/Views/TerminalWindow.xaml delete mode 100644 ProxySU_Core/Views/TerminalWindow.xaml.cs delete mode 100644 ProxySU_Core/Views/TextBoxWindow.xaml delete mode 100644 ProxySU_Core/Views/TextBoxWindow.xaml.cs delete mode 100644 ProxySU_Core/packages.config delete mode 100644 ProxySuper.Core/App.cs delete mode 100644 ProxySuper.Core/Converters/LoginSecretTypeConverter.cs delete mode 100644 ProxySuper.Core/Converters/ProxyTypeConverter.cs delete mode 100644 ProxySuper.Core/Converters/VisibleConverter.cs delete mode 100644 ProxySuper.Core/Helpers/DateTimeUtils.cs delete mode 100644 ProxySuper.Core/Helpers/Utils.cs delete mode 100644 ProxySuper.Core/Models/Hosts/Host.cs delete mode 100644 ProxySuper.Core/Models/Hosts/LocalProxy.cs delete mode 100644 ProxySuper.Core/Models/Hosts/LocalProxyType.cs delete mode 100644 ProxySuper.Core/Models/Hosts/LoginSecretType.cs delete mode 100644 ProxySuper.Core/Models/Projects/IProjectSettings.cs delete mode 100644 ProxySuper.Core/Models/Projects/NaiveProxySettings.cs delete mode 100644 ProxySuper.Core/Models/Projects/ProjectType.cs delete mode 100644 ProxySuper.Core/Models/Projects/TrojanGoSettings.cs delete mode 100644 ProxySuper.Core/Models/Projects/XraySettings.cs delete mode 100644 ProxySuper.Core/Models/Projects/XraySettings_SS.cs delete mode 100644 ProxySuper.Core/Models/Projects/XraySettings_Trojan.cs delete mode 100644 ProxySuper.Core/Models/Projects/XraySettings_VLESS.cs delete mode 100644 ProxySuper.Core/Models/Projects/XraySettings_VMESS.cs delete mode 100644 ProxySuper.Core/Models/Projects/XrayType.cs delete mode 100644 ProxySuper.Core/Models/Record.cs delete mode 100644 ProxySuper.Core/Properties/AssemblyInfo.cs delete mode 100644 ProxySuper.Core/ProxySuper.Core.csproj delete mode 100644 ProxySuper.Core/Services/NaiveProxyProject.cs delete mode 100644 ProxySuper.Core/Services/ProjectBase.cs delete mode 100644 ProxySuper.Core/Services/ShareLink.cs delete mode 100644 ProxySuper.Core/Services/TrojanGoConfigBuilder.cs delete mode 100644 ProxySuper.Core/Services/TrojanGoProject.cs delete mode 100644 ProxySuper.Core/Services/XrayConfigBuilder.cs delete mode 100644 ProxySuper.Core/Services/XrayProject.cs delete mode 100644 ProxySuper.Core/ViewModels/HomeViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/NaiveProxyConfigViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/NaiveProxyEditorViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/NaiveProxyInstallerViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/ShareLinkViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/TrojanGoConfigViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/TrojanGoEditorViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/TrojanGoInstallerViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/XrayConfigViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/XrayEditorViewModel.cs delete mode 100644 ProxySuper.Core/ViewModels/XrayInstallerViewModel.cs delete mode 100644 ProxySuper.Core/packages.config delete mode 100644 ProxySuper.WPF/App.config delete mode 100644 ProxySuper.WPF/App.xaml delete mode 100644 ProxySuper.WPF/App.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/HostControl.xaml delete mode 100644 ProxySuper.WPF/Controls/HostControl.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/ShadowSocksControl.xaml delete mode 100644 ProxySuper.WPF/Controls/ShadowSocksControl.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/Trojan_TCP_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/Trojan_TCP_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VLESS_KCP_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VLESS_KCP_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VLESS_TCP_TLS_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VLESS_TCP_TLS_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VLESS_WS_TLS_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VLESS_WS_TLS_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VLESS_XTLS_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VLESS_XTLS_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VLESS_gRPC_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VLESS_gRPC_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VMESS_KCP_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VMESS_KCP_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VMESS_TCP_TLS_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VMESS_TCP_TLS_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/VMESS_WS_TLS_Control.xaml delete mode 100644 ProxySuper.WPF/Controls/VMESS_WS_TLS_Control.xaml.cs delete mode 100644 ProxySuper.WPF/Controls/XraySettingsControl.xaml delete mode 100644 ProxySuper.WPF/Controls/XraySettingsControl.xaml.cs delete mode 100644 ProxySuper.WPF/MainWindow.xaml delete mode 100644 ProxySuper.WPF/MainWindow.xaml.cs delete mode 100644 ProxySuper.WPF/Properties/AssemblyInfo.cs delete mode 100644 ProxySuper.WPF/Properties/Resources.Designer.cs delete mode 100644 ProxySuper.WPF/Properties/Resources.resx delete mode 100644 ProxySuper.WPF/Properties/Settings.Designer.cs delete mode 100644 ProxySuper.WPF/Properties/Settings.settings delete mode 100644 ProxySuper.WPF/ProxySU.ico delete mode 100644 ProxySuper.WPF/ProxySuper.WPF.csproj delete mode 100644 ProxySuper.WPF/Resources/Languages/en.xaml delete mode 100644 ProxySuper.WPF/Resources/Languages/tw_cn.xaml delete mode 100644 ProxySuper.WPF/Resources/Languages/zh_cn.xaml delete mode 100644 ProxySuper.WPF/Resources/ProxySU.ico delete mode 100644 ProxySuper.WPF/Resources/Styles/DataGridStyle.xaml delete mode 100644 ProxySuper.WPF/Templates/NaiveProxy/naive_server.caddyfile delete mode 100644 ProxySuper.WPF/Templates/trojan-go/base.caddyfile delete mode 100644 ProxySuper.WPF/Templates/trojan-go/trojan-go.json delete mode 100644 ProxySuper.WPF/Templates/xray/base.json delete mode 100644 ProxySuper.WPF/Templates/xray/caddy/base.caddyfile delete mode 100644 ProxySuper.WPF/Templates/xray/client/00_log/00_log.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/01_api/01_api.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/02_dns/02_dns.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/03_routing/03_routing.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/04_policy/04_policy.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/05_inbounds/05_inbounds.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/06_outbounds/06_outbounds.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/06_outbounds/VLESS_HTTP2_TLS.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/06_outbounds/VLESS_TCP_TLS_WS.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/07_transport/07_transport.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/08_stats/08_stats.json delete mode 100644 ProxySuper.WPF/Templates/xray/client/09_reverse/09_reverse.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/00_log/00_log.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/01_api/01_api.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/02_dns/02_dns.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/03_routing/03_routing.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/04_policy/04_policy.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/05_inbounds.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/Shadowsocks-AEAD.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/Trojan_TCP.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/Trojan_WS.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VLESS_HTTP2.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VLESS_KCP.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VLESS_TCP_XTLS.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VLESS_WS.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VLESS_gRPC.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VMESS_HTTP2.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VMESS_KCP.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VMESS_TCP.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/05_inbounds/VMESS_WS.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/06_outbounds/06_outbounds.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/07_transport/07_transport.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/08_stats/08_stats.json delete mode 100644 ProxySuper.WPF/Templates/xray/server/09_reverse/09_reverse.json delete mode 100644 ProxySuper.WPF/Views/HomeView.xaml delete mode 100644 ProxySuper.WPF/Views/HomeView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/NaiveProxyConfigView.xaml delete mode 100644 ProxySuper.WPF/Views/NaiveProxyConfigView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/NaiveProxyEditorView.xaml delete mode 100644 ProxySuper.WPF/Views/NaiveProxyEditorView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/NaiveProxyInstallerView.xaml delete mode 100644 ProxySuper.WPF/Views/NaiveProxyInstallerView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/ShareLinkView.xaml delete mode 100644 ProxySuper.WPF/Views/ShareLinkView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/TrojanGoConfigView.xaml delete mode 100644 ProxySuper.WPF/Views/TrojanGoConfigView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/TrojanGoEditorView.xaml delete mode 100644 ProxySuper.WPF/Views/TrojanGoEditorView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/TrojanGoInstallerView.xaml delete mode 100644 ProxySuper.WPF/Views/TrojanGoInstallerView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/XrayConfigView.xaml delete mode 100644 ProxySuper.WPF/Views/XrayConfigView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/XrayEditorView.xaml delete mode 100644 ProxySuper.WPF/Views/XrayEditorView.xaml.cs delete mode 100644 ProxySuper.WPF/Views/XrayInstallerView.xaml delete mode 100644 ProxySuper.WPF/Views/XrayInstallerView.xaml.cs delete mode 100644 ProxySuper.WPF/packages.config diff --git a/ProxySU.sln b/ProxySU.sln index b6c6063..fb3af72 100644 --- a/ProxySU.sln +++ b/ProxySU.sln @@ -1,23 +1,15 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31005.135 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProxySU", "ProxySU\ProxySU.csproj", "{DD5505BC-E7F1-4D03-ABC7-B636E893FC09}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProxySU_Core", "ProxySU_Core\ProxySU_Core.csproj", "{B066015C-D347-4493-92F1-6556D3863996}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{18714411-764D-47E5-AFE6-A96200B7CE41}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{CE908112-DB46-4B91-8236-9139A19D66E9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProxySuper.WPF", "ProxySuper.WPF\ProxySuper.WPF.csproj", "{B083EBFD-2925-46C9-8B00-E2C1300CEBA1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProxySuper.Core", "ProxySuper.Core\ProxySuper.Core.csproj", "{15779EE6-D8CA-44BF-BFE2-941E155EEF3F}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -28,26 +20,10 @@ Global {DD5505BC-E7F1-4D03-ABC7-B636E893FC09}.Debug|Any CPU.Build.0 = Debug|Any CPU {DD5505BC-E7F1-4D03-ABC7-B636E893FC09}.Release|Any CPU.ActiveCfg = Release|Any CPU {DD5505BC-E7F1-4D03-ABC7-B636E893FC09}.Release|Any CPU.Build.0 = Release|Any CPU - {B066015C-D347-4493-92F1-6556D3863996}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B066015C-D347-4493-92F1-6556D3863996}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B066015C-D347-4493-92F1-6556D3863996}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B066015C-D347-4493-92F1-6556D3863996}.Release|Any CPU.Build.0 = Release|Any CPU - {B083EBFD-2925-46C9-8B00-E2C1300CEBA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B083EBFD-2925-46C9-8B00-E2C1300CEBA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B083EBFD-2925-46C9-8B00-E2C1300CEBA1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B083EBFD-2925-46C9-8B00-E2C1300CEBA1}.Release|Any CPU.Build.0 = Release|Any CPU - {15779EE6-D8CA-44BF-BFE2-941E155EEF3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {15779EE6-D8CA-44BF-BFE2-941E155EEF3F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {15779EE6-D8CA-44BF-BFE2-941E155EEF3F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {15779EE6-D8CA-44BF-BFE2-941E155EEF3F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B083EBFD-2925-46C9-8B00-E2C1300CEBA1} = {CE908112-DB46-4B91-8236-9139A19D66E9} - {15779EE6-D8CA-44BF-BFE2-941E155EEF3F} = {CE908112-DB46-4B91-8236-9139A19D66E9} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A3F3B8D6-7FED-42D9-9994-E913BD32E025} EndGlobalSection diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index 7350959..593ba41 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -15,7 +15,6 @@ using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.IO; -using Renci.SshNet; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Serialization; @@ -29,6 +28,7 @@ using System.Runtime; using System.Globalization; using Microsoft.Win32; using System.Security; +using Renci.SshNet; namespace ProxySU { @@ -9114,11 +9114,11 @@ namespace ProxySU ipv6 = String.Empty; //sshShellCommand = @"curl -4 ip.sb"; - sshShellCommand = @"curl -s https://api.ip.sb/ip --ipv4 --max-time 8"; + sshShellCommand = @"curl -4 ip.sb"; currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand); ipv4 = currentShellCommandResult.TrimEnd('\r', '\n'); - sshShellCommand = @"curl -s https://api.ip.sb/ip --ipv6 --max-time 8"; + sshShellCommand = @"curl -6 ip.sb"; currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand); ipv6 = currentShellCommandResult.TrimEnd('\r', '\n'); diff --git a/ProxySU/Properties/Resources.Designer.cs b/ProxySU/Properties/Resources.Designer.cs index 50e1154..5e2fa17 100644 --- a/ProxySU/Properties/Resources.Designer.cs +++ b/ProxySU/Properties/Resources.Designer.cs @@ -1,69 +1,61 @@ //------------------------------------------------------------------------------ // // 此代码由工具生成。 -// 运行时版本: 4.0.30319.42000 +// 运行时版本:4.0.30319.42000 // -// 对此文件的更改可能导致不正确的行为,如果 -// 重新生成代码,则所做更改将丢失。 +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ -namespace ProxySU.Properties -{ - - +namespace ProxySU.Properties { + using System; + + /// - /// 强类型资源类,用于查找本地化字符串等。 + /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 - // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// - /// 返回此类使用的缓存 ResourceManager 实例。 + /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProxySU.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// - /// 覆盖当前线程的 CurrentUICulture 属性 - /// 使用此强类型的资源类的资源查找。 + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/ProxySU/Properties/Settings.Designer.cs b/ProxySU/Properties/Settings.Designer.cs index 654607b..53a3c9c 100644 --- a/ProxySU/Properties/Settings.Designer.cs +++ b/ProxySU/Properties/Settings.Designer.cs @@ -1,28 +1,24 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ -namespace ProxySU.Properties -{ - - +namespace ProxySU.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/ProxySU/ProxySU.csproj b/ProxySU/ProxySU.csproj index 9ae9d06..7307497 100644 --- a/ProxySU/ProxySU.csproj +++ b/ProxySU/ProxySU.csproj @@ -8,7 +8,7 @@ WinExe ProxySU ProxySU - v4.0 + v4.7.2 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 @@ -29,6 +29,7 @@ false true true + AnyCPU @@ -39,6 +40,7 @@ DEBUG;TRACE prompt 4 + false AnyCPU @@ -48,6 +50,7 @@ TRACE prompt 4 + false ProxySU.ico @@ -62,7 +65,10 @@ true - true + false + + + ProxySU.App @@ -184,6 +190,7 @@ .editorconfig + SettingsSingleFileGenerator diff --git a/ProxySU/app.config b/ProxySU/app.config new file mode 100644 index 0000000..312bb3f --- /dev/null +++ b/ProxySU/app.config @@ -0,0 +1,3 @@ + + + diff --git a/ProxySU/packages.config b/ProxySU/packages.config index cd7f780..5e98293 100644 --- a/ProxySU/packages.config +++ b/ProxySU/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ProxySU_Core/App.config b/ProxySU_Core/App.config deleted file mode 100644 index 824190f..0000000 --- a/ProxySU_Core/App.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/ProxySU_Core/App.xaml b/ProxySU_Core/App.xaml deleted file mode 100644 index d59fcda..0000000 --- a/ProxySU_Core/App.xaml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ProxySU_Core/App.xaml.cs b/ProxySU_Core/App.xaml.cs deleted file mode 100644 index 2ccb782..0000000 --- a/ProxySU_Core/App.xaml.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Data; -using System.Linq; -using System.Threading.Tasks; -using System.Windows; - -namespace ProxySU_Core -{ - /// - /// Interaction logic for App.xaml - /// - public partial class App : Application - { - } -} diff --git a/ProxySU_Core/AssemblyInfo.cs b/ProxySU_Core/AssemblyInfo.cs deleted file mode 100644 index 8b5504e..0000000 --- a/ProxySU_Core/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Windows; - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] diff --git a/ProxySU_Core/Common/Base64.cs b/ProxySU_Core/Common/Base64.cs deleted file mode 100644 index 0a61841..0000000 --- a/ProxySU_Core/Common/Base64.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Common -{ - public class Base64 - { - public static string Encode(string plainText) - { - var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); - return System.Convert.ToBase64String(plainTextBytes); - } - - public static string Decode(string base64EncodedData) - { - var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData); - return System.Text.Encoding.UTF8.GetString(base64EncodedBytes); - } - } -} diff --git a/ProxySU_Core/Converters/LoginSecretTypeConverter.cs b/ProxySU_Core/Converters/LoginSecretTypeConverter.cs deleted file mode 100644 index be26ed8..0000000 --- a/ProxySU_Core/Converters/LoginSecretTypeConverter.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Text; -using System.Windows.Data; - -namespace ProxySU_Core.Converters -{ - public class LoginSecretTypeConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return value != null && value.Equals(parameter); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value == null) - { - return Binding.DoNothing; - } - - if (!value.Equals(true)) - { - return Binding.DoNothing; - } - - return parameter; - - } - } -} diff --git a/ProxySU_Core/Converters/ProxyTypeConverter.cs b/ProxySU_Core/Converters/ProxyTypeConverter.cs deleted file mode 100644 index 771cb62..0000000 --- a/ProxySU_Core/Converters/ProxyTypeConverter.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Text; -using System.Windows.Data; - -namespace ProxySU_Core.Converters -{ - public class ProxyTypeConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return value != null && value.Equals(parameter); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value == null) - { - return Binding.DoNothing; - } - - if (!value.Equals(true)) - { - return Binding.DoNothing; - } - - return parameter; - } - } -} diff --git a/ProxySU_Core/Converters/VisibleConverter.cs b/ProxySU_Core/Converters/VisibleConverter.cs deleted file mode 100644 index f52a08d..0000000 --- a/ProxySU_Core/Converters/VisibleConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Data; - -namespace ProxySU_Core.Converters -{ - public class VisibleConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return value.Equals(true) ? Visibility.Visible : Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value == null) - { - return false; - } - - if (value.Equals(Visibility.Visible)) - { - return true; - } - - return false; - } - } -} diff --git a/ProxySU_Core/Models/AppSettings.cs b/ProxySU_Core/Models/AppSettings.cs deleted file mode 100644 index 0b42488..0000000 --- a/ProxySU_Core/Models/AppSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Models -{ - public class AppSettings - { - public string Language { get; set; } - } -} diff --git a/ProxySU_Core/Models/Developers/IParameters.cs b/ProxySU_Core/Models/Developers/IParameters.cs deleted file mode 100644 index f80f33a..0000000 --- a/ProxySU_Core/Models/Developers/IParameters.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ProxySU_Core.Models.Developers -{ - public interface IParameters - { - int Port { get; set; } - - string Domain { get; set; } - - List FreePorts { get; } - } -} diff --git a/ProxySU_Core/Models/Developers/Project.cs b/ProxySU_Core/Models/Developers/Project.cs deleted file mode 100644 index 5aaa233..0000000 --- a/ProxySU_Core/Models/Developers/Project.cs +++ /dev/null @@ -1,740 +0,0 @@ -using ProxySU_Core.Tools; -using ProxySU_Core.ViewModels; -using Renci.SshNet; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; - -namespace ProxySU_Core.Models.Developers -{ - public enum CmdType - { - None, - Apt, - Dnf, - Yum - } - - public abstract class Project : BaseViewModel where TParameters : IParameters - { - private SshClient _sshClient; - - protected Action WriteOutput; - - protected CmdType CmdType { get; set; } - - protected bool IsSELinux { get; set; } - - protected bool OnlyIpv6 { get; set; } - - protected string IPv4 { get; set; } - - protected string IPv6 { get; set; } - - protected TParameters Parameters { get; set; } - - public Project(SshClient sshClient, TParameters parameters, Action writeOutput) - { - _sshClient = sshClient; - WriteOutput = writeOutput; - Parameters = parameters; - } - - protected string RunCmd(string cmdStr) - { - var cmd = _sshClient.CreateCommand(cmdStr); - WriteOutput(cmdStr); - - var result = cmd.Execute(); - WriteOutput(result); - return result; - } - - /// - /// 执行安装命令 - /// - public abstract void Install(); - - /// - /// 配置系统基础环境 - /// - protected void EnsureSystemEnv() - { - string cmd; - - // 确认安装命令 - if (CmdType == CmdType.None) - { - cmd = RunCmd("command -v apt-get"); - if (!string.IsNullOrEmpty(cmd)) - { - CmdType = CmdType.Apt; - } - } - - if (CmdType == CmdType.None) - { - cmd = RunCmd("command -v dnf"); - if (!string.IsNullOrEmpty(cmd)) - { - CmdType = CmdType.Dnf; - } - } - - if (CmdType == CmdType.None) - { - cmd = RunCmd("command -v yum"); - if (!string.IsNullOrEmpty(cmd)) - { - CmdType = CmdType.Yum; - } - } - - // systemctl - cmd = RunCmd("command -v systemctl"); - var hasSystemCtl = !string.IsNullOrEmpty(cmd); - - // SELinux - cmd = RunCmd("command -v getenforce"); - IsSELinux = !string.IsNullOrEmpty(cmd); - - if (CmdType == CmdType.None || !hasSystemCtl) - { - throw new Exception("系统缺乏必要的安装组件如:apt-get||dnf||yum||Syetemd,主机系统推荐使用:CentOS 7/8,Debian 8/9/10,Ubuntu 16.04及以上版本"); - } - - - // 判断是否启用了SELinux,如果启用了,并且工作在Enforcing模式下,则改为Permissive模式 - if (IsSELinux) - { - cmd = RunCmd("getenforce"); - - // 检测到系统启用SELinux,且工作在严格模式下,需改为宽松模式 - if (cmd.Contains("Enforcing")) - { - RunCmd("setenforce 0"); - RunCmd(@"sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config"); - } - } - } - - /// - /// 确保Root账户登陆 - /// - protected void EnsureRootAuth() - { - // 禁止一些可能产生的干扰信息 - RunCmd(@"sed -i 's/echo/#echo/g' ~/.bashrc"); - RunCmd(@"sed -i 's/echo/#echo/g' ~/.profile"); - - - // 检测是否运行在Root权限下 - var cmd = RunCmd("id -u"); - if (!cmd.Equals("0\n")) - { - throw new Exception("请使用Root账户登陆主机"); - } - } - - /// - /// 配置IPV6环境 - /// - protected void ConfigureIPv6() - { - if (IsOnlyIpv6()) - { - SetNat64(); - } - } - - /// - /// 配置必要的软件 - /// - protected void ConfigureSoftware() - { - string cmd = RunCmd("command -v sudo"); - if (string.IsNullOrEmpty(cmd)) - { - RunCmd(GetInstallCmd("sudo")); - } - - // 安装curl,wget,unzip - cmd = RunCmd("command -v curl"); - if (string.IsNullOrEmpty(cmd)) - { - RunCmd(GetInstallCmd("curl")); - } - - cmd = RunCmd("command -v wget"); - if (string.IsNullOrEmpty(cmd)) - { - RunCmd(GetInstallCmd("wget")); - } - - cmd = RunCmd("command -v unzip"); - if (string.IsNullOrEmpty(cmd)) - { - RunCmd(GetInstallCmd("unzip")); - } - - // 安装dig - cmd = RunCmd("command -v dig"); - if (string.IsNullOrEmpty(cmd)) - { - if (CmdType == CmdType.Apt) - { - RunCmd(GetUpdateCmd()); - RunCmd(GetInstallCmd("dnsutils")); - } - else if (CmdType == CmdType.Dnf) - { - RunCmd(GetUpdateCmd()); - RunCmd(GetInstallCmd("bind-utils")); - } - else if (CmdType == CmdType.Yum) - { - RunCmd(GetUpdateCmd()); - RunCmd(GetInstallCmd("bind-utils")); - } - } - - - // 处理极其少见的xz-utils未安装的情况 - if (CmdType == CmdType.Apt) - { - RunCmd(GetInstallCmd("xz-utils")); - } - else - { - RunCmd(GetInstallCmd("xz-devel")); - } - - // 检测是否安装lsof - cmd = RunCmd("command -v lsof"); - if (string.IsNullOrEmpty(cmd)) - { - RunCmd(GetInstallCmd("lsof")); - } - } - - protected void ClosePort(params int[] portList) - { - string cmd; - - cmd = RunCmd("command -v firewall-cmd"); - if (!string.IsNullOrEmpty(cmd)) - { - //有很奇怪的vps主机,在firewalld未运行时,端口是关闭的,无法访问。所以要先启动firewalld - //用于保证acme.sh申请证书成功 - cmd = RunCmd("firewall-cmd --state"); - if (cmd.Trim() != "running") - { - RunCmd("systemctl restart firewalld"); - } - - foreach (var port in portList) - { - RunCmd($"firewall-cmd --zone=public --remove-port={port}/tcp --permanent"); - RunCmd($"firewall-cmd --zone=public --remove-port={port}/udp --permanent"); - } - RunCmd("yes | firewall-cmd --reload"); - } - else - { - cmd = RunCmd("command -v ufw"); - if (!string.IsNullOrEmpty(cmd)) - { - foreach (var port in portList) - { - RunCmd($"ufw delete allow {port}/tcp"); - RunCmd($"ufw delete allow {port}/udp"); - } - RunCmd("yes | ufw reload"); - } - } - } - - protected void OpenPort(params int[] portList) - { - - string cmd; - - cmd = RunCmd("command -v firewall-cmd"); - if (!string.IsNullOrEmpty(cmd)) - { - //有很奇怪的vps主机,在firewalld未运行时,端口是关闭的,无法访问。所以要先启动firewalld - //用于保证acme.sh申请证书成功 - cmd = RunCmd("firewall-cmd --state"); - if (cmd.Trim() != "running") - { - RunCmd("systemctl restart firewalld"); - } - - foreach (var port in portList) - { - RunCmd($"firewall-cmd --zone=public --add-port={port}/tcp --permanent"); - RunCmd($"firewall-cmd --zone=public --add-port={port}/udp --permanent"); - } - RunCmd("yes | firewall-cmd --reload"); - } - else - { - cmd = RunCmd("command -v ufw"); - if (!string.IsNullOrEmpty(cmd)) - { - foreach (var port in portList) - { - RunCmd($"ufw allow {port}/tcp"); - RunCmd($"ufw allow {port}/udp"); - } - RunCmd("yes | ufw reload"); - } - } - } - - /// - /// 配置防火墙 - /// - protected void ConfigureFirewall() - { - var portList = new List(); - portList.Add(80); - portList.Add(Parameters.Port); - portList.AddRange(Parameters.FreePorts); - - OpenPort(portList.ToArray()); - } - - /// - /// 配置同步时间差 - /// - protected void SyncTimeDiff() - { - RunCmd("rm -f /etc/localtime"); - RunCmd("ln -s /usr/share/zoneinfo/UTC /etc/localtime"); - - var result = RunCmd("date +%s"); - var vpsSeconds = Convert.ToInt64(result); - var localSeconds = (int)(DateTime.Now.ToUniversalTime() - DateTime.Parse("1970-01-01")).TotalSeconds; - - if (Math.Abs(vpsSeconds - localSeconds) >= 90) - { - // 同步本地时间 - var netUtcTime = DateTimeUtils.GetUTCTime(); - DateTimeUtils.SetDate(netUtcTime.ToLocalTime()); - - // 同步VPS时间 - var utcTS = DateTimeUtils.GetUTCTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0); - long timeStampVPS = Convert.ToInt64(utcTS.TotalSeconds); - RunCmd($"date --set=\"$(date \"+%Y-%m-%d %H:%M:%S\" -d @{timeStampVPS.ToString()})\""); - } - } - - /// - /// 验证域名是否绑定了主机 - /// - protected void ValidateDomain() - { - if (OnlyIpv6) - { - string cmdFilter = @"| grep -oE '(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))' | head -n 1"; - var cmd = $"dig @resolver1.opendns.com AAAA {Parameters.Domain} +short -6 {cmdFilter}"; - var result = RunCmd(cmd).TrimEnd('\r', '\n'); - - if (result == IPv6) return; - } - - else - { - string cmdFilter = @"| grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1"; - var cmd = $"dig @resolver1.opendns.com A {Parameters.Domain} +short -4 {cmdFilter}"; - var result = RunCmd(cmd).TrimEnd('\r', '\n'); - - if (result == IPv4) return; - - } - - - var btnResult = MessageBox.Show( - $"{Parameters.Domain}未能正常解析到服务器的IP,如果您使用了CDN请忽略,是否继续安装?", "提示", MessageBoxButton.YesNo); - - if (btnResult == MessageBoxResult.No) - { - throw new Exception($"域名解析失败,安装停止!"); - } - - } - - /// - /// 判断是否安装某个软件 - /// - /// - /// - protected bool FileExists(string path) - { - var cmdStr = $"if [[ -f {path} ]];then echo '1';else echo '0'; fi"; - var cmd = RunCmd(cmdStr); - return cmd.Trim() == "1"; - } - - /// - /// 安装 Caddy - /// - protected void InstallCaddy() - { - 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"); - RunCmd("rm -rf caddy_install.sh"); - RunCmd("systemctl enable caddy.service"); - } - - /// - /// 卸载 Caddy - /// - protected void UninstallCaddy() - { - 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 uninstall"); - RunCmd("rm -rf caddy_install.sh"); - RunCmd("rm -rf /usr/share/caddy"); - } - - - #region 检测系统环境 - - private bool IsOnlyIpv6() - { - string cmd; - - cmd = RunCmd(@"curl -s https://api.ip.sb/ip --ipv4 --max-time 8"); - IPv4 = cmd.TrimEnd('\r', '\n'); - - if (!string.IsNullOrEmpty(IPv4)) - { - OnlyIpv6 = false; - return false; - } - - cmd = RunCmd(@"curl -s https://api.ip.sb/ip --ipv6 --max-time 8"); - IPv6 = cmd.TrimEnd('\r', '\n'); - - if (string.IsNullOrEmpty(IPv6)) - { - throw new Exception("未检测可用的的IP地址"); - } - - OnlyIpv6 = true; - return OnlyIpv6; - } - - private bool SetPortFree(int port, bool force = true) - { - string result = RunCmd($"lsof -n -P -i :{port} | grep LISTEN"); - - if (!string.IsNullOrEmpty(result)) - { - if (force) - { - var btnResult = MessageBox.Show($"{port}端口被占用,将强制停止占用{port}端口的程序?", "提示", MessageBoxButton.YesNo); - if (btnResult == MessageBoxResult.No) - { - throw new Exception($"{port}端口被占用,安装停止!"); - } - - string[] process = result.Split(' '); - RunCmd($"systemctl stop {process[0]}"); - RunCmd($"systemctl disable {process[0]}"); - RunCmd($"pkill {process[0]}"); - return SetPortFree(port, force: false); - } - else - { - return false; - } - } - - return true; - } - - public void ConfigurePort() - { - if (Parameters.Port == 80 || Parameters.Port == 443) - { - SetPortFree(80); - SetPortFree(443); - } - else - { - SetPortFree(80); - SetPortFree(443); - SetPortFree(Parameters.Port); - - Parameters.FreePorts.ForEach(port => - { - SetPortFree(port); - }); - } - } - - protected void SetNat64() - { - var dns64List = FilterFastestIP(); - if (dns64List.Count == 0) - { - throw new Exception("未找到有效的Nat64网关"); - } - - var exists = FileExists("/etc/resolv.conf.proxysu"); - if (!exists) - { - var cmdStr = @"mv /etc/resolv.conf /etc/resolv.conf.proxysu"; - RunCmd(cmdStr); - } - - foreach (var gateip in dns64List) - { - RunCmd($"echo \"nameserver {gateip}\" > /etc/resolv.conf"); - } - } - - protected void RemoveNat64() - { - RunCmd("rm /etc/resolv.conf"); - RunCmd("mv /etc/resolv.conf.proxysu /etc/resolv.conf"); - } - - private List FilterFastestIP() - { - string[] gateNat64 = { - "2a01:4f9:c010:3f02::1", - "2001:67c:2b0::4", - "2001:67c:2b0::6", - "2a09:11c0:f1:bbf0::70", - "2a01:4f8:c2c:123f::1", - "2001:67c:27e4:15::6411", - "2001:67c:27e4::64", - "2001:67c:27e4:15::64", - "2001:67c:27e4::60", - "2a00:1098:2b::1", - "2a03:7900:2:0:31:3:104:161", - "2a00:1098:2c::1", - "2a09:11c0:100::53", - }; - - Dictionary dns64List = new Dictionary(); - foreach (var gateip in gateNat64) - { - var cmdStr = $"ping6 -c4 {gateip} | grep avg | awk '{{print $4}}'|cut -d/ -f2"; - var cmd = RunCmd(cmdStr); - if (!string.IsNullOrEmpty(cmd)) - { - if (float.TryParse(cmd, out float delay)) - { - dns64List.Add(gateip, delay); - } - } - } - - return dns64List.Keys.ToList(); - } - - #endregion - - - #region BBR - private bool CheckKernelVersionBBR(string kernelVer) - { - string[] linuxKernelCompared = kernelVer.Split('.'); - if (int.Parse(linuxKernelCompared[0]) > 4) - { - return true; - } - else if (int.Parse(linuxKernelCompared[0]) < 4) - { - return false; - } - else if (int.Parse(linuxKernelCompared[0]) == 4) - { - if (int.Parse(linuxKernelCompared[1]) >= 9) - { - return true; - } - else if (int.Parse(linuxKernelCompared[1]) < 9) - { - return false; - } - - } - return false; - - } - - protected void EnableBBR() - { - var osVersion = RunCmd("uname -r"); - var canInstallBBR = CheckKernelVersionBBR(osVersion.Split('-')[0]); - - var bbrInfo = RunCmd("sysctl net.ipv4.tcp_congestion_control | grep bbr"); - var installed = bbrInfo.Contains("bbr"); - if (canInstallBBR && !installed) - { - RunCmd(@"bash -c 'echo ""net.core.default_qdisc=fq"" >> /etc/sysctl.conf'"); - RunCmd(@"bash -c 'echo ""net.ipv4.tcp_congestion_control=bbr"" >> /etc/sysctl.conf'"); - RunCmd(@"sysctl -p"); - - if (OnlyIpv6) - { - RemoveNat64(); - } - WriteOutput("BBR启动成功"); - } - - if (!canInstallBBR) - { - WriteOutput("****** 系统不满足启用BBR条件,启动失败。 ******"); - } - - } - #endregion - - /// - /// 安装证书 - /// - /// - /// - protected void InstallCert(string dirPath, string certName, string keyName) - { - string certPath = Path.Combine(dirPath, certName); - string keyPath = Path.Combine(dirPath, keyName); - - // 安装依赖 - RunCmd(GetInstallCmd("socat")); - - // 解决搬瓦工CentOS缺少问题 - RunCmd(GetInstallCmd("automake autoconf libtool")); - - // 安装Acme - var result = RunCmd($"curl https://get.acme.sh yes | sh"); - if (result.Contains("Install success")) - { - WriteOutput("安装 acme.sh 成功"); - } - else - { - WriteOutput("安装 acme.sh 失败,请联系开发者!"); - throw new Exception("安装 acme.sh 失败,请联系开发者!"); - } - - RunCmd("cd ~/.acme.sh/"); - RunCmd("alias acme.sh=~/.acme.sh/acme.sh"); - - // 申请证书 - if (OnlyIpv6) - { - var cmd = $"/root/.acme.sh/acme.sh --force --debug --issue --standalone -d {Parameters.Domain} --listen-v6"; - result = RunCmd(cmd); - } - else - { - var cmd = $"/root/.acme.sh/acme.sh --force --debug --issue --standalone -d {Parameters.Domain}"; - result = RunCmd(cmd); - } - - if (result.Contains("success")) - { - WriteOutput("申请证书成功"); - } - else - { - WriteOutput("申请证书失败,如果申请次数过多请更换二级域名,或联系开发者!"); - throw new Exception("申请证书失败,如果申请次数过多请更换二级域名,或联系开发者!"); - } - - // 安装证书 - RunCmd($"mkdir -p {dirPath}"); - RunCmd($"/root/.acme.sh/acme.sh --installcert -d {Parameters.Domain} --certpath {certPath} --keypath {keyPath} --capath {certPath}"); - - result = RunCmd($@"if [ ! -f ""{keyPath}"" ]; then echo ""0""; else echo ""1""; fi | head -n 1"); - - if (result.Contains("1")) - { - WriteOutput("安装证书成功"); - } - else - { - WriteOutput("安装证书失败,请联系开发者!"); - throw new Exception("安装证书失败,请联系开发者!"); - } - - RunCmd($"chmod 755 {dirPath}"); - } - - /// - /// 上传文件 - /// - /// - /// - protected void UploadFile(Stream stream, string path) - { - using (var sftp = new SftpClient(_sshClient.ConnectionInfo)) - { - sftp.Connect(); - sftp.UploadFile(stream, path, true); - sftp.Disconnect(); - } - } - - /// - /// 根据系统环境匹配更新命令 - /// - /// - protected string GetUpdateCmd() - { - if (CmdType == CmdType.Apt) - { - return "apt-get update"; - } - else if (CmdType == CmdType.Dnf) - { - return "dnf clean all;dnf makecache"; - } - else if (CmdType == CmdType.Yum) - { - return "yum clean all;yum makecache"; - } - - throw new Exception("未识别的系统"); - } - - /// - /// 根据系统匹配安装命令 - /// - /// - /// - protected string GetInstallCmd(string soft) - { - if (CmdType == CmdType.Apt) - { - return "echo y | apt-get install " + soft; - } - else if (CmdType == CmdType.Dnf) - { - return "echo y | dnf -y install " + soft; - } - else if (CmdType == CmdType.Yum) - { - return "echo y | yum -y install " + soft; - } - - throw new Exception("未识别的系统"); - } - - } -} diff --git a/ProxySU_Core/Models/Developers/TrojanGoConfigBuilder.cs b/ProxySU_Core/Models/Developers/TrojanGoConfigBuilder.cs deleted file mode 100644 index c02a9d0..0000000 --- a/ProxySU_Core/Models/Developers/TrojanGoConfigBuilder.cs +++ /dev/null @@ -1,63 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Models.Developers -{ - public class TrojanGoConfigBuilder - { - public static readonly int WebPort = 8088; - - public static readonly string TrojanGoSettingPath = @"Templates\trojan-go\trojan-go.json"; - - public static readonly string CaddyFilePath = @"Templates\trojan-go\base.caddyfile"; - - public static string BuildTrojanGoConfig(TrojanGoSettings parameters) - { - var jsonStr = File.ReadAllText(TrojanGoSettingPath); - var settings = JToken.FromObject(JsonConvert.DeserializeObject(jsonStr)); - - settings["remote_port"] = WebPort; - settings["password"][0] = parameters.Password; - settings["ssl"]["sni"] = parameters.Domain; - - return JsonConvert.SerializeObject(settings, Formatting.Indented, new JsonSerializerSettings() - { - NullValueHandling = NullValueHandling.Ignore - }); - } - - public static string BuildCaddyConfig(TrojanGoSettings parameters, bool useCustomWeb = false) - { - var caddyStr = File.ReadAllText(CaddyFilePath); - caddyStr.Replace("##domain##", parameters.Domain); - caddyStr.Replace("##port##", WebPort.ToString()); - - if (!useCustomWeb && !string.IsNullOrEmpty(parameters.MaskDomain)) - { - var prefix = "http://"; - if (parameters.MaskDomain.StartsWith("https://")) - { - prefix = "https://"; - } - var domain = parameters.MaskDomain - .TrimStart("http://".ToCharArray()) - .TrimStart("https://".ToCharArray()); - - caddyStr = caddyStr.Replace("##reverse_proxy##", $"reverse_proxy {prefix}{domain} {{ \n header_up Host {domain} \n }}"); - } - else - { - caddyStr = caddyStr.Replace("##reverse_proxy##", ""); - } - - return caddyStr; - } - } - -} diff --git a/ProxySU_Core/Models/Developers/TrojanGoProject.cs b/ProxySU_Core/Models/Developers/TrojanGoProject.cs deleted file mode 100644 index bf6cf19..0000000 --- a/ProxySU_Core/Models/Developers/TrojanGoProject.cs +++ /dev/null @@ -1,135 +0,0 @@ -using Renci.SshNet; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; - -namespace ProxySU_Core.Models.Developers -{ - public class TrojanGoProject : Project - { - public TrojanGoProject(SshClient sshClient, TrojanGoSettings parameters, Action writeOutput) : base(sshClient, parameters, writeOutput) - { - } - - public override void Install() - { - try - { - EnsureRootAuth(); - - if (FileExists("/usr/local/bin/xray")) - { - var btnResult = MessageBox.Show("已经安装Xray,是否需要重装?", "提示", MessageBoxButton.YesNo); - if (btnResult == MessageBoxResult.No) - { - MessageBox.Show("安装终止", "提示"); - return; - } - } - - WriteOutput("检测安装系统环境..."); - EnsureSystemEnv(); - WriteOutput("检测安装系统环境完成"); - - WriteOutput("配置服务器端口..."); - ConfigurePort(); - WriteOutput("端口配置完成"); - - WriteOutput("安装必要的系统工具..."); - ConfigureSoftware(); - WriteOutput("系统工具安装完成"); - - WriteOutput("检测IP6..."); - ConfigureIPv6(); - WriteOutput("检测IP6完成"); - - WriteOutput("配置防火墙..."); - ConfigureFirewall(); - WriteOutput("防火墙配置完成"); - - WriteOutput("同步系统和本地时间..."); - SyncTimeDiff(); - WriteOutput("时间同步完成"); - - WriteOutput("检测域名是否绑定本机IP..."); - ValidateDomain(); - WriteOutput("域名检测完成"); - - WriteOutput("安装Trojan-Go..."); - InstallTrojanGo(); - WriteOutput("Trojan-Go安装完成"); - - WriteOutput("安装Caddy..."); - InstallCaddy(); - WriteOutput("Caddy安装完成"); - - WriteOutput("启动BBR"); - EnableBBR(); - - UploadCaddyFile(); - WriteOutput("************"); - WriteOutput("安装完成,尽情享用吧......"); - WriteOutput("************"); - } - catch (Exception ex) - { - var errorLog = "安装终止," + ex.Message; - WriteOutput(errorLog); - MessageBox.Show(errorLog); - } - } - - private void InstallTrojanGo() - { - WriteOutput("安装Trojan-Go"); - RunCmd(@"curl https://raw.githubusercontent.com/proxysu/shellscript/master/trojan-go.sh yes | bash"); - var success = FileExists("/usr/local/etc/trojan-go"); - if (success == false) - { - throw new Exception("trojan-go 安装失败,请联系开发者!"); - } - - RunCmd($"sed -i 's/User=nobody/User=root/g' /etc/systemd/system/xray.service"); - RunCmd($"sed -i 's/CapabilityBoundingSet=/#CapabilityBoundingSet=/g' /etc/systemd/system/xray.service"); - RunCmd($"sed -i 's/AmbientCapabilities=/#AmbientCapabilities=/g' /etc/systemd/system/xray.service"); - RunCmd($"systemctl daemon-reload"); - - RunCmd("systemctl enable trojan-go"); - RunCmd("systemctl start trojan-go"); - WriteOutput("Trojan-Go 安装完成"); - - InstallCert( - dirPath: "/usr/local/etc/trojan-go", - certName: "trojan-go.crt", - keyName: "trojan-go.key"); - - if (FileExists("/usr/local/etc/trojan-go/config.json")) - { - RunCmd("mv /usr/local/etc/trojan-go/config.json config.json.old"); - } - - // 上传配置 - var settings = TrojanGoConfigBuilder.BuildTrojanGoConfig(Parameters); - var stream = new MemoryStream(Encoding.UTF8.GetBytes(settings)); - UploadFile(stream, "/usr/local/etc/trojan-go/config.json"); - RunCmd("systemctl restart trojan-go"); - } - - private void UploadCaddyFile(bool useCustomWeb = false) - { - var config = TrojanGoConfigBuilder.BuildCaddyConfig(Parameters, useCustomWeb); - var stream = new MemoryStream(Encoding.UTF8.GetBytes(config)); - if (FileExists("/etc/caddy/Caddyfile")) - { - RunCmd("mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.back"); - } - UploadFile(stream, "/etc/caddy/Caddyfile"); - RunCmd("systemctl restart caddy"); - } - } - -} diff --git a/ProxySU_Core/Models/Developers/TrojanGoSettings.cs b/ProxySU_Core/Models/Developers/TrojanGoSettings.cs deleted file mode 100644 index 6dd2102..0000000 --- a/ProxySU_Core/Models/Developers/TrojanGoSettings.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Models.Developers -{ - public class TrojanGoSettings : IParameters - { - public int Port { get; set; } - - public List FreePorts - { - get - { - return new List(); - } - } - - public string Domain { get; set; } - - public List Types { get; set; } - - public string Password { get; set; } - - public string MaskDomain { get; set; } - } -} diff --git a/ProxySU_Core/Models/Developers/XrayConfigBuilder.cs b/ProxySU_Core/Models/Developers/XrayConfigBuilder.cs deleted file mode 100644 index d7eb4be..0000000 --- a/ProxySU_Core/Models/Developers/XrayConfigBuilder.cs +++ /dev/null @@ -1,232 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace ProxySU_Core.Models.Developers -{ - public class XrayConfigBuilder - { - private const string ServerLogDir = @"Templates\xray\server\00_log"; - private const string ServerApiDir = @"Templates\xray\server\01_api"; - private const string ServerDnsDir = @"Templates\xray\server\02_dns"; - private const string ServerRoutingDir = @"Templates\xray\server\03_routing"; - private const string ServerPolicyDir = @"Templates\xray\server\04_policy"; - private const string ServerInboundsDir = @"Templates\xray\server\05_inbounds"; - private const string ServerOutboundsDir = @"Templates\xray\server\06_outbounds"; - private const string ServerTransportDir = @"Templates\xray\server\07_transport"; - private const string ServerStatsDir = @"Templates\xray\server\08_stats"; - private const string ServerReverseDir = @"Templates\xray\server\09_reverse"; - private const string CaddyFileDir = @"Templates\xray\caddy"; - - public static int VLESS_TCP_Port = 1110; - public static int VLESS_WS_Port = 1111; - public static int VLESS_H2_Port = 1112; - public static int VLESS_mKCP_Port = 1113; - - public static int VMESS_TCP_Port = 1210; - public static int VMESS_WS_Port = 1211; - public static int VMESS_H2_Port = 1212; - - public static int Trojan_TCP_Port = 1310; - public static int Trojan_WS_Port = 1311; - - public static int FullbackPort = 8080; - - - - public static dynamic LoadXrayConfig() - { - dynamic logObj = LoadJsonObj(Path.Combine(ServerLogDir, "00_log.json")); - dynamic apiObj = LoadJsonObj(Path.Combine(ServerApiDir, "01_api.json")); - dynamic dnsObj = LoadJsonObj(Path.Combine(ServerDnsDir, "02_dns.json")); - dynamic routingObj = LoadJsonObj(Path.Combine(ServerRoutingDir, "03_routing.json")); - dynamic policyObj = LoadJsonObj(Path.Combine(ServerPolicyDir, "04_policy.json")); - dynamic inboundsObj = LoadJsonObj(Path.Combine(ServerInboundsDir, "05_inbounds.json")); - dynamic outboundsObj = LoadJsonObj(Path.Combine(ServerOutboundsDir, "06_outbounds.json")); - dynamic transportObj = LoadJsonObj(Path.Combine(ServerTransportDir, "07_transport.json")); - dynamic statsObj = LoadJsonObj(Path.Combine(ServerStatsDir, "08_stats.json")); - dynamic reverseObj = LoadJsonObj(Path.Combine(ServerReverseDir, "09_reverse.json")); - - return new - { - log = logObj["log"], - //api = apiObj["api"], api不能为空 - dns = dnsObj["dns"], - routing = routingObj["routing"], - policy = policyObj["policy"], - inbounds = inboundsObj["inbounds"], - outbounds = outboundsObj["outbounds"], - transport = transportObj["transport"], - stats = statsObj["stats"], - reverse = reverseObj["reverse"] - }; - } - - public static string BuildCaddyConfig(XraySettings parameters, bool useCustomWeb = false) - { - var caddyStr = File.ReadAllText(Path.Combine(CaddyFileDir, "base.caddyfile")); - caddyStr = caddyStr.Replace("##domain##", parameters.Domain); - caddyStr = caddyStr.Replace("##port##", FullbackPort.ToString()); - - if (!useCustomWeb && !string.IsNullOrEmpty(parameters.MaskDomain)) - { - var prefix = "http://"; - if (parameters.MaskDomain.StartsWith("https://")) - { - prefix = "https://"; - } - var domain = parameters.MaskDomain - .TrimStart("http://".ToCharArray()) - .TrimStart("https://".ToCharArray()); - - caddyStr = caddyStr.Replace("##reverse_proxy##", $"reverse_proxy {prefix}{domain} {{ \n header_up Host {domain} \n }}"); - } - else - { - caddyStr = caddyStr.Replace("##reverse_proxy##", ""); - } - - return caddyStr; - } - - public static string BuildXrayConfig(XraySettings parameters) - { - var xrayConfig = LoadXrayConfig(); - var baseBound = GetBound("VLESS_TCP_XTLS.json"); - baseBound.port = parameters.Port; - baseBound.settings.fallbacks.Add(JToken.FromObject(new - { - dest = FullbackPort - })); - xrayConfig.inbounds.Add(baseBound); - baseBound.settings.clients[0].id = parameters.UUID; - - if (parameters.Types.Contains(XrayType.VLESS_WS)) - { - var wsInbound = GetBound("VLESS_WS.json"); - wsInbound.port = VLESS_WS_Port; - wsInbound.settings.clients[0].id = parameters.UUID; - wsInbound.streamSettings.wsSettings.path = parameters.VLESS_WS_Path; - baseBound.settings.fallbacks.Add(JToken.FromObject(new - { - dest = VLESS_WS_Port, - path = parameters.VLESS_WS_Path, - xver = 1, - })); - xrayConfig.inbounds.Add(JToken.FromObject(wsInbound)); - } - - if (parameters.Types.Contains(XrayType.VLESS_gRPC)) - { - var gRPCInBound = GetBound("VLESS_gRPC.json"); - gRPCInBound.port = parameters.VLESS_gRPC_Port; - gRPCInBound.settings.clients[0].id = parameters.UUID; - gRPCInBound.streamSettings.grpcSettings.serviceName = parameters.VLESS_gRPC_ServiceName; - xrayConfig.inbounds.Add(JToken.FromObject(gRPCInBound)); - } - - if (parameters.Types.Contains(XrayType.VLESS_KCP)) - { - var kcpBound = GetBound("VLESS_KCP.json"); - kcpBound.port = parameters.VLESS_KCP_Port; - kcpBound.settings.clients[0].id = parameters.UUID; - kcpBound.streamSettings.kcpSettings.header.type = parameters.VLESS_KCP_Type; - kcpBound.streamSettings.kcpSettings.seed = parameters.VLESS_KCP_Seed; - xrayConfig.inbounds.Add(JToken.FromObject(kcpBound)); - } - - if (parameters.Types.Contains(XrayType.VMESS_TCP)) - { - var mtcpBound = GetBound("VMESS_TCP.json"); - mtcpBound.port = VMESS_TCP_Port; - mtcpBound.settings.clients[0].id = parameters.UUID; - mtcpBound.streamSettings.tcpSettings.header.request.path = parameters.VMESS_TCP_Path; - baseBound.settings.fallbacks.Add(JToken.FromObject(new - { - dest = VMESS_TCP_Port, - path = parameters.VMESS_TCP_Path, - xver = 1, - })); - xrayConfig.inbounds.Add(JToken.FromObject(mtcpBound)); - } - - if (parameters.Types.Contains(XrayType.VMESS_WS)) - { - var mwsBound = GetBound("VMESS_WS.json"); - mwsBound.port = VMESS_WS_Port; - mwsBound.settings.clients[0].id = parameters.UUID; - mwsBound.streamSettings.wsSettings.path = parameters.VMESS_WS_Path; - baseBound.settings.fallbacks.Add(JToken.FromObject(new - { - dest = VMESS_WS_Port, - path = parameters.VMESS_WS_Path, - xver = 1, - })); - xrayConfig.inbounds.Add(JToken.FromObject(mwsBound)); - } - - if (parameters.Types.Contains(XrayType.VMESS_KCP)) - { - var kcpBound = GetBound("VMESS_KCP.json"); - kcpBound.port = parameters.VMESS_KCP_Port; - kcpBound.settings.clients[0].id = parameters.UUID; - kcpBound.streamSettings.kcpSettings.header.type = parameters.VMESS_KCP_Type; - kcpBound.streamSettings.kcpSettings.seed = parameters.VMESS_KCP_Seed; - xrayConfig.inbounds.Add(JToken.FromObject(kcpBound)); - } - - if (parameters.Types.Contains(XrayType.Trojan_TCP)) - { - var trojanTcpBound = GetBound("Trojan_TCP.json"); - trojanTcpBound.port = Trojan_TCP_Port; - trojanTcpBound.settings.clients[0].password = parameters.TrojanPassword; - trojanTcpBound.settings.fallbacks[0].dest = FullbackPort; - baseBound.settings.fallbacks[0] = JToken.FromObject(new - { - dest = Trojan_TCP_Port, - xver = 1, - }); - xrayConfig.inbounds.Add(JToken.FromObject(trojanTcpBound)); - } - - - if (parameters.Types.Contains(XrayType.ShadowsocksAEAD)) - { - var ssBound = GetBound("Shadowsocks-AEAD.json"); - ssBound.port = parameters.ShadowSocksPort; - ssBound.settings.clients[0].password = parameters.ShadowsocksPassword; - ssBound.settings.clients[0].method = parameters.ShadowsocksMethod; - xrayConfig.inbounds.Add(JToken.FromObject(ssBound)); - } - - return JsonConvert.SerializeObject( - xrayConfig, - Formatting.Indented, - new JsonSerializerSettings() - { - NullValueHandling = NullValueHandling.Ignore - }); - } - - private static dynamic GetBound(string name) - { - return LoadJsonObj(Path.Combine(ServerInboundsDir, name)); - } - - private static dynamic LoadJsonObj(string path) - { - if (File.Exists(path)) - { - var jsonStr = File.ReadAllText(path, Encoding.UTF8); - return JToken.FromObject(JsonConvert.DeserializeObject(jsonStr)); - } - return null; - } - - } - -} diff --git a/ProxySU_Core/Models/Developers/XrayProject.cs b/ProxySU_Core/Models/Developers/XrayProject.cs deleted file mode 100644 index f0678af..0000000 --- a/ProxySU_Core/Models/Developers/XrayProject.cs +++ /dev/null @@ -1,321 +0,0 @@ -using Renci.SshNet; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Windows; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using ProxySU_Core.Models; - -namespace ProxySU_Core.Models.Developers -{ - public class XrayProject : Project - { - - private const string ServerLogDir = @"Templates\xray\server\00_log"; - private const string ServerApiDir = @"Templates\xray\server\01_api"; - private const string ServerDnsDir = @"Templates\xray\server\02_dns"; - private const string ServerRoutingDir = @"Templates\xray\server\03_routing"; - private const string ServerPolicyDir = @"Templates\xray\server\04_policy"; - private const string ServerInboundsDir = @"Templates\xray\server\05_inbounds"; - private const string ServerOutboundsDir = @"Templates\xray\server\06_outbounds"; - private const string ServerTransportDir = @"Templates\xray\server\07_transport"; - private const string ServerStatsDir = @"Templates\xray\server\08_stats"; - private const string ServerReverseDir = @"Templates\xray\server\09_reverse"; - private const string CaddyFileDir = @"Templates\xray\caddy"; - - public XrayProject(SshClient sshClient, XraySettings parameters, Action writeOutput) : base(sshClient, parameters, writeOutput) - { - } - - - /// - /// 安装Xray - /// - public override void Install() - { - try - { - EnsureRootAuth(); - - if (FileExists("/usr/local/bin/xray")) - { - var btnResult = MessageBox.Show("已经安装Xray,是否需要重装?", "提示", MessageBoxButton.YesNo); - if (btnResult == MessageBoxResult.No) - { - MessageBox.Show("安装终止", "提示"); - return; - } - } - - WriteOutput("检测安装系统环境..."); - EnsureSystemEnv(); - WriteOutput("检测安装系统环境完成"); - - WriteOutput("配置服务器端口..."); - ConfigurePort(); - WriteOutput("端口配置完成"); - - WriteOutput("安装必要的系统工具..."); - ConfigureSoftware(); - WriteOutput("系统工具安装完成"); - - WriteOutput("检测IP6..."); - ConfigureIPv6(); - WriteOutput("检测IP6完成"); - - WriteOutput("配置防火墙..."); - ConfigureFirewall(); - WriteOutput("防火墙配置完成"); - - WriteOutput("同步系统和本地时间..."); - SyncTimeDiff(); - WriteOutput("时间同步完成"); - - WriteOutput("检测域名是否绑定本机IP..."); - ValidateDomain(); - WriteOutput("域名检测完成"); - - WriteOutput("安装Xray-Core..."); - InstallXrayWithCert(); - WriteOutput("Xray-Core安装完成"); - - WriteOutput("安装Caddy..."); - InstallCaddy(); - WriteOutput("Caddy安装完成"); - - WriteOutput("启动BBR"); - EnableBBR(); - - UploadCaddyFile(); - WriteOutput("************"); - WriteOutput("安装完成,尽情享用吧......"); - WriteOutput("************"); - } - catch (Exception ex) - { - var errorLog = "安装终止," + ex.Message; - WriteOutput(errorLog); - MessageBox.Show(errorLog); - } - } - - public void UninstallProxy() - { - EnsureRootAuth(); - WriteOutput("卸载Caddy"); - UninstallCaddy(); - WriteOutput("卸载Xray"); - UninstallXray(); - WriteOutput("卸载证书"); - UninstallAcme(); - WriteOutput("关闭端口"); - ClosePort(Parameters.ShadowSocksPort, Parameters.VMESS_KCP_Port); - - WriteOutput("************ 卸载完成 ************"); - } - - /// - /// 更新xray内核 - /// - public void UpdateXrayCore() - { - EnsureRootAuth(); - EnsureSystemEnv(); - RunCmd("bash -c \"$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)\" @ install"); - RunCmd("systemctl restart xray"); - WriteOutput("************ 更新xray内核完成 ************"); - } - - /// - /// 更新xray配置 - /// - public void UpdateXraySettings() - { - EnsureRootAuth(); - EnsureSystemEnv(); - ConfigureFirewall(); - var configJson = XrayConfigBuilder.BuildXrayConfig(Parameters); - 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"); - ConfigurePort(); - UploadCaddyFile(string.IsNullOrEmpty(Parameters.MaskDomain)); - RunCmd("systemctl restart xray"); - WriteOutput("************ 更新Xray配置成功,更新配置不包含域名,如果域名更换请重新安装。 ************"); - } - - /// - /// 重装Caddy - /// - public void DoUninstallCaddy() - { - EnsureRootAuth(); - UninstallCaddy(); - WriteOutput("************ 卸载Caddy完成 ************"); - } - - /// - /// 安装证书 - /// - public void InstallCertToXray() - { - EnsureRootAuth(); - EnsureSystemEnv(); - InstallCert( - dirPath: "/usr/local/etc/xray/ssl", - certName: "xray_ssl.crt", - keyName: "xray_ssl.key"); - - RunCmd("systemctl restart xray"); - WriteOutput("************ 安装证书完成 ************"); - } - - /// - /// 上传证书 - /// - /// - /// - public void UploadCert(Stream stream) - { - EnsureRootAuth(); - EnsureSystemEnv(); - - // 转移旧文件 - var oldFileName = $"ssl_{DateTime.Now.Ticks}"; - RunCmd($"mv /usr/local/etc/xray/ssl /usr/local/etc/xray/{oldFileName}"); - - // 上传新文件 - RunCmd("mkdir /usr/local/etc/xray/ssl"); - UploadFile(stream, "/usr/local/etc/xray/ssl/ssl.zip"); - RunCmd("unzip /usr/local/etc/xray/ssl/ssl.zip -d /usr/local/etc/xray/ssl"); - - // 改名 - var crtFiles = RunCmd("find /usr/local/etc/xray/ssl/*.crt").Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); - if (crtFiles.Length > 0) - { - RunCmd($"mv {crtFiles[0]} /usr/local/etc/xray/ssl/xray_ssl.crt"); - } - else - { - WriteOutput("************ 上传证书失败,请联系开发者 ************"); - RunCmd("rm -rf /usr/local/etc/xray/ssl"); - RunCmd($"mv /usr/local/etc/xray/ssl{oldFileName} /usr/local/etc/xray/ssl"); - WriteOutput("操作已回滚"); - return; - } - - var keyFiles = RunCmd("find /usr/local/etc/xray/ssl/*.key").Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); - if (keyFiles.Length > 0) - { - RunCmd($"mv {keyFiles[0]} /usr/local/etc/xray/ssl/xray_ssl.key"); - } - else - { - WriteOutput("************ 上传证书失败,请联系开发者 ************"); - RunCmd("rm -rf /usr/local/etc/xray/ssl"); - RunCmd($"mv /usr/local/etc/xray/ssl{oldFileName} /usr/local/etc/xray/ssl"); - WriteOutput("操作已回滚"); - return; - } - - 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"); - UploadCaddyFile(useCustomWeb: true); - WriteOutput("************ 上传网站模板完成 ************"); - } - - - private void UploadCaddyFile(bool useCustomWeb = false) - { - var configJson = XrayConfigBuilder.BuildCaddyConfig(Parameters, useCustomWeb); - var stream = new MemoryStream(Encoding.UTF8.GetBytes(configJson)); - if (FileExists("/etc/caddy/Caddyfile")) - { - RunCmd("mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.back"); - } - UploadFile(stream, "/etc/caddy/Caddyfile"); - RunCmd("systemctl restart caddy"); - } - - - - private void UninstallXray() - { - RunCmd("bash -c \"$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)\" @ remove"); - } - - private void UninstallAcme() - { - RunCmd("acme.sh --uninstall"); - RunCmd("rm -r ~/.acme.sh"); - } - - private void InstallXrayWithCert() - { - RunCmd("bash -c \"$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)\" @ install"); - - if (!FileExists("/usr/local/bin/xray")) - { - WriteOutput("Xray-Core安装失败,请联系开发者"); - throw new Exception("Xray-Core安装失败,请联系开发者"); - } - - RunCmd($"sed -i 's/User=nobody/User=root/g' /etc/systemd/system/xray.service"); - RunCmd($"sed -i 's/CapabilityBoundingSet=/#CapabilityBoundingSet=/g' /etc/systemd/system/xray.service"); - RunCmd($"sed -i 's/AmbientCapabilities=/#AmbientCapabilities=/g' /etc/systemd/system/xray.service"); - RunCmd($"systemctl daemon-reload"); - - if (FileExists("/usr/local/etc/xray/config.json")) - { - RunCmd(@"mv /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.1"); - } - - WriteOutput("安装TLS证书"); - InstallCertToXray(); - WriteOutput("TLS证书安装完成"); - - - var configJson = XrayConfigBuilder.BuildXrayConfig(Parameters); - var stream = new MemoryStream(Encoding.UTF8.GetBytes(configJson)); - UploadFile(stream, "/usr/local/etc/xray/config.json"); - RunCmd("systemctl restart xray"); - } - - private int GetRandomPort() - { - var random = new Random(); - return random.Next(10001, 60000); - } - - private dynamic LoadJsonObj(string path) - { - if (File.Exists(path)) - { - var jsonStr = File.ReadAllText(path, Encoding.UTF8); - return JsonConvert.DeserializeObject(jsonStr); - } - return null; - } - - } -} diff --git a/ProxySU_Core/Models/Developers/XraySettings.cs b/ProxySU_Core/Models/Developers/XraySettings.cs deleted file mode 100644 index 0b6e274..0000000 --- a/ProxySU_Core/Models/Developers/XraySettings.cs +++ /dev/null @@ -1,220 +0,0 @@ -using Newtonsoft.Json; -using ProxySU_Core.Common; -using ProxySU_Core.Models.Developers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Web; - -namespace ProxySU_Core.Models -{ - public class XraySettings : IParameters - { - - public XraySettings() - { - var guid = Guid.NewGuid().ToString(); - Port = 443; - VLESS_KCP_Port = 2001; - VLESS_gRPC_Port = 2002; - VMESS_KCP_Port = 3001; - ShadowSocksPort = 4001; - - UUID = guid; - Types = new List(); - - VLESS_WS_Path = "/vlessws"; - VLESS_H2_Path = "/vlessh2"; - VLESS_KCP_Type = "none"; - VLESS_KCP_Seed = guid; - VLESS_gRPC_ServiceName = "xray_gRPC"; - - VMESS_WS_Path = "/vmessws"; - VMESS_TCP_Path = "/vmesstcp"; - VMESS_H2_Path = "/vmessh2"; - VMESS_KCP_Seed = guid; - VMESS_KCP_Type = "none"; - - TrojanPassword = guid; - Trojan_WS_Path = "/trojanws"; - - ShadowsocksPassword = guid; - ShadowsocksMethod = "aes-128-gcm"; - } - - /// - /// 访问端口 - /// - public int Port { get; set; } - - - /// - /// UUID - /// - public string UUID { get; set; } - - #region vless - - - /// - /// vless ws路径 - /// - public string VLESS_WS_Path { get; set; } - - /// - /// vless http2 path - /// - public string VLESS_H2_Path { get; set; } - - /// - /// vless kcp seed - /// - public string VLESS_KCP_Seed { get; set; } - - /// - /// vless kcp type - /// - public string VLESS_KCP_Type { get; set; } - - /// - /// vless kcp端口 - /// - public int VLESS_KCP_Port { get; set; } - - /// - /// grpc service name - /// - public string VLESS_gRPC_ServiceName { get; set; } - - /// - /// grpc port - /// - public int VLESS_gRPC_Port { get; set; } - - #endregion - - #region vmess - /// - /// vmess ws路径 - /// - public string VMESS_WS_Path { get; set; } - - /// - /// vmess tcp路径 - /// - public string VMESS_TCP_Path { get; set; } - - /// - /// vmess http2 path - /// - public string VMESS_H2_Path { get; set; } - - /// - /// vmess kcp seed - /// - public string VMESS_KCP_Seed { get; set; } - - /// - /// vmess kcp type - /// - public string VMESS_KCP_Type { get; set; } - - /// - /// vmess kcp端口 - /// - public int VMESS_KCP_Port { get; set; } - #endregion - - #region Trojan - /// - /// trojan密码 - /// - public string TrojanPassword { get; set; } - - /// - /// trojan ws path - /// - public string Trojan_WS_Path { get; set; } - #endregion - - #region ShadowsocksAEAD - /// - /// ss password - /// - public string ShadowsocksPassword { get; set; } - - /// - /// ss method - /// - public string ShadowsocksMethod { get; set; } - - /// - /// ss端口 - /// - public int ShadowSocksPort { get; set; } - #endregion - - - /// - /// 域名 - /// - public string Domain { get; set; } - - /// - /// 伪装域名 - /// - public string MaskDomain { get; set; } - - /// - /// 安装类型 - /// - public List Types { get; set; } - - public List FreePorts - { - get - { - return new List - { - VLESS_gRPC_Port, - VLESS_KCP_Port, - VMESS_KCP_Port, - ShadowSocksPort, - }; - } - } - - public string GetPath(XrayType type) - { - switch (type) - { - case XrayType.VLESS_WS: - return VLESS_WS_Path; - case XrayType.VLESS_H2: - return VLESS_H2_Path; - - case XrayType.VMESS_TCP: - return VMESS_TCP_Path; - case XrayType.VMESS_WS: - return VMESS_WS_Path; - case XrayType.Trojan_WS: - return Trojan_WS_Path; - - // no path - case XrayType.VLESS_TCP_XTLS: - case XrayType.VLESS_TCP: - case XrayType.VLESS_KCP: - case XrayType.VMESS_KCP: - case XrayType.Trojan_TCP: - return string.Empty; - default: - return string.Empty; - } - } - - } - - -} diff --git a/ProxySU_Core/Models/Host.cs b/ProxySU_Core/Models/Host.cs deleted file mode 100644 index c4d3fc8..0000000 --- a/ProxySU_Core/Models/Host.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Models -{ - public class Host - { - - - public Host() - { - Proxy = new LocalProxy(); - } - - - public string Tag { get; set; } - - public string Address { get; set; } - - public string UserName { get; set; } - - public string Password { get; set; } - - public int Port { get; set; } = 22; - - public string PrivateKeyPath { get; set; } - - public LocalProxy Proxy { get; set; } - - public LoginSecretType SecretType { get; set; } - } -} diff --git a/ProxySU_Core/Models/LocalProxy.cs b/ProxySU_Core/Models/LocalProxy.cs deleted file mode 100644 index 7e71c8b..0000000 --- a/ProxySU_Core/Models/LocalProxy.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ProxySU_Core.Models -{ - public class LocalProxy - { - public string Address { get; set; } = "127.0.0.1"; - - public int Port { get; set; } = 1080; - - public LocalProxyType Type { get; set; } - - public string UserName { get; set; } - - public string Password { get; set; } - - } -} diff --git a/ProxySU_Core/Models/LocalProxyType.cs b/ProxySU_Core/Models/LocalProxyType.cs deleted file mode 100644 index c74da49..0000000 --- a/ProxySU_Core/Models/LocalProxyType.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ProxySU_Core.Models -{ - public enum LocalProxyType - { - None = 0, - // - // 摘要: - // A SOCKS4 proxy server. - Socks4 = 1, - // - // 摘要: - // A SOCKS5 proxy server. - Socks5 = 2, - // - // 摘要: - // A HTTP proxy server. - Http = 3 - } -} diff --git a/ProxySU_Core/Models/LoginSecretType.cs b/ProxySU_Core/Models/LoginSecretType.cs deleted file mode 100644 index 66c2602..0000000 --- a/ProxySU_Core/Models/LoginSecretType.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ProxySU_Core.Models -{ - public enum LoginSecretType - { - Password = 0, - PrivateKey = 1 - } -} diff --git a/ProxySU_Core/Models/Record.cs b/ProxySU_Core/Models/Record.cs deleted file mode 100644 index 091ac2f..0000000 --- a/ProxySU_Core/Models/Record.cs +++ /dev/null @@ -1,24 +0,0 @@ -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.Text; - -namespace ProxySU_Core.Models -{ - public class Record - { - public Record() - { - - } - - public Record(Host host) - { - this.Host = host; - } - - public Host Host { get; set; } = new Host(); - - public XraySettings Settings { get; set; } = new XraySettings(); - } -} diff --git a/ProxySU_Core/Models/ShareLink.cs b/ProxySU_Core/Models/ShareLink.cs deleted file mode 100644 index 8c606a4..0000000 --- a/ProxySU_Core/Models/ShareLink.cs +++ /dev/null @@ -1,196 +0,0 @@ -using Newtonsoft.Json; -using ProxySU_Core.Common; -using ProxySU_Core.Models.Developers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Web; - -namespace ProxySU_Core.Models -{ - public class ShareLink - { - public static string Build(XrayType xrayType, XraySettings settings) - { - - switch (xrayType) - { - case XrayType.VLESS_TCP: - case XrayType.VLESS_TCP_XTLS: - case XrayType.VLESS_WS: - case XrayType.VLESS_KCP: - case XrayType.VLESS_gRPC: - case XrayType.Trojan_TCP: - return BuildVlessShareLink(xrayType, settings); - case XrayType.VMESS_TCP: - case XrayType.VMESS_WS: - case XrayType.VMESS_KCP: - return BuildVmessShareLink(xrayType, settings); - case XrayType.ShadowsocksAEAD: - return BuildShadowSocksShareLink(settings); - default: - return string.Empty; - } - } - - private static string BuildShadowSocksShareLink(XraySettings settings) - { - var _method = settings.ShadowsocksMethod; - var _password = settings.ShadowsocksPassword; - var _server = settings.Domain; - var _port = settings.ShadowSocksPort; - - var base64URL = Base64.Encode($"{_method}:{_password}@{_server}:{_port}"); - return "ss://" + base64URL + "#ShadowSocks"; - } - - private static string BuildVmessShareLink(XrayType xrayType, XraySettings settings) - { - var vmess = new Vmess - { - v = "2", - add = settings.Domain, - port = settings.Port.ToString(), - id = settings.UUID, - aid = "0", - net = "", - type = "none", - host = settings.Domain, - path = "", - tls = "tls", - ps = "", - }; - - switch (xrayType) - { - case XrayType.VMESS_TCP: - vmess.ps = "vmess-tcp-tls"; - vmess.net = "tcp"; - vmess.type = "http"; - vmess.path = settings.VMESS_TCP_Path; - break; - case XrayType.VMESS_WS: - vmess.ps = "vmess-ws-tls"; - vmess.net = "ws"; - vmess.type = "none"; - vmess.path = settings.VMESS_WS_Path; - break; - case XrayType.VMESS_KCP: - vmess.ps = "vmess-mKCP"; - vmess.port = settings.VMESS_KCP_Port.ToString(); - vmess.net = "kcp"; - vmess.type = settings.VMESS_KCP_Type; - vmess.path = settings.VMESS_KCP_Seed; - vmess.tls = ""; - break; - default: - return string.Empty; - } - - var base64Url = Base64.Encode(JsonConvert.SerializeObject(vmess)); - return $"vmess://" + base64Url; - } - - private static string BuildVlessShareLink(XrayType xrayType, XraySettings settings) - { - var _protocol = string.Empty; - var _uuid = settings.UUID; - var _domain = settings.Domain; - var _port = settings.Port; - var _type = string.Empty; - var _encryption = "none"; - var _security = "tls"; - var _path = "/"; - var _host = settings.Domain; - var _descriptiveText = string.Empty; - var _headerType = "none"; - var _seed = string.Empty; - - switch (xrayType) - { - case XrayType.VLESS_TCP: - _protocol = "vless"; - _type = "tcp"; - _descriptiveText = "vless-tcp-tls"; - break; - case XrayType.VLESS_TCP_XTLS: - _protocol = "vless"; - _type = "tcp"; - _security = "xtls"; - _descriptiveText = "vless-tcp-xtls"; - break; - case XrayType.VLESS_WS: - _protocol = "vless"; - _type = "ws"; - _path = settings.VLESS_WS_Path; - _descriptiveText = "vless-ws-tls"; - break; - case XrayType.VLESS_KCP: - _protocol = "vless"; - _type = "kcp"; - _headerType = settings.VLESS_KCP_Type; - _seed = settings.VLESS_KCP_Seed; - _port = settings.VLESS_KCP_Port; - _security = "none"; - _descriptiveText = "vless-mKCP"; - break; - case XrayType.VLESS_gRPC: - _protocol = "vless"; - _type = "grpc"; - _path = settings.VLESS_gRPC_ServiceName; - _descriptiveText = "vless-gRPC"; - break; - case XrayType.Trojan_TCP: - _protocol = "trojan"; - _uuid = settings.TrojanPassword; - _descriptiveText = "trojan-tcp"; - break; - default: - throw new Exception("暂未实现的协议"); - } - - - string parametersURL = string.Empty; - if (xrayType != XrayType.Trojan_TCP) - { - // 4.3 传输层相关段 - parametersURL = $"?type={_type}&encryption={_encryption}&security={_security}&path={HttpUtility.UrlEncode(_path)}&headerType={_headerType}"; - - // kcp - if (xrayType == XrayType.VLESS_KCP) - { - parametersURL += $"&seed={_seed}"; - } - - // 4.4 TLS 相关段 - if (xrayType == XrayType.VLESS_TCP_XTLS) - { - parametersURL += "&flow=xtls-rprx-direct"; - } - } - - - return $"{_protocol}://{HttpUtility.UrlEncode(_uuid)}@{_domain}:{_port}{parametersURL}#{HttpUtility.UrlEncode(_descriptiveText)}"; - } - - } - - - - class Vmess - { - public string v { get; set; } - public string ps { get; set; } - public string add { get; set; } - public string port { get; set; } - public string id { get; set; } - public string aid { get; set; } - public string net { get; set; } - public string type { get; set; } - public string host { get; set; } - public string path { get; set; } - public string tls { get; set; } - } -} diff --git a/ProxySU_Core/Models/XrayType.cs b/ProxySU_Core/Models/XrayType.cs deleted file mode 100644 index 6611113..0000000 --- a/ProxySU_Core/Models/XrayType.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.Models -{ - public enum XrayType - { - // 入口 - VLESS_TCP_XTLS = 100, - - // VLESS 101开头 - VLESS_TCP = 101, - VLESS_WS = 102, - VLESS_H2 = 103, - VLESS_KCP = 104, - VLESS_gRPC = 110, - - // VMESS 201开头 - VMESS_TCP = 201, - VMESS_WS = 202, - VMESS_H2 = 203, - VMESS_KCP = 204, - - // Trojan 301开头 - Trojan_TCP = 301, - Trojan_WS = 302, - - // SS - ShadowsocksAEAD = 401 - } -} diff --git a/ProxySU_Core/Properties/AssemblyInfo.cs b/ProxySU_Core/Properties/AssemblyInfo.cs deleted file mode 100644 index 2107e9b..0000000 --- a/ProxySU_Core/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// 有关程序集的一般信息由以下 -// 控制。更改这些特性值可修改 -// 与程序集关联的信息。 -[assembly: AssemblyTitle("ProxySU_Core")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProxySU_Core")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// 将 ComVisible 设置为 false 会使此程序集中的类型 -//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 -//请将此类型的 ComVisible 特性设置为 true。 -[assembly: ComVisible(false)] - -//若要开始生成可本地化的应用程序,请设置 -//.csproj 文件中的 CultureYouAreCodingWith -//例如,如果您在源文件中使用的是美国英语, -//使用的是美国英语,请将 设置为 en-US。 然后取消 -//对以下 NeutralResourceLanguage 特性的注释。 更新 -//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //主题特定资源词典所处位置 - //(未在页面中找到资源时使用, - //或应用程序资源字典中找到时使用) - ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 - //(未在页面中找到资源时使用, - //、应用程序或任何主题专用资源字典中找到时使用) -)] - - -// 程序集的版本信息由下列四个值组成: -// -// 主版本 -// 次版本 -// 生成号 -// 修订号 -// -//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 -//通过使用 "*",如下所示: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.3.0")] -[assembly: AssemblyFileVersion("3.1.3.0")] diff --git a/ProxySU_Core/Properties/Resources.Designer.cs b/ProxySU_Core/Properties/Resources.Designer.cs deleted file mode 100644 index e7f1775..0000000 --- a/ProxySU_Core/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -namespace ProxySU_Core.Properties { - using System; - - - /// - /// 一个强类型的资源类,用于查找本地化的字符串等。 - /// - // 此类是由 StronglyTypedResourceBuilder - // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 - // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen - // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 返回此类使用的缓存的 ResourceManager 实例。 - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProxySU_Core.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 重写当前线程的 CurrentUICulture 属性,对 - /// 使用此强类型资源类的所有资源查找执行重写。 - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/ProxySU_Core/Properties/Resources.resx b/ProxySU_Core/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/ProxySU_Core/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ProxySU_Core/Properties/Settings.Designer.cs b/ProxySU_Core/Properties/Settings.Designer.cs deleted file mode 100644 index a45c35e..0000000 --- a/ProxySU_Core/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -namespace ProxySU_Core.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/ProxySU_Core/Properties/Settings.settings b/ProxySU_Core/Properties/Settings.settings deleted file mode 100644 index 033d7a5..0000000 --- a/ProxySU_Core/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/ProxySU_Core/ProxySU.ico b/ProxySU_Core/ProxySU.ico deleted file mode 100644 index 9d7a128c59c121d3e72c9d81575b05bde4971b2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI3cZd{87r^H@@cug$Gw6C4PZ87;b6Nu!K~#*$f&u+QF=1A8F<`=+bIxMUaTRk~ z^O@J2vl!M?SHCw~{q^+pj2mWFclUcsZB18Kzk2z-s+sn9e$#)Ekskg3FVEjKJ)WE% zkLPdQ^pGc7H^v1by;Wo^0Om?CjyuFCOSI;zUM)K6XFQ zOq1i%a-2`9-r&{BjrudWGNVCvV*{G;*l;rc{rh)C`}XZyIG0H(?pXNO4^h*G4dUbD zRoAXv)zYO)Rj*#X)WU@e)uKg3I0?p<1zGg**#R+W!6f z)u&IN5{*MoH1&K^o=NgtXfyEj>sNL7@L`e1k|j&jh7B9k+qZ9(;b-Q|nd;uXduF;{ z|LWB%HDksMwQ18P_5S^P>pu2%?bp<;xefY}qn(>JrXh7}GSIwU$ebLLFI7>JDU z4Fkvty&8bW&6_uyOX;6Hd7{>=S>rQiF0h}ICr^qU1c|$5|85@pDLu9^efo4u{}6$` z?fkD=waUlenM3?=+5_VN&*KN@&Ye?7j~?|7`u~5Shx`rFe_q%|@aajDCP^HyF9Q7w z7A&xaun)!z@EM;E20V}M?eW(!|EKXzd`73}*iDD0PMz|Jf#}-Fzg<2KzT|S(u3eH# z>~`cfFSW*?|Hh3Q5~GQ4FJHcNU7B2IkB3Zh@=wkT({Rr8?!%a$D10T$?=mXPxgynW^H&y zF4R8M2yV1G^-p}KjtB-yw(Vi+|Geh~~-uU_pVzkU1mDe`vi;Puji=s@7%d#N9+0-zd3#Sw7PKN zg6sWo4^r1U*TyDq-@YAiX*c^PChpuxx#orA$B(PamoJ;kfIYeI>C>lvwNt%nsQP0=`UWtRq7C9J*jg1xG zz(3sDty{Ou)SuEne*9SN*s(+GnfQ#)lc&rWc1_Fz$cy+3@jp;IaNvN*^`|fs=0!Q< zLGLtdqgAU`a`r+LsgF+Jwz8= zvv=6GZJX2wpshkj$mWd+1OKo0tJ+FAMSi^!h{Jjm-&1S1f19B z&YfH3&!1nlZQEAG*=jR#9OK|HXBzN@Z6Q~DoN@Ls$cQoK!tch78`Y>$qvV=#YKfEr zaRgj6&Y^+<^*ww+54p&$Kl2=8b?ep@eAGTsQBkUB(V{+Qe((VfY?(F5>0I06IyE3V zVZ3kOzN%TXW-5F3?5cnN{xZh6y+$_cC$)#(3Kc2{&XFTW27R2l(8$^};-M3mQ?6V& zl{s@}In$@MAzpLtX@EK1yLT5H$fjn^nqm{=76a^ejqV2w7$CByHq4nbr_Z>VpOSvi zpg}@Q_3G7Kb!x{=-Ddc&Ql*ODcTe!vxN&2lkvhi6qd|iPKDap}D^;qLg=_5CvG!$D zoc0;RKXC^D7j=+XziHE^J~(|4B;kT{ID@lVwQ8zgzkYH?<#t{{jZO|U^Xu2IFLf)l z(b#VdA3j{}6Ym+TRH>3QKHGu4vB86l+wb$;pW(kojT+WHVrZd4h2*)?rAu4mcDzab z44=doXn_vw0pDXCY%fmh!q7(Fu3bBYt)NpwW66>w#m~__`*q?(!-frI?}LpG9z58O zte!o4%9@dpk^JqElh1(z2g-c>DimjZ@I?NDfBX`_K8Fn(rgG)VCH~vH zcW>Flakj>OjqkUqPpL_wqoWn~*|VDO{P_L~8D`6tO=LmdvY+7+yOB|uGG!!A6e&_f z6)afLsx6_ZR;^k>6S6h(hc@_P_u58I0KFLA$Gmb!O zL$hgd+J>N;eK7mfV#SK75+zDlIc)FVy&@}Y#^@B=gQnWGYx~dyPHYC*hU$Fd{{8#1 z7VDAc?0_#;tXNU*bKa5?AZJkL5X-4?48Rj-9IQWj^l0IieIGt(KMOPSiLLCBLj|l~ zzI=IEpZ$OnsA-@rCAGg3r}G*bIL9L|@ZCTdARe697rsrbYT2@-_%dfurncn##R;6V zz(3zxgd31U7y#b+4%n(8;m56E>%=s4fsGLxsFCW`tCuLh4+HI?Knd^i`v-iuMT-^^ zpH2R9lY<#!PW$%lef%{P1f?<#c;9K(#Kzd~T)cQu&KtXQ>7tr6X(Bm?*h=o9=Ee@p zxw?5ajrQ>Vzal&U6UfE108`THFuX^lRpLWHH@ruL08d&)A@2%l;=}s;*I!gP^843> z-@tkc{9lyNFp*{d{d0!?{duZQZe+uD@CV6z*lcy zU2f|Muf5lqZ+rVcOdsRD{@wJ^-s|6-y?6Nk{}U?#r~J%yj2D3=@7vz%KTL1*Wb|hA MX!L67IYICL0XR=#Gynhq diff --git a/ProxySU_Core/ProxySU_Core.csproj b/ProxySU_Core/ProxySU_Core.csproj deleted file mode 100644 index aeca57f..0000000 --- a/ProxySU_Core/ProxySU_Core.csproj +++ /dev/null @@ -1,463 +0,0 @@ - - - - - Debug - AnyCPU - {B066015C-D347-4493-92F1-6556D3863996} - WinExe - ProxySU_Core - ProxySU_Core - v4.7.2 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - false - C:\Users\huife\Desktop\publish_new\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 1 - 1.0.0.%2a - false - true - true - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - D529B8E43BC86188988D830C545B400612900BB3 - - - ProxySU_Core_TemporaryKey.pfx - - - true - - - false - - - ProxySU.ico - - - - ..\packages\ControlzEx.5.0.0\lib\net452\ControlzEx.dll - - - ..\packages\MahApps.Metro.2.4.5\lib\net46\MahApps.Metro.dll - - - ..\packages\MaterialDesignColors.2.0.1\lib\net452\MaterialDesignColors.dll - - - ..\packages\MaterialDesignThemes.MahApps.0.1.7\lib\net452\MaterialDesignThemes.MahApps.dll - - - ..\packages\MaterialDesignThemes.4.1.0\lib\net452\MaterialDesignThemes.Wpf.dll - - - ..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.31\lib\net45\Microsoft.Xaml.Behaviors.dll - - - ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\packages\QRCoder.1.4.1\lib\net40\QRCoder.dll - - - ..\packages\SSH.NET.2020.0.1\lib\net40\Renci.SshNet.dll - - - - - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ClientInfoWindow.xaml - - - ShadowSocksControl.xaml - - - Trojan_TCP_Control.xaml - - - VLESS_gRPC_Control.xaml - - - VLESS_KCP_Control.xaml - - - VLESS_TCP_TLS_Control.xaml - - - VLESS_WS_TLS_Control.xaml - - - VLESS_XTLS_Control.xaml - - - VMESS_KCP_Control.xaml - - - VMESS_TCP_TLS_Control.xaml - - - VMESS_WS_TLS_Control.xaml - - - MainWindow.xaml - - - RecordEditorWindow.xaml - - - ServerInfoControl.xaml - - - XrayEditorControl.xaml - - - TerminalWindow.xaml - - - TextBoxWindow.xaml - - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - - - - - - False - Microsoft .NET Framework 4.6.1 %28x86 和 x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - - - - - - - - - - - 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 - - - - \ No newline at end of file diff --git a/ProxySU_Core/Resources/Languages/en.xaml b/ProxySU_Core/Resources/Languages/en.xaml deleted file mode 100644 index dc9d5ab..0000000 --- a/ProxySU_Core/Resources/Languages/en.xaml +++ /dev/null @@ -1,122 +0,0 @@ - - Deployment - Readme - - Language(语言) - Chinese - English - Hosts - Add Host - Export Config - Export Sub - Random - - - - Selection - Remark - Host - Port - Proxy - Actions - Cnsole - Config - Edit - Delete - - - Actions - Connect - Edit - Edit Xray - Delete - Install - Save - Save as - Info - Warning - Error - - - - Server Editor - Connection - User - Password - Tag - Host - Port - Method - Password Login - KeyLogin - Key - Upload - Proxy - Method - None - Http - Socks5 - Host - Port - User - Password - Please enter host - Please enter port - Please enter proxy host - Please enter proxy port - - - VLESS over TCP With XTLS Preferred - VLESS over TCP with TLS XTLS is Preferred - VLESS over WS with TLS Support CDN - VLESS mKCP low delay - VMESS over WS with TLS Support CDN - VMESS mKCP low delay - ShadowSocks Support CDN - Trojan over TCP with TLS Trojan - - Address - GuiseHost - UUID - VLESS WS Path - VLESS KCP Seed - VLESS KCP Type - VLESS KCP Port - VMESS WS Path - VMESS KCP Seed - VMESS KCP Type - VMESS KCP Port - SS Pwd - SS Method - Trojan Pwd - xray Port - default port is 443 - - - Console - xray/settings - Install - UpdateSettings - UpdateXray - UninstallXray - - cert/web - UpdateCert - UploadSelfCert - UploadWebite - UninstallCaddy - - Install: Finally output "please enjoy" to indicate completion, go to [Configuration] or [Config] to view the node - Update Settings: After modifying the node configuration information, there is no need to reinstall, this function can update the configuration - Update Cert: The certificate is automatically updated by default, but it is not guaranteed to be updated successfully. If it fails, please use [Update Cert] to update manually - Upload website: Disguise the website, the correct static webpage must have an index.html file (please check), and then upload the website compressed package. - The following is a static web page connection provided by netizens, please check whether there is an index.html file by yourself - - - - - View Settings - - \ No newline at end of file diff --git a/ProxySU_Core/Resources/Languages/zh_cn.xaml b/ProxySU_Core/Resources/Languages/zh_cn.xaml deleted file mode 100644 index dc13120..0000000 --- a/ProxySU_Core/Resources/Languages/zh_cn.xaml +++ /dev/null @@ -1,120 +0,0 @@ - - 应用布署 - 说明文档 - - 语言(Language) - 中文 - 英文 - 主机列表 - 添加主机 - 导出配置 - 导出订阅 - 随机 - - - 选择 - 别名 - 主机 - 端口 - 代理 - 操作 - 控制台 - 查看配置 - 编辑 - 删除 - - - 连接 - 安装 - 编辑 - 编辑模板 - 删除 - 保存 - 另存为 - 消息 - 提示 - 错误 - - - 服务器管理 - 连接 - 用户名 - 密码 - 别名 - 主机 - 端口 - 登陆方式 - 密码登陆 - 密钥登陆 - 密钥 - 上传 - 代理 - 类型 - - Http - Socks5 - 代理地址 - 代理端口 - 用户名 - 密码 - 请输入主机 - 请输入端口号 - 请输入代理地址 - 请输入代理端口号 - - VLESS Over TCP With XTLS 性能数倍,首选方式。 - VLESS over TCP with TLS 仍推荐XTLS。 - VLESS over WS with TLS 推荐,支持CDN。 - VLESS mKCP 游戏推荐,延迟低。 - VMESS over WS with TLS 推荐,支持CDN。 - VMESS mKCP 游戏推荐,延迟低。 - ShadowSocks SS,支持udp。 - Trojan over TCP with TLS Trojan。 - - - 域名 - 伪装域名 - UUID - VLESS WS路径 - VLESS KCP Seed - VLESS KCP伪装 - VLESS KCP端口 - VMESS WS路径 - VMESS KCP Seed - VMESS KCP伪装 - VMESS KCP端口 - SS密码 - SS加密方式 - Trojan密码 - xray端口 - 默认端口443,不建议修改 - - - - - 控制台 - 内核/配置 - 一键安装 - 更新配置 - 更新xray内核 - 卸载代理 - - 证书/网站 - 续签证书 - 上传自有证书 - 上传网站 - 卸载Caddy - - 一键安装: 最后输出 “请尽情享用” 表示完成,到[查看配置]或[导出配置]查看节点 - 更新配置: 修改节点配置信息后,不需要重新安装,这个功能就可以更新配置了 - 续签证书: 证书默认是自动续签,但不保证都能续签成功,如果失败请用[续签证书]手动续签 - 上传网站: 伪装网站,正确的静态网页要有index.html文件(请检查),然后将网站压缩包上传。 - 如下是网友提供的静态网页连接,请自行检查是否有index.html文件 - - - - 查看配置信息 - - \ No newline at end of file diff --git a/ProxySU_Core/Resources/ProxySU.ico b/ProxySU_Core/Resources/ProxySU.ico deleted file mode 100644 index 9d7a128c59c121d3e72c9d81575b05bde4971b2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI3cZd{87r^H@@cug$Gw6C4PZ87;b6Nu!K~#*$f&u+QF=1A8F<`=+bIxMUaTRk~ z^O@J2vl!M?SHCw~{q^+pj2mWFclUcsZB18Kzk2z-s+sn9e$#)Ekskg3FVEjKJ)WE% zkLPdQ^pGc7H^v1by;Wo^0Om?CjyuFCOSI;zUM)K6XFQ zOq1i%a-2`9-r&{BjrudWGNVCvV*{G;*l;rc{rh)C`}XZyIG0H(?pXNO4^h*G4dUbD zRoAXv)zYO)Rj*#X)WU@e)uKg3I0?p<1zGg**#R+W!6f z)u&IN5{*MoH1&K^o=NgtXfyEj>sNL7@L`e1k|j&jh7B9k+qZ9(;b-Q|nd;uXduF;{ z|LWB%HDksMwQ18P_5S^P>pu2%?bp<;xefY}qn(>JrXh7}GSIwU$ebLLFI7>JDU z4Fkvty&8bW&6_uyOX;6Hd7{>=S>rQiF0h}ICr^qU1c|$5|85@pDLu9^efo4u{}6$` z?fkD=waUlenM3?=+5_VN&*KN@&Ye?7j~?|7`u~5Shx`rFe_q%|@aajDCP^HyF9Q7w z7A&xaun)!z@EM;E20V}M?eW(!|EKXzd`73}*iDD0PMz|Jf#}-Fzg<2KzT|S(u3eH# z>~`cfFSW*?|Hh3Q5~GQ4FJHcNU7B2IkB3Zh@=wkT({Rr8?!%a$D10T$?=mXPxgynW^H&y zF4R8M2yV1G^-p}KjtB-yw(Vi+|Geh~~-uU_pVzkU1mDe`vi;Puji=s@7%d#N9+0-zd3#Sw7PKN zg6sWo4^r1U*TyDq-@YAiX*c^PChpuxx#orA$B(PamoJ;kfIYeI>C>lvwNt%nsQP0=`UWtRq7C9J*jg1xG zz(3sDty{Ou)SuEne*9SN*s(+GnfQ#)lc&rWc1_Fz$cy+3@jp;IaNvN*^`|fs=0!Q< zLGLtdqgAU`a`r+LsgF+Jwz8= zvv=6GZJX2wpshkj$mWd+1OKo0tJ+FAMSi^!h{Jjm-&1S1f19B z&YfH3&!1nlZQEAG*=jR#9OK|HXBzN@Z6Q~DoN@Ls$cQoK!tch78`Y>$qvV=#YKfEr zaRgj6&Y^+<^*ww+54p&$Kl2=8b?ep@eAGTsQBkUB(V{+Qe((VfY?(F5>0I06IyE3V zVZ3kOzN%TXW-5F3?5cnN{xZh6y+$_cC$)#(3Kc2{&XFTW27R2l(8$^};-M3mQ?6V& zl{s@}In$@MAzpLtX@EK1yLT5H$fjn^nqm{=76a^ejqV2w7$CByHq4nbr_Z>VpOSvi zpg}@Q_3G7Kb!x{=-Ddc&Ql*ODcTe!vxN&2lkvhi6qd|iPKDap}D^;qLg=_5CvG!$D zoc0;RKXC^D7j=+XziHE^J~(|4B;kT{ID@lVwQ8zgzkYH?<#t{{jZO|U^Xu2IFLf)l z(b#VdA3j{}6Ym+TRH>3QKHGu4vB86l+wb$;pW(kojT+WHVrZd4h2*)?rAu4mcDzab z44=doXn_vw0pDXCY%fmh!q7(Fu3bBYt)NpwW66>w#m~__`*q?(!-frI?}LpG9z58O zte!o4%9@dpk^JqElh1(z2g-c>DimjZ@I?NDfBX`_K8Fn(rgG)VCH~vH zcW>Flakj>OjqkUqPpL_wqoWn~*|VDO{P_L~8D`6tO=LmdvY+7+yOB|uGG!!A6e&_f z6)afLsx6_ZR;^k>6S6h(hc@_P_u58I0KFLA$Gmb!O zL$hgd+J>N;eK7mfV#SK75+zDlIc)FVy&@}Y#^@B=gQnWGYx~dyPHYC*hU$Fd{{8#1 z7VDAc?0_#;tXNU*bKa5?AZJkL5X-4?48Rj-9IQWj^l0IieIGt(KMOPSiLLCBLj|l~ zzI=IEpZ$OnsA-@rCAGg3r}G*bIL9L|@ZCTdARe697rsrbYT2@-_%dfurncn##R;6V zz(3zxgd31U7y#b+4%n(8;m56E>%=s4fsGLxsFCW`tCuLh4+HI?Knd^i`v-iuMT-^^ zpH2R9lY<#!PW$%lef%{P1f?<#c;9K(#Kzd~T)cQu&KtXQ>7tr6X(Bm?*h=o9=Ee@p zxw?5ajrQ>Vzal&U6UfE108`THFuX^lRpLWHH@ruL08d&)A@2%l;=}s;*I!gP^843> z-@tkc{9lyNFp*{d{d0!?{duZQZe+uD@CV6z*lcy zU2f|Muf5lqZ+rVcOdsRD{@wJ^-s|6-y?6Nk{}U?#r~J%yj2D3=@7vz%KTL1*Wb|hA MX!L67IYICL0XR=#Gynhq diff --git a/ProxySU_Core/Resources/Styles/MaterialDesignThemes.Overrides.xaml b/ProxySU_Core/Resources/Styles/MaterialDesignThemes.Overrides.xaml deleted file mode 100644 index 5909ff8..0000000 --- a/ProxySU_Core/Resources/Styles/MaterialDesignThemes.Overrides.xaml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/ProxySU_Core/Templates/trojan-go/base.caddyfile b/ProxySU_Core/Templates/trojan-go/base.caddyfile deleted file mode 100644 index 7975d73..0000000 --- a/ProxySU_Core/Templates/trojan-go/base.caddyfile +++ /dev/null @@ -1,9 +0,0 @@ -:##port## { - root * /usr/share/caddy - file_server - ##reverse_proxy## -} - -##domain##:80 { - redir https://##domain##{uri} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/trojan-go/trojan-go.json b/ProxySU_Core/Templates/trojan-go/trojan-go.json deleted file mode 100644 index acb0207..0000000 --- a/ProxySU_Core/Templates/trojan-go/trojan-go.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "run_type": "server", - "local_addr": "0.0.0.0", - "local_port": 443, - "remote_addr": "127.0.0.1", - "remote_port": 80, - "password": [ - "" - ], - "ssl": { - "cert": "/usr/local/etc/trojan-go/trojan-go.crt", - "key": "/usr/local/etc/trojan-go/trojan-go.key", - "sni": "" - } - -} diff --git a/ProxySU_Core/Templates/xray/base.json b/ProxySU_Core/Templates/xray/base.json deleted file mode 100644 index 84a9d1f..0000000 --- a/ProxySU_Core/Templates/xray/base.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "log": {}, - "api": {}, - "dns": {}, - "routing": {}, - "policy": {}, - "inbounds": [], - "outbounds": [], - "transport": {}, - "stats": {}, - "reverse": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/caddy/base.caddyfile b/ProxySU_Core/Templates/xray/caddy/base.caddyfile deleted file mode 100644 index 7975d73..0000000 --- a/ProxySU_Core/Templates/xray/caddy/base.caddyfile +++ /dev/null @@ -1,9 +0,0 @@ -:##port## { - root * /usr/share/caddy - file_server - ##reverse_proxy## -} - -##domain##:80 { - redir https://##domain##{uri} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/00_log/00_log.json b/ProxySU_Core/Templates/xray/client/00_log/00_log.json deleted file mode 100644 index 6a4cf00..0000000 --- a/ProxySU_Core/Templates/xray/client/00_log/00_log.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "log": { - "loglevel": "warning" - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/01_api/01_api.json b/ProxySU_Core/Templates/xray/client/01_api/01_api.json deleted file mode 100644 index aa1982b..0000000 --- a/ProxySU_Core/Templates/xray/client/01_api/01_api.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "api": null -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/02_dns/02_dns.json b/ProxySU_Core/Templates/xray/client/02_dns/02_dns.json deleted file mode 100644 index 63472d2..0000000 --- a/ProxySU_Core/Templates/xray/client/02_dns/02_dns.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "dns": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/03_routing/03_routing.json b/ProxySU_Core/Templates/xray/client/03_routing/03_routing.json deleted file mode 100644 index a187d31..0000000 --- a/ProxySU_Core/Templates/xray/client/03_routing/03_routing.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "routing": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/04_policy/04_policy.json b/ProxySU_Core/Templates/xray/client/04_policy/04_policy.json deleted file mode 100644 index 4beed61..0000000 --- a/ProxySU_Core/Templates/xray/client/04_policy/04_policy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "policy": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/05_inbounds/05_inbounds.json b/ProxySU_Core/Templates/xray/client/05_inbounds/05_inbounds.json deleted file mode 100644 index c402972..0000000 --- a/ProxySU_Core/Templates/xray/client/05_inbounds/05_inbounds.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "inbounds": [ - { - "protocol": "http", - "port": 1081 - }, - { - "port": 1080, - "protocol": "socks", - "sniffing": { - "enabled": true, - "destOverride": [ - "http", - "tls" - ] - }, - "settings": { - "udp": true, - "auth": "noauth" - } - } - ] -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/06_outbounds/06_outbounds.json b/ProxySU_Core/Templates/xray/client/06_outbounds/06_outbounds.json deleted file mode 100644 index 20e2beb..0000000 --- a/ProxySU_Core/Templates/xray/client/06_outbounds/06_outbounds.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "outbounds": [] -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_HTTP2_TLS.json b/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_HTTP2_TLS.json deleted file mode 100644 index 8718383..0000000 --- a/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_HTTP2_TLS.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "outbounds": [ - { - "protocol": "vless", - "settings": { - "vnext": [ - { - "address": "", - "port": 443, - "users": [ - { - "id": "", - "encryption": "none" - } - ] - } - ] - }, - "streamSettings": { - "network": "h2", - "security": "tls", - "httpSettings": { - "host": [ - "" - ], - "path": null - } - } - } - ] -} diff --git a/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_TCP_TLS_WS.json b/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_TCP_TLS_WS.json deleted file mode 100644 index 7a3c871..0000000 --- a/ProxySU_Core/Templates/xray/client/06_outbounds/VLESS_TCP_TLS_WS.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "outbounds": [ - { - "protocol": "vless", - "settings": { - "vnext": [ - { - "address": "", - "port": 443, - "users": [ - { - "id": "", - "encryption": "none", - "level": 0 - } - ] - } - ] - }, - "streamSettings": { - "network": "ws", - "security": "tls", - "tlsSettings": { - "serverName": "" - }, - "wsSettings": { - "path": "" - } - } - } - ] -} diff --git a/ProxySU_Core/Templates/xray/client/07_transport/07_transport.json b/ProxySU_Core/Templates/xray/client/07_transport/07_transport.json deleted file mode 100644 index 6269103..0000000 --- a/ProxySU_Core/Templates/xray/client/07_transport/07_transport.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "transport": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/08_stats/08_stats.json b/ProxySU_Core/Templates/xray/client/08_stats/08_stats.json deleted file mode 100644 index 02c9ed0..0000000 --- a/ProxySU_Core/Templates/xray/client/08_stats/08_stats.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "stats": null -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/client/09_reverse/09_reverse.json b/ProxySU_Core/Templates/xray/client/09_reverse/09_reverse.json deleted file mode 100644 index 6fa38a4..0000000 --- a/ProxySU_Core/Templates/xray/client/09_reverse/09_reverse.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "reverse": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/00_log/00_log.json b/ProxySU_Core/Templates/xray/server/00_log/00_log.json deleted file mode 100644 index 40c2cd5..0000000 --- a/ProxySU_Core/Templates/xray/server/00_log/00_log.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "log": { - "access": "none", - "loglevel": "none" - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/01_api/01_api.json b/ProxySU_Core/Templates/xray/server/01_api/01_api.json deleted file mode 100644 index 34c6b17..0000000 --- a/ProxySU_Core/Templates/xray/server/01_api/01_api.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "api": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/02_dns/02_dns.json b/ProxySU_Core/Templates/xray/server/02_dns/02_dns.json deleted file mode 100644 index 63472d2..0000000 --- a/ProxySU_Core/Templates/xray/server/02_dns/02_dns.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "dns": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/03_routing/03_routing.json b/ProxySU_Core/Templates/xray/server/03_routing/03_routing.json deleted file mode 100644 index 0aa4964..0000000 --- a/ProxySU_Core/Templates/xray/server/03_routing/03_routing.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "routing": { - "domainStrategy": "AsIs", - "rules": [ - { - "type": "field", - "ip": [ - "geoip:private" - ], - "outboundTag": "block" - } - ] - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/04_policy/04_policy.json b/ProxySU_Core/Templates/xray/server/04_policy/04_policy.json deleted file mode 100644 index 4beed61..0000000 --- a/ProxySU_Core/Templates/xray/server/04_policy/04_policy.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "policy": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/05_inbounds.json b/ProxySU_Core/Templates/xray/server/05_inbounds/05_inbounds.json deleted file mode 100644 index 24465ae..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/05_inbounds.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "inbounds": [] -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/Shadowsocks-AEAD.json b/ProxySU_Core/Templates/xray/server/05_inbounds/Shadowsocks-AEAD.json deleted file mode 100644 index e7179e5..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/Shadowsocks-AEAD.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "port": 12345, - "protocol": "shadowsocks", - "settings": { - "clients": [ - { - "password": "", - "method": "aes-128-gcm" - } - ], - "network": "tcp,udp" - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_TCP.json b/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_TCP.json deleted file mode 100644 index 8ea5ad9..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_TCP.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "port": 1310, - "listen": "127.0.0.1", - "protocol": "trojan", - "settings": { - "clients": [ - { - "password": "" - } - ], - "fallbacks": [ - { - "dest": 8080 - } - ] - }, - "streamSettings": { - "network": "tcp", - "security": "none", - "tcpSettings": { - "acceptProxyProtocol": true - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_WS.json b/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_WS.json deleted file mode 100644 index 51d725c..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/Trojan_WS.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "port": 1320, - "listen": "127.0.0.1", - "protocol": "trojan", - "settings": { - "clients": [ - { - "password": "" - } - ], - "fallbacks": [ - { - "dest": 80 - } - ] - }, - - "streamSettings": { - "network": "ws", - "security": "none", - "wsSettings": { - "acceptProxyProtocol": true, - "path": "/trojanws" - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_HTTP2.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_HTTP2.json deleted file mode 100644 index a99e848..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_HTTP2.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "port": 1234, - "listen": "127.0.0.1", - "protocol": "vmess", - "settings": { - "decryption": "none", - "clients": [ - { - "id": "" - } - ] - }, - "streamSettings": { - "network": "h2", - "httpSettings": { - "path": "" - } - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_KCP.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_KCP.json deleted file mode 100644 index a619549..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_KCP.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "port": 3456, - "protocol": "vless", - "settings": { - "clients": [ - { - "id": "" - } - ], - "decryption": "none" - }, - "streamSettings": { - "network": "mkcp", - "kcpSettings": { - "uplinkCapacity": 100, - "downlinkCapacity": 100, - "congestion": true, - "header": { - "type": "none" - }, - "seed": null - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_TCP_XTLS.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_TCP_XTLS.json deleted file mode 100644 index eab8363..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_TCP_XTLS.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "port": 443, - "protocol": "vless", - "settings": { - "clients": [ - { - "id": "", - "flow": "xtls-rprx-direct" - } - ], - "decryption": "none", - "fallbacks": [] - }, - "streamSettings": { - "network": "tcp", - "security": "xtls", - "xtlsSettings": { - "allowInsecure": false, - "minVersion": "1.2", - "alpn": [ - "http/1.1" - ], - "certificates": [ - { - "certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt", - "keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key" - } - ] - } - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_WS.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_WS.json deleted file mode 100644 index 0abf2e8..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_WS.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "port": 1234, - "listen": "127.0.0.1", - "protocol": "vless", - "settings": { - "clients": [ - { - "id": "" - } - ], - "decryption": "none" - }, - "streamSettings": { - "network": "ws", - "security": "none", - "wsSettings": { - "acceptProxyProtocol": true, - "path": "/websocket" - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_gRPC.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_gRPC.json deleted file mode 100644 index 319888d..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VLESS_gRPC.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "port": 2002, - "listen": "127.0.0.1", - "protocol": "vless", - "settings": { - "clients": [ - { - "id": "" - } - ], - "decryption": "none" - }, - "streamSettings": { - "network": "grpc", - "grpcSettings": { - "serviceName": "", - "certificates": [ - { - "certificateFile": "/usr/local/etc/xray/ssl/xray_ssl.crt", - "keyFile": "/usr/local/etc/xray/ssl/xray_ssl.key" - } - ] - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_HTTP2.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_HTTP2.json deleted file mode 100644 index 9957e76..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_HTTP2.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "port": 1234, - "listen": "127.0.0.1", - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": "" - } - ] - }, - "streamSettings": { - "network": "h2", - "httpSettings": { - "path": "" - } - } -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_KCP.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_KCP.json deleted file mode 100644 index 0c3ea2b..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_KCP.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "port": 3456, - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": "" - } - ] - }, - "streamSettings": { - "network": "mkcp", - "kcpSettings": { - "uplinkCapacity": 100, - "downlinkCapacity": 100, - "congestion": true, - "header": { - "type": "none" - }, - "seed": null - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_TCP.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_TCP.json deleted file mode 100644 index b14181e..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_TCP.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "port": 443, - "listen": "127.0.0.1", - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": "" - } - ] - }, - "streamSettings": { - "network": "tcp", - "security": "none", - "tcpSettings": { - "acceptProxyProtocol": true, - "header": { - "type": "http", - "request": { - "path": [ - "/vmesstcp" - ] - } - } - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_WS.json b/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_WS.json deleted file mode 100644 index 2e863a4..0000000 --- a/ProxySU_Core/Templates/xray/server/05_inbounds/VMESS_WS.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "port": 3456, - "listen": "127.0.0.1", - "protocol": "vmess", - "settings": { - "clients": [ - { - "id": "" - } - ] - }, - "streamSettings": { - "network": "ws", - "security": "none", - "wsSettings": { - "acceptProxyProtocol": true, - "path": "/vmessws" - } - } -} diff --git a/ProxySU_Core/Templates/xray/server/06_outbounds/06_outbounds.json b/ProxySU_Core/Templates/xray/server/06_outbounds/06_outbounds.json deleted file mode 100644 index 467a4e1..0000000 --- a/ProxySU_Core/Templates/xray/server/06_outbounds/06_outbounds.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "outbounds": [ - { - "protocol": "freedom", - "tag": "direct" - }, - { - "protocol": "blackhole", - "tag": "block" - } - ] -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/07_transport/07_transport.json b/ProxySU_Core/Templates/xray/server/07_transport/07_transport.json deleted file mode 100644 index 6269103..0000000 --- a/ProxySU_Core/Templates/xray/server/07_transport/07_transport.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "transport": {} -} \ 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 deleted file mode 100644 index b406e15..0000000 --- a/ProxySU_Core/Templates/xray/server/08_stats/08_stats.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "stats": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Templates/xray/server/09_reverse/09_reverse.json b/ProxySU_Core/Templates/xray/server/09_reverse/09_reverse.json deleted file mode 100644 index 6fa38a4..0000000 --- a/ProxySU_Core/Templates/xray/server/09_reverse/09_reverse.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "reverse": {} -} \ No newline at end of file diff --git a/ProxySU_Core/Tools/DateTimeUtils.cs b/ProxySU_Core/Tools/DateTimeUtils.cs deleted file mode 100644 index 32cb7b5..0000000 --- a/ProxySU_Core/Tools/DateTimeUtils.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Net; -using System.Runtime.InteropServices; -using System.Text; - -namespace ProxySU_Core.Tools -{ - public static class DateTimeUtils - { - /// - /// 从国家授时中心获取标准GMT时间,读取https://www.tsa.cn - /// GMT时间与UTC时间没有差别,可以UTC=GMT - /// - /// 返回网络时间 - public static DateTime GetUTCTime() - { - DateTime time; - try - { - HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.tsa.cn"); - request.Method = "HEAD"; - request.AllowAutoRedirect = false; - HttpWebResponse reponse = (HttpWebResponse)request.GetResponse(); - string cc = reponse.GetResponseHeader("date"); - reponse.Close(); - - bool s = GMTStrParse(cc, out time); - return time; - } - catch - { - return new DateTime(1970, 1, 1, 0, 0, 0, 0); - } - } - - public static bool GMTStrParse(string gmtStr, out DateTime gmtTime) //抓取的date是GMT格式的字符串,这里转成datetime - { - CultureInfo enUS = new CultureInfo("en-US"); - bool s = DateTime.TryParseExact(gmtStr, "r", enUS, DateTimeStyles.None, out gmtTime); - return s; - } - - //设置系统时间的API函数 - [DllImport("kernel32.dll")] - private static extern bool SetLocalTime(ref SYSTEMTIME time); - - [StructLayout(LayoutKind.Sequential)] - private struct SYSTEMTIME - { - public short year; - public short month; - public short dayOfWeek; - public short day; - public short hour; - public short minute; - public short second; - public short milliseconds; - } - - /// - /// 设置系统时间 - /// - /// 需要设置的时间 - /// 返回系统时间设置状态,true为成功,false为失败 - public static bool SetDate(DateTime dt) - { - SYSTEMTIME st; - - st.year = (short)dt.Year; - st.month = (short)dt.Month; - st.dayOfWeek = (short)dt.DayOfWeek; - st.day = (short)dt.Day; - st.hour = (short)dt.Hour; - st.minute = (short)dt.Minute; - st.second = (short)dt.Second; - st.milliseconds = (short)dt.Millisecond; - bool rt = SetLocalTime(ref st); - return rt; - } - } -} diff --git a/ProxySU_Core/Tools/Extensions.cs b/ProxySU_Core/Tools/Extensions.cs deleted file mode 100644 index 1c4af48..0000000 --- a/ProxySU_Core/Tools/Extensions.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Runtime.Serialization.Formatters.Binary; -using System.Text; -using System.Threading.Tasks; - -namespace System -{ - public static class Extensions - { - // Deep clone - public static T DeepClone(this T obj) - { - if (obj == null) - throw new ArgumentNullException("Object cannot be null"); - return (T)Process(obj); - } - - static object Process(object obj) - { - if (obj == null) - return null; - Type type = obj.GetType(); - if (type.IsValueType || type == typeof(string)) - { - return obj; - } - else if (type.IsArray) - { - Type elementType = Type.GetType( - type.FullName.Replace("[]", string.Empty)); - var array = obj as Array; - Array copied = Array.CreateInstance(elementType, array.Length); - for (int i = 0; i < array.Length; i++) - { - copied.SetValue(Process(array.GetValue(i)), i); - } - return Convert.ChangeType(copied, obj.GetType()); - } - else if (type.IsClass) - { - object toret = Activator.CreateInstance(obj.GetType()); - FieldInfo[] fields = type.GetFields(BindingFlags.Public | - BindingFlags.NonPublic | BindingFlags.Instance); - foreach (FieldInfo field in fields) - { - object fieldValue = field.GetValue(obj); - if (fieldValue == null) - continue; - field.SetValue(toret, Process(fieldValue)); - } - return toret; - } - else - throw new ArgumentException("Unknown type"); - } - - } -} diff --git a/ProxySU_Core/ViewModels/BaseCommand.cs b/ProxySU_Core/ViewModels/BaseCommand.cs deleted file mode 100644 index 21860cd..0000000 --- a/ProxySU_Core/ViewModels/BaseCommand.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Input; - -namespace ProxySU_Core.ViewModels -{ - public class BaseCommand : ICommand - { - private readonly Action _execution; - private readonly Func _canExecute; - - public BaseCommand(Action execution, Func canExecute = null) - { - _execution = execution; - _canExecute = canExecute; - } - - - - public event EventHandler CanExecuteChanged; - - public bool CanExecute(object parameter) - { - if (_canExecute == null) - { - return true; - } - - return _canExecute(parameter); - } - - public void Execute(object parameter) - { - if (_execution != null && CanExecute(parameter)) - { - _execution.Invoke(parameter); - } - } - } -} diff --git a/ProxySU_Core/ViewModels/BaseModel.cs b/ProxySU_Core/ViewModels/BaseModel.cs deleted file mode 100644 index 5255ebb..0000000 --- a/ProxySU_Core/ViewModels/BaseModel.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.ViewModels -{ - public class BaseViewModel2 : INotifyPropertyChanged - { - - protected bool SetProperty(ref T backingStore, T value, - string propertyName = "", - Action onChanged = null) - { - if (EqualityComparer.Default.Equals(backingStore, value)) - return false; - - backingStore = value; - onChanged?.Invoke(); - OnPropertyChanged(propertyName); - return true; - } - - #region INotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; - protected void OnPropertyChanged(string propertyName = "") - { - var changed = PropertyChanged; - if (changed == null) - return; - - changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - #endregion - } -} diff --git a/ProxySU_Core/ViewModels/BaseViewModel.cs b/ProxySU_Core/ViewModels/BaseViewModel.cs deleted file mode 100644 index 1aa2f1c..0000000 --- a/ProxySU_Core/ViewModels/BaseViewModel.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; - -namespace ProxySU_Core.ViewModels -{ - public abstract class BaseViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - - public void Notify(string propertyName) - { - if (PropertyChanged != null) - { - PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - } - } -} diff --git a/ProxySU_Core/ViewModels/HostViewModel.cs b/ProxySU_Core/ViewModels/HostViewModel.cs deleted file mode 100644 index 04ceb62..0000000 --- a/ProxySU_Core/ViewModels/HostViewModel.cs +++ /dev/null @@ -1,144 +0,0 @@ -using Microsoft.Win32; -using Newtonsoft.Json; -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Windows; -using System.Windows.Input; - -namespace ProxySU_Core.ViewModels -{ - public class HostViewModel : BaseViewModel - { - public Host host; - - private readonly ICommand _selectKeyCommand; - - - public HostViewModel(Host host) - { - _selectKeyCommand = new BaseCommand(obj => OpenFileDialog(obj)); - this.host = host; - } - - - public string Tag - { - get => host.Tag; - set - { - host.Tag = value; - Notify("Tag"); - } - } - - public string Address - { - get => host.Address; - set - { - host.Address = value; - Notify("Address"); - } - } - - public string UserName - { - get => host.UserName; - set => host.UserName = value; - } - - public string Password - { - get => host.Password; - set => host.Password = value; - } - - public int Port - { - get => host.Port; - set => host.Port = value; - } - - public string PrivateKeyPath - { - get => host.PrivateKeyPath; - set => host.PrivateKeyPath = value; - } - - public LocalProxy Proxy - { - get => host.Proxy; - set - { - host.Proxy = value; - Notify("Proxy"); - } - } - - public LoginSecretType SecretType - { - get => host.SecretType; - set - { - host.SecretType = value; - Notify("SecretType"); - Notify("KeyUploaderVisiblity"); - Notify("PasswordVisiblity"); - } - } - - [JsonIgnore] - public Visibility PasswordVisiblity - { - get - { - if (SecretType == LoginSecretType.Password) - { - return Visibility.Visible; - } - return Visibility.Collapsed; - } - } - - [JsonIgnore] - public Visibility KeyUploaderVisiblity - { - get - { - if (SecretType == LoginSecretType.PrivateKey) - { - return Visibility.Visible; - } - return Visibility.Collapsed; - } - } - - - [JsonIgnore] - public ICommand SelectKeyCommand - { - get - { - return _selectKeyCommand; - } - } - - - private void OpenFileDialog(object obj) - { - var fileDialog = new OpenFileDialog(); - fileDialog.FileOk += OnFileOk; - fileDialog.ShowDialog(); - } - - private void OnFileOk(object sender, CancelEventArgs e) - { - var file = sender as OpenFileDialog; - PrivateKeyPath = file.FileName; - } - } - - -} diff --git a/ProxySU_Core/ViewModels/IdValueViewModel.cs b/ProxySU_Core/ViewModels/IdValueViewModel.cs deleted file mode 100644 index d7b8fbf..0000000 --- a/ProxySU_Core/ViewModels/IdValueViewModel.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.ViewModels -{ - public class IdValueViewModel - { - public IdValueViewModel(int id, string value) - { - Id = id; - Value = value; - } - - public int Id { get; set; } - - public string Value { get; set; } - } -} diff --git a/ProxySU_Core/ViewModels/RecordViewModel.cs b/ProxySU_Core/ViewModels/RecordViewModel.cs deleted file mode 100644 index e2270be..0000000 --- a/ProxySU_Core/ViewModels/RecordViewModel.cs +++ /dev/null @@ -1,58 +0,0 @@ -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProxySU_Core.ViewModels -{ - public class RecordViewModel : BaseViewModel - { - public Record record; - private bool _isChecked; - - public RecordViewModel(Record record) - { - this.record = record; - this._isChecked = false; - } - - public bool IsChecked - { - get => _isChecked; - set - { - _isChecked = value; - Notify("IsChecked"); - } - } - - public Host Host - { - get => record.Host; - set - { - record.Host = value; - Notify("Host"); - } - } - - public XraySettings Settings - { - get => record.Settings; - set - { - record.Settings = value; - Notify("Settings"); - } - } - - public void Notify() - { - Notify("Host"); - Notify("Settings"); - } - } -} diff --git a/ProxySU_Core/ViewModels/Terminal.cs b/ProxySU_Core/ViewModels/Terminal.cs deleted file mode 100644 index 1f2a92a..0000000 --- a/ProxySU_Core/ViewModels/Terminal.cs +++ /dev/null @@ -1,38 +0,0 @@ -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Text; - -namespace ProxySU_Core.ViewModels -{ - public class Terminal : BaseViewModel - { - private bool hasConnected; - - public Terminal(Host host) - { - Host = host; - HasConnected = false; - } - - public bool HasConnected - { - get - { - return hasConnected; - } - set - { - hasConnected = value; - Notify("HasConnected"); - } - } - - public Host Host { get; set; } - - public string CommandText { get; set; } - - public string OutputText { get; set; } - } -} diff --git a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs b/ProxySU_Core/ViewModels/XraySettingsViewModel.cs deleted file mode 100644 index 78826a8..0000000 --- a/ProxySU_Core/ViewModels/XraySettingsViewModel.cs +++ /dev/null @@ -1,399 +0,0 @@ -using Newtonsoft.Json; -using ProxySU_Core.Common; -using ProxySU_Core.Models; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Web; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Input; - -namespace ProxySU_Core.ViewModels -{ - public partial class XraySettingsViewModel : BaseViewModel - { - public XraySettings settings; - private readonly ICommand _randomUuid; - - public XraySettingsViewModel(XraySettings parameters) - { - _randomUuid = new BaseCommand((obj) => GetUuid()); - this.settings = parameters; - Notify("VMESS_KCP_Type"); - } - - public ICommand RandomUuid - { - get - { - return _randomUuid; - } - } - - - public int Port - { - get => settings.Port; - set - { - settings.Port = value; - Notify("Port"); - } - } - - public int VLESS_KCP_Port - { - get => settings.VLESS_KCP_Port; - set - { - settings.VLESS_KCP_Port = value; - Notify("VLESS_KCP_Port"); - } - } - - public int VMESS_KCP_Port - { - get => settings.VMESS_KCP_Port; - set - { - settings.VMESS_KCP_Port = value; - Notify("VMESS_KCP_Port"); - } - } - - public int ShadowSocksPort - { - get => settings.ShadowSocksPort; - set - { - settings.VMESS_KCP_Port = value; - Notify("ShadowSocksPort"); - } - } - - - public string UUID - { - get => settings.UUID; - set - { - settings.UUID = value; - Notify("UUID"); - } - } - - public string Domain - { - get => settings.Domain; - set - { - settings.Domain = value; - Notify("Domain"); - } - } - - public string MaskDomain - { - get => settings.MaskDomain; - set - { - settings.MaskDomain = value; - Notify("MaskDomain"); - } - } - - public string TrojanPassword - { - get => settings.TrojanPassword; - set => settings.TrojanPassword = value; - } - public bool Checked_Trojan_TCP - { - get - { - return settings.Types.Contains(XrayType.Trojan_TCP); - } - set - { - if (value == true) - { - if (!settings.Types.Contains(XrayType.Trojan_TCP)) - settings.Types.Add(XrayType.Trojan_TCP); - } - else - { - settings.Types.Remove(XrayType.Trojan_TCP); - } - Notify("Checked_Trojan_TCP"); - } - } - public string Trojan_TCP_ShareLink - { - get => ShareLink.Build(XrayType.Trojan_TCP, settings); - } - - private List _ssMethods = new List { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305" }; - public List ShadowSocksMethods => _ssMethods; - public bool CheckedShadowSocks - { - - get => settings.Types.Contains(XrayType.ShadowsocksAEAD); - set - { - CheckBoxChanged(value, XrayType.ShadowsocksAEAD); - Notify("CheckedShadowSocks"); - } - } - public string ShadowSocksPassword - { - get => settings.ShadowsocksPassword; - set => settings.ShadowsocksPassword = value; - } - public string ShadowSocksMethod - { - get => settings.ShadowsocksMethod; - set - { - var namespaceStr = typeof(ComboBoxItem).FullName + ":"; - var trimValue = value.Replace(namespaceStr, ""); - trimValue = trimValue.Trim(); - settings.ShadowsocksMethod = trimValue; - Notify("ShadowSocksMethod"); - } - } - public string ShadowSocksShareLink - { - get => ShareLink.Build(XrayType.ShadowsocksAEAD, settings); - } - - - private void CheckBoxChanged(bool value, XrayType type) - { - if (value == true) - { - if (!settings.Types.Contains(type)) - { - settings.Types.Add(type); - } - } - else - { - settings.Types.RemoveAll(x => x == type); - } - } - - - - private void GetUuid() - { - UUID = Guid.NewGuid().ToString(); - Notify("UUID"); - } - - } - - /// - /// VMESS - /// - public partial class XraySettingsViewModel - { - // vmess tcp - public bool Checked_VMESS_TCP - { - get => settings.Types.Contains(XrayType.VMESS_TCP); - set - { - CheckBoxChanged(value, XrayType.VMESS_TCP); - Notify("Checked_VMESS_TCP"); - } - } - public string VMESS_TCP_Path - { - get => settings.VMESS_TCP_Path; - set => settings.VMESS_TCP_Path = value; - } - public string VMESS_TCP_ShareLink - { - get => ShareLink.Build(XrayType.VMESS_TCP, settings); - } - - // vmess ws - public bool Checked_VMESS_WS - { - get => settings.Types.Contains(XrayType.VMESS_WS); - set - { - CheckBoxChanged(value, XrayType.VMESS_WS); - Notify("Checked_VMESS_WS"); - } - } - public string VMESS_WS_Path - { - get => settings.VMESS_WS_Path; - set => settings.VMESS_WS_Path = value; - } - public string VMESS_WS_ShareLink - { - get => ShareLink.Build(XrayType.VMESS_WS, settings); - } - - // vmess kcp - public string VMESS_KCP_Seed - { - get => settings.VMESS_KCP_Seed; - set => settings.VMESS_KCP_Seed = value; - } - public string VMESS_KCP_Type - { - get => settings.VMESS_KCP_Type; - set - { - var namespaceStr = typeof(ComboBoxItem).FullName + ":"; - var trimValue = value.Replace(namespaceStr, ""); - trimValue = trimValue.Trim(); - settings.VMESS_KCP_Type = trimValue; - Notify("VMESS_KCP_Type"); - } - } - public bool Checked_VMESS_KCP - { - get => settings.Types.Contains(XrayType.VMESS_KCP); - set - { - CheckBoxChanged(value, XrayType.VMESS_KCP); - Notify("Checked_VMESS_KCP"); - } - } - public string VMESS_KCP_ShareLink - { - get => ShareLink.Build(XrayType.VMESS_KCP, settings); - } - - - private List _kcpTypes = new List { "none", "srtp", "utp", "wechat-video", "dtls", "wireguard", }; - public List KcpTypes => _kcpTypes; - } - - /// - /// VLESS - /// - public partial class XraySettingsViewModel - { - - // vless xtls - public bool Checked_VLESS_TCP_XTLS - { - get => settings.Types.Contains(XrayType.VLESS_TCP_XTLS); - set - { - CheckBoxChanged(value, XrayType.VLESS_TCP_XTLS); - Notify("Checked_VLESS_TCP_XTLS"); - } - } - public string VLESS_TCP_XTLS_ShareLink - { - get => ShareLink.Build(XrayType.VLESS_TCP_XTLS, settings); - } - - // vless tcp - public bool Checked_VLESS_TCP - { - get => settings.Types.Contains(XrayType.VLESS_TCP); - set - { - CheckBoxChanged(value, XrayType.VLESS_TCP); - Notify("Checked_VLESS_TCP"); - } - } - public string VLESS_TCP_ShareLink - { - get => ShareLink.Build(XrayType.VLESS_TCP, settings); - } - - - // vless ws - public string VLESS_WS_Path - { - get => settings.VLESS_WS_Path; - set => settings.VLESS_WS_Path = value; - } - public bool Checked_VLESS_WS - { - get - { - return settings.Types.Contains(XrayType.VLESS_WS); - } - set - { - CheckBoxChanged(value, XrayType.VLESS_WS); - Notify("Checked_VLESS_WS"); - } - } - public string VLESS_WS_ShareLink - { - get => ShareLink.Build(XrayType.VLESS_WS, settings); - } - - // vless kcp - public string VLESS_KCP_Seed - { - get => settings.VLESS_KCP_Seed; - set => settings.VLESS_KCP_Seed = value; - } - public string VLESS_KCP_Type - { - get => settings.VLESS_KCP_Type; - set - { - var namespaceStr = typeof(ComboBoxItem).FullName + ":"; - var trimValue = value.Replace(namespaceStr, ""); - trimValue = trimValue.Trim(); - settings.VLESS_KCP_Type = trimValue; - Notify("VLESS_KCP_Type"); - } - } - public bool Checked_VLESS_KCP - { - get => settings.Types.Contains(XrayType.VLESS_KCP); - set - { - CheckBoxChanged(value, XrayType.VLESS_KCP); - Notify("Checked_VLESS_KCP"); - } - } - public string VLESS_KCP_ShareLink - { - get => ShareLink.Build(XrayType.VLESS_KCP, settings); - } - - // vless grpc - public string VLESS_gRPC_ServiceName - { - get => settings.VLESS_gRPC_ServiceName; - set => settings.VLESS_gRPC_ServiceName = value; - } - public int VLESS_gRPC_Port - { - get => settings.VLESS_gRPC_Port; - set => settings.VLESS_gRPC_Port = value; - } - public bool Checked_VLESS_gRPC - { - get => settings.Types.Contains(XrayType.VLESS_gRPC); - set - { - CheckBoxChanged(value, XrayType.VLESS_gRPC); - Notify("Checked_VLESS_gRPC"); - } - } - public string VLESS_gRPC_ShareLink - { - get => ShareLink.Build(XrayType.VLESS_gRPC, settings); - } - } - -} diff --git a/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml b/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml deleted file mode 100644 index d95b8cb..0000000 --- a/ProxySU_Core/Views/ClientInfo/ClientInfoWindow.xaml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -