mirror of
https://github.com/proxysu/ProxySU.git
synced 2025-02-18 07:23:17 +03:00
release v3.1.1
fix acme issue
This commit is contained in:
parent
f27ae4d70c
commit
dc38de67d5
@ -25,20 +25,18 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
private const string ServerReverseDir = @"Templates\xray\server\09_reverse";
|
private const string ServerReverseDir = @"Templates\xray\server\09_reverse";
|
||||||
private const string CaddyFileDir = @"Templates\xray\caddy";
|
private const string CaddyFileDir = @"Templates\xray\caddy";
|
||||||
|
|
||||||
public const int VLESS_TCP_Port = 1110;
|
public static int VLESS_TCP_Port = 1110;
|
||||||
public const int VLESS_WS_Port = 1111;
|
public static int VLESS_WS_Port = 1111;
|
||||||
public const int VLESS_H2_Port = 1112;
|
public static int VLESS_H2_Port = 1112;
|
||||||
public const int VLESS_mKCP_Port = 1113;
|
public static int VLESS_mKCP_Port = 1113;
|
||||||
|
|
||||||
public const int VMESS_TCP_Port = 2110;
|
public static int VMESS_TCP_Port = 1210;
|
||||||
public const int VMESS_WS_Port = 2111;
|
public static int VMESS_WS_Port = 1211;
|
||||||
public const int VMESS_H2_Port = 2112;
|
public static int VMESS_H2_Port = 1212;
|
||||||
public const int VMESS_mKCP_Port = 2113;
|
|
||||||
|
|
||||||
public const int Trojan_TCP_Port = 3110;
|
public static int Trojan_TCP_Port = 1310;
|
||||||
public const int Trojan_WS_Port = 3111;
|
public static int Trojan_WS_Port = 1311;
|
||||||
|
|
||||||
public const int ShadowSocksPort = 4110;
|
|
||||||
|
|
||||||
|
|
||||||
public static dynamic LoadXrayConfig()
|
public static dynamic LoadXrayConfig()
|
||||||
@ -73,6 +71,16 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
{
|
{
|
||||||
var caddyStr = File.ReadAllText(Path.Combine(CaddyFileDir, "base.caddyfile"));
|
var caddyStr = File.ReadAllText(Path.Combine(CaddyFileDir, "base.caddyfile"));
|
||||||
caddyStr = caddyStr.Replace("##domain##", parameters.Domain);
|
caddyStr = caddyStr.Replace("##domain##", parameters.Domain);
|
||||||
|
|
||||||
|
if (parameters.Port != 443)
|
||||||
|
{
|
||||||
|
caddyStr = caddyStr.Replace(":##port##", "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
caddyStr = caddyStr.Replace("##port##", 80.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
if (!useCustomWeb && !string.IsNullOrEmpty(parameters.MaskDomain))
|
if (!useCustomWeb && !string.IsNullOrEmpty(parameters.MaskDomain))
|
||||||
{
|
{
|
||||||
var prefix = "http://";
|
var prefix = "http://";
|
||||||
@ -167,7 +175,7 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
if (parameters.Types.Contains(XrayType.VMESS_KCP))
|
if (parameters.Types.Contains(XrayType.VMESS_KCP))
|
||||||
{
|
{
|
||||||
var kcpBound = GetBound("VMESS_KCP.json");
|
var kcpBound = GetBound("VMESS_KCP.json");
|
||||||
kcpBound.port = VMESS_mKCP_Port;
|
kcpBound.port = parameters.KcpPort;
|
||||||
kcpBound.settings.clients[0].id = parameters.UUID;
|
kcpBound.settings.clients[0].id = parameters.UUID;
|
||||||
kcpBound.streamSettings.kcpSettings.header.type = parameters.VMESS_KCP_Type;
|
kcpBound.streamSettings.kcpSettings.header.type = parameters.VMESS_KCP_Type;
|
||||||
kcpBound.streamSettings.kcpSettings.seed = parameters.VMESS_KCP_Seed;
|
kcpBound.streamSettings.kcpSettings.seed = parameters.VMESS_KCP_Seed;
|
||||||
@ -178,7 +186,7 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
if (parameters.Types.Contains(XrayType.ShadowsocksAEAD))
|
if (parameters.Types.Contains(XrayType.ShadowsocksAEAD))
|
||||||
{
|
{
|
||||||
var ssBound = GetBound("Shadowsocks-AEAD.json");
|
var ssBound = GetBound("Shadowsocks-AEAD.json");
|
||||||
ssBound.port = ShadowSocksPort;
|
ssBound.port = parameters.ShadowSocksPort;
|
||||||
ssBound.settings.clients[0].password = parameters.ShadowsocksPassword;
|
ssBound.settings.clients[0].password = parameters.ShadowsocksPassword;
|
||||||
ssBound.settings.clients[0].method = parameters.ShadowsocksMethod;
|
ssBound.settings.clients[0].method = parameters.ShadowsocksMethod;
|
||||||
xrayConfig.inbounds.Add(JToken.FromObject(ssBound));
|
xrayConfig.inbounds.Add(JToken.FromObject(ssBound));
|
||||||
|
@ -8,6 +8,10 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
{
|
{
|
||||||
int Port { get; set; }
|
int Port { get; set; }
|
||||||
|
|
||||||
|
int KcpPort { get; set; }
|
||||||
|
|
||||||
|
int ShadowSocksPort { get; set; }
|
||||||
|
|
||||||
string Domain { get; set; }
|
string Domain { get; set; }
|
||||||
|
|
||||||
List<XrayType> Types { get; set; }
|
List<XrayType> Types { get; set; }
|
||||||
|
@ -308,12 +308,12 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
|
|
||||||
if (Parameters.Types.Contains(XrayType.ShadowsocksAEAD))
|
if (Parameters.Types.Contains(XrayType.ShadowsocksAEAD))
|
||||||
{
|
{
|
||||||
portList.Add(ConfigBuilder.ShadowSocksPort);
|
portList.Add(Parameters.ShadowSocksPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Parameters.Types.Contains(XrayType.VMESS_KCP))
|
if (Parameters.Types.Contains(XrayType.VMESS_KCP))
|
||||||
{
|
{
|
||||||
portList.Add(ConfigBuilder.VMESS_mKCP_Port);
|
portList.Add(Parameters.KcpPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenPort(portList.ToArray());
|
OpenPort(portList.ToArray());
|
||||||
@ -468,7 +468,7 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ConfigurePort(bool force = true)
|
public void ConfigurePort()
|
||||||
{
|
{
|
||||||
if (Parameters.Port == 80 || Parameters.Port == 443)
|
if (Parameters.Port == 80 || Parameters.Port == 443)
|
||||||
{
|
{
|
||||||
@ -480,6 +480,8 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
SetPortFree(80);
|
SetPortFree(80);
|
||||||
SetPortFree(443);
|
SetPortFree(443);
|
||||||
SetPortFree(Parameters.Port);
|
SetPortFree(Parameters.Port);
|
||||||
|
SetPortFree(Parameters.KcpPort);
|
||||||
|
SetPortFree(Parameters.ShadowSocksPort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
|
|
||||||
WriteOutput("启动BBR");
|
WriteOutput("启动BBR");
|
||||||
EnableBBR();
|
EnableBBR();
|
||||||
WriteOutput("BBR启动成功");
|
|
||||||
|
|
||||||
UploadCaddyFile();
|
UploadCaddyFile();
|
||||||
WriteOutput("************");
|
WriteOutput("************");
|
||||||
@ -112,7 +111,7 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
WriteOutput("卸载证书");
|
WriteOutput("卸载证书");
|
||||||
UninstallAcme();
|
UninstallAcme();
|
||||||
WriteOutput("关闭端口");
|
WriteOutput("关闭端口");
|
||||||
ClosePort(ConfigBuilder.ShadowSocksPort, ConfigBuilder.VLESS_mKCP_Port, ConfigBuilder.VMESS_mKCP_Port);
|
ClosePort(Parameters.ShadowSocksPort, Parameters.KcpPort);
|
||||||
|
|
||||||
WriteOutput("************ 卸载完成 ************");
|
WriteOutput("************ 卸载完成 ************");
|
||||||
}
|
}
|
||||||
@ -141,6 +140,8 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
var stream = new MemoryStream(Encoding.UTF8.GetBytes(configJson));
|
var stream = new MemoryStream(Encoding.UTF8.GetBytes(configJson));
|
||||||
RunCmd("rm -rf /usr/local/etc/xray/config.json");
|
RunCmd("rm -rf /usr/local/etc/xray/config.json");
|
||||||
UploadFile(stream, "/usr/local/etc/xray/config.json");
|
UploadFile(stream, "/usr/local/etc/xray/config.json");
|
||||||
|
ConfigurePort();
|
||||||
|
UploadCaddyFile(string.IsNullOrEmpty(Parameters.MaskDomain));
|
||||||
RunCmd("systemctl restart xray");
|
RunCmd("systemctl restart xray");
|
||||||
WriteOutput("************ 更新Xray配置成功,更新配置不包含域名,如果域名更换请重新安装。 ************");
|
WriteOutput("************ 更新Xray配置成功,更新配置不包含域名,如果域名更换请重新安装。 ************");
|
||||||
}
|
}
|
||||||
@ -268,6 +269,7 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
{
|
{
|
||||||
RemoveNat64();
|
RemoveNat64();
|
||||||
}
|
}
|
||||||
|
WriteOutput("BBR启动成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!canInstallBBR)
|
if (!canInstallBBR)
|
||||||
@ -382,14 +384,14 @@ namespace ProxySU_Core.Models.Developers
|
|||||||
result = RunCmd(cmd);
|
result = RunCmd(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.Contains("Cert success"))
|
if (result.Contains("success"))
|
||||||
{
|
{
|
||||||
WriteOutput("申请证书成功");
|
WriteOutput("申请证书成功");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WriteOutput("申请证书失败,请联系开发者!");
|
WriteOutput("申请证书失败,如果申请次数过多请更换二级域名,或联系开发者!");
|
||||||
throw new Exception("申请证书失败,请联系开发者!");
|
throw new Exception("申请证书失败,如果申请次数过多请更换二级域名,或联系开发者!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 安装证书到xray
|
// 安装证书到xray
|
||||||
|
@ -38,7 +38,7 @@ namespace ProxySU_Core.Models
|
|||||||
var _method = settings.ShadowsocksMethod;
|
var _method = settings.ShadowsocksMethod;
|
||||||
var _password = settings.ShadowsocksPassword;
|
var _password = settings.ShadowsocksPassword;
|
||||||
var _server = settings.Domain;
|
var _server = settings.Domain;
|
||||||
var _port = ConfigBuilder.ShadowSocksPort;
|
var _port = settings.ShadowSocksPort;
|
||||||
|
|
||||||
var base64URL = Base64.Encode($"{_method}:{_password}@{_server}:{_port}");
|
var base64URL = Base64.Encode($"{_method}:{_password}@{_server}:{_port}");
|
||||||
return "ss://" + base64URL;
|
return "ss://" + base64URL;
|
||||||
@ -77,7 +77,7 @@ namespace ProxySU_Core.Models
|
|||||||
break;
|
break;
|
||||||
case XrayType.VMESS_KCP:
|
case XrayType.VMESS_KCP:
|
||||||
vmess.ps = "vmess-mKCP";
|
vmess.ps = "vmess-mKCP";
|
||||||
vmess.port = ConfigBuilder.VMESS_mKCP_Port.ToString();
|
vmess.port = settings.KcpPort.ToString();
|
||||||
vmess.net = "kcp";
|
vmess.net = "kcp";
|
||||||
vmess.type = settings.VMESS_KCP_Type;
|
vmess.type = settings.VMESS_KCP_Type;
|
||||||
vmess.path = settings.VMESS_KCP_Seed;
|
vmess.path = settings.VMESS_KCP_Seed;
|
||||||
|
@ -17,6 +17,9 @@ namespace ProxySU_Core.Models
|
|||||||
{
|
{
|
||||||
var guid = Guid.NewGuid().ToString();
|
var guid = Guid.NewGuid().ToString();
|
||||||
Port = 443;
|
Port = 443;
|
||||||
|
KcpPort = 10443;
|
||||||
|
ShadowSocksPort = 11443;
|
||||||
|
|
||||||
UUID = guid;
|
UUID = guid;
|
||||||
Types = new List<XrayType>();
|
Types = new List<XrayType>();
|
||||||
|
|
||||||
@ -41,6 +44,14 @@ namespace ProxySU_Core.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int Port { get; set; }
|
public int Port { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// kcp端口
|
||||||
|
/// </summary>
|
||||||
|
public int KcpPort { get; set; }
|
||||||
|
|
||||||
|
// ss端口
|
||||||
|
public int ShadowSocksPort { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// UUID
|
/// UUID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -51,5 +51,5 @@ using System.Windows;
|
|||||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||||
//通过使用 "*",如下所示:
|
//通过使用 "*",如下所示:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("3.1.0.0")]
|
[assembly: AssemblyVersion("3.1.1.0")]
|
||||||
[assembly: AssemblyFileVersion("3.1.0.0")]
|
[assembly: AssemblyFileVersion("3.1.1.0")]
|
||||||
|
@ -129,6 +129,7 @@
|
|||||||
<Compile Include="Tools\DateTimeUtils.cs" />
|
<Compile Include="Tools\DateTimeUtils.cs" />
|
||||||
<Compile Include="Tools\Extensions.cs" />
|
<Compile Include="Tools\Extensions.cs" />
|
||||||
<Compile Include="ViewModels\BaseCommand.cs" />
|
<Compile Include="ViewModels\BaseCommand.cs" />
|
||||||
|
<Compile Include="ViewModels\BaseModel.cs" />
|
||||||
<Compile Include="ViewModels\BaseViewModel.cs" />
|
<Compile Include="ViewModels\BaseViewModel.cs" />
|
||||||
<Compile Include="Models\Developers\ConfigBuilder.cs" />
|
<Compile Include="Models\Developers\ConfigBuilder.cs" />
|
||||||
<Compile Include="Models\Developers\IParameters.cs" />
|
<Compile Include="Models\Developers\IParameters.cs" />
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
##domain##:80 {
|
##domain##:##port## {
|
||||||
root * /usr/share/caddy
|
root * /usr/share/caddy
|
||||||
file_server
|
file_server
|
||||||
##reverse_proxy##
|
##reverse_proxy##
|
||||||
|
38
ProxySU_Core/ViewModels/BaseModel.cs
Normal file
38
ProxySU_Core/ViewModels/BaseModel.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
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<T>(ref T backingStore, T value,
|
||||||
|
string propertyName = "",
|
||||||
|
Action onChanged = null)
|
||||||
|
{
|
||||||
|
if (EqualityComparer<T>.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
|
||||||
|
}
|
||||||
|
}
|
@ -23,6 +23,37 @@ namespace ProxySU_Core.ViewModels
|
|||||||
Notify("VMESS_KCP_Type");
|
Notify("VMESS_KCP_Type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int Port
|
||||||
|
{
|
||||||
|
get => settings.Port;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
settings.Port = value;
|
||||||
|
Notify("Port");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int KcpPort
|
||||||
|
{
|
||||||
|
get => settings.KcpPort;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
settings.KcpPort = value;
|
||||||
|
Notify("KcpPort");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ShadowSocksPort
|
||||||
|
{
|
||||||
|
get => settings.ShadowSocksPort;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
settings.KcpPort = value;
|
||||||
|
Notify("ShadowSocksPort");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public string UUID
|
public string UUID
|
||||||
{
|
{
|
||||||
get => settings.UUID;
|
get => settings.UUID;
|
||||||
|
@ -322,7 +322,7 @@
|
|||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
<Label Content="端口(port)" Width="120" />
|
<Label Content="端口(port)" Width="120" />
|
||||||
<TextBox Text="{Binding Source={x:Static dev:ConfigBuilder.VMESS_mKCP_Port},Mode=OneTime}" IsReadOnly="True" Width="200" />
|
<TextBox Text="{Binding Path=Settings.KcpPort,Mode=OneTime}" IsReadOnly="True" Width="200" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
@ -404,7 +404,7 @@
|
|||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
<Label Content="服务器端口" Width="120" />
|
<Label Content="服务器端口" Width="120" />
|
||||||
<TextBox Text="{Binding Source={x:Static dev:ConfigBuilder.ShadowSocksPort},Mode=OneTime}" IsReadOnly="True" Width="200" />
|
<TextBox Text="{Binding Path=ShadowSocksPort,Mode=OneTime}" IsReadOnly="True" Width="200" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
|
||||||
|
@ -125,9 +125,27 @@
|
|||||||
<TabItem
|
<TabItem
|
||||||
Width="160"
|
Width="160"
|
||||||
Style="{StaticResource MaterialDesignNavigationRailTabItem}"
|
Style="{StaticResource MaterialDesignNavigationRailTabItem}"
|
||||||
Header="其他功能">
|
Header="说明文档">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock Text="还不知道要点啥...看大家建议?" />
|
<StackPanel Margin="0,10,0,0">
|
||||||
|
<TextBlock Text="新书指引:" FontWeight="Black" />
|
||||||
|
<TextBlock Text="1. 【添加主机】,填写主机信息及节点配置信息,保存。" />
|
||||||
|
<TextBlock Text="2. 点【控制台】,自动连接主机,连接成功后,点【一键安装】,待输出 “请尽情享用吧” 代表安装完成。" />
|
||||||
|
<TextBlock Text="3. 在【查看配置】中可以查看节点配置信息,选中【导出配置】可以复制所有节点的分享拦截。" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Margin="0,10,0,0">
|
||||||
|
<TextBlock Text="自定义功能" FontWeight="Black" />
|
||||||
|
<TextBlock Text="【更新配置】:用户想修改节点的信息,比如增加一个websocket或修改用户id,在【编辑】中修改保存后,不需要重新安装了,这个功能就可以更新配置。" />
|
||||||
|
<TextBlock Text="【更新内核】:更新官方xray-core的最新版本。" />
|
||||||
|
<TextBlock Text="【卸载代理】:卸载 域名证书、caddy服务、xray内核,一些安装过程中的基础功能,不影响不卸载,会影响到您的系统,请自行处理。" />
|
||||||
|
<TextBlock Text="【续签证书】:默认是会自动续签的,但由于各种平台的基础环境不一样,可能有些会续签失败,这个功能可手动续签证书。" />
|
||||||
|
<TextBlock Text="【上传证书】:上传自有证书,将您的证书 crt 和 key 文件打包zip上传即可。" />
|
||||||
|
<TextBlock Text="【上传网站】:上传伪装静态网站,静态网站必须根目录有一个index.html文件,请自行检查。" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Margin="0,10,0,0">
|
||||||
|
<TextBlock Text="关于v3版本:" FontWeight="Black" />
|
||||||
|
<TextBlock Text="初步以xray为基础,方便自动安装、修改、卸载,看建议再考虑其他方式,如有需要请先用v2的版本。" />
|
||||||
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</TabControl>
|
</TabControl>
|
||||||
|
@ -222,6 +222,8 @@
|
|||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
|
<Label Content="默认端口(请避开1000-1999回落端口)" />
|
||||||
|
|
||||||
<CheckBox Content="VLESS OVER TCP with XTLS"
|
<CheckBox Content="VLESS OVER TCP with XTLS"
|
||||||
Style="{StaticResource MahApps.Styles.CheckBox}"
|
Style="{StaticResource MahApps.Styles.CheckBox}"
|
||||||
IsChecked="{Binding Path=Settings.Checked_VLESS_TCP_XTLS}"
|
IsChecked="{Binding Path=Settings.Checked_VLESS_TCP_XTLS}"
|
||||||
@ -273,7 +275,17 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Margin="60,0,0,0">
|
<StackPanel Margin="60,0,0,0">
|
||||||
|
|
||||||
<StackPanel Margin="0,0,0,0" Orientation="Horizontal">
|
<StackPanel Margin="0,0,0,0" Orientation="Horizontal">
|
||||||
|
<Label Content="xray" VerticalAlignment="Center" />
|
||||||
|
<TextBox Text="{Binding Path=Settings.Port}" Width="50" VerticalAlignment="Center" />
|
||||||
|
<Label Content="ss" Margin="10,0,0,0" VerticalAlignment="Center" />
|
||||||
|
<TextBox Text="{Binding Path=Settings.ShadowSocksPort}" Width="50" VerticalAlignment="Center" />
|
||||||
|
<Label Content="mkcp" Margin="10,0,0,0" VerticalAlignment="Center" />
|
||||||
|
<TextBox Text="{Binding Path=Settings.KcpPort}" Width="50" VerticalAlignment="Center" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
|
||||||
<Label Content="UUID" Width="80" VerticalAlignment="Center" />
|
<Label Content="UUID" Width="80" VerticalAlignment="Center" />
|
||||||
<TextBox Text="{Binding Path=Settings.UUID}" Width="200" />
|
<TextBox Text="{Binding Path=Settings.UUID}" Width="200" />
|
||||||
<Button Style="{StaticResource MahApps.Styles.Button.Flat}"
|
<Button Style="{StaticResource MahApps.Styles.Button.Flat}"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
xmlns:local="clr-namespace:ProxySU_Core"
|
xmlns:local="clr-namespace:ProxySU_Core"
|
||||||
xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"
|
xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="主机控制台" Height="500" Width="800">
|
Title="主机控制台" Height="600" Width="800">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBox IsReadOnly="True"
|
<TextBox IsReadOnly="True"
|
||||||
Block.LineHeight="18"
|
Block.LineHeight="18"
|
||||||
@ -27,12 +27,19 @@
|
|||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Margin="0,0,10,0"/>
|
Margin="0,0,10,0"/>
|
||||||
|
|
||||||
<Button Content="安装Xray"
|
<Button Content="一键安装"
|
||||||
Click="Install"
|
Click="Install"
|
||||||
Height="26"
|
Height="26"
|
||||||
IsEnabled="{Binding HasConnected}"
|
IsEnabled="{Binding HasConnected}"
|
||||||
Width="120"/>
|
Width="120"/>
|
||||||
|
|
||||||
|
<Button Content="更新配置"
|
||||||
|
Margin="10,0,0,0"
|
||||||
|
Click="UpdateXraySettings"
|
||||||
|
Height="26"
|
||||||
|
IsEnabled="{Binding HasConnected}"
|
||||||
|
Width="120"/>
|
||||||
|
|
||||||
<Button Content="更新Xray内核"
|
<Button Content="更新Xray内核"
|
||||||
Margin="10,0,0,0"
|
Margin="10,0,0,0"
|
||||||
Click="UpdateXrayCore"
|
Click="UpdateXrayCore"
|
||||||
@ -40,13 +47,6 @@
|
|||||||
IsEnabled="{Binding HasConnected}"
|
IsEnabled="{Binding HasConnected}"
|
||||||
Width="120"/>
|
Width="120"/>
|
||||||
|
|
||||||
<Button Content="更新Xray配置"
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
Click="UpdateXraySettings"
|
|
||||||
Height="26"
|
|
||||||
IsEnabled="{Binding HasConnected}"
|
|
||||||
Width="120"/>
|
|
||||||
|
|
||||||
<Button Content="卸载代理"
|
<Button Content="卸载代理"
|
||||||
Margin="10,0,0,0"
|
Margin="10,0,0,0"
|
||||||
Click="UninstallXray"
|
Click="UninstallXray"
|
||||||
@ -61,7 +61,7 @@
|
|||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Margin="0,0,10,0"/>
|
Margin="0,0,10,0"/>
|
||||||
|
|
||||||
<Button Content="申请证书"
|
<Button Content="续签证书"
|
||||||
Margin="0,0,0,0"
|
Margin="0,0,0,0"
|
||||||
Height="26"
|
Height="26"
|
||||||
Width="120"
|
Width="120"
|
||||||
@ -75,7 +75,7 @@
|
|||||||
IsEnabled="{Binding HasConnected}"
|
IsEnabled="{Binding HasConnected}"
|
||||||
Click="UploadCert"/>
|
Click="UploadCert"/>
|
||||||
|
|
||||||
<Button Content="上传伪装网站"
|
<Button Content="上传网站"
|
||||||
Margin="10,0,0,0"
|
Margin="10,0,0,0"
|
||||||
Height="26"
|
Height="26"
|
||||||
Width="120"
|
Width="120"
|
||||||
@ -92,7 +92,15 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Margin="10,0,0,0">
|
<StackPanel Margin="10,0,0,0">
|
||||||
<Label Content="静态网页模版(感谢网友推荐),将网站压缩包上传到服务区即可。" />
|
<Label Content="说明:"/>
|
||||||
|
<StackPanel Margin="10,0,0,0">
|
||||||
|
<Label Content="一键安装: 最后输出 “请尽情享用” 表示完成,到[查看配置]或[导出配置]查看节点" />
|
||||||
|
<Label Content="更新配置: 修改节点配置信息后,不需要重新安装,这个功能就可以更新配置了" />
|
||||||
|
|
||||||
|
<Label Content="续签证书: 证书默认是自动续签,但不保证都能续签成功,如果失败请用[续签证书]手动续签" />
|
||||||
|
<Label Content="上传网站: 伪装网站,正确的静态网页要有index.html文件(请检查),然后将网站压缩包上传。" />
|
||||||
|
</StackPanel>
|
||||||
|
<Label Content="如下是网友提供的静态网页连接,请自行检查是否有index.html文件" />
|
||||||
<TextBlock>
|
<TextBlock>
|
||||||
<Hyperlink NavigateUri="https://www.themezy.com" Click="OpenLink">Themezy</Hyperlink>
|
<Hyperlink NavigateUri="https://www.themezy.com" Click="OpenLink">Themezy</Hyperlink>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user