1
0
mirror of https://github.com/proxysu/ProxySU.git synced 2025-02-21 17:03:17 +03:00
This commit is contained in:
autumn 2021-06-29 16:08:45 +08:00
parent 395d01aea8
commit 2f0f9fb09d
6 changed files with 161 additions and 125 deletions

View File

@ -67,6 +67,7 @@
<Compile Include="Converters\ProxyTypeConverter.cs" /> <Compile Include="Converters\ProxyTypeConverter.cs" />
<Compile Include="Converters\VisibleConverter.cs" /> <Compile Include="Converters\VisibleConverter.cs" />
<Compile Include="Helpers\DateTimeUtils.cs" /> <Compile Include="Helpers\DateTimeUtils.cs" />
<Compile Include="Helpers\Rand.cs" />
<Compile Include="Models\Hosts\Host.cs" /> <Compile Include="Models\Hosts\Host.cs" />
<Compile Include="Models\Hosts\LocalProxyType.cs" /> <Compile Include="Models\Hosts\LocalProxyType.cs" />
<Compile Include="Models\Hosts\LoginSecretType.cs" /> <Compile Include="Models\Hosts\LoginSecretType.cs" />

View File

@ -215,6 +215,13 @@ namespace ProxySuper.Core.Services
RunCmd(GetInstallCmd("xz-devel")); RunCmd(GetInstallCmd("xz-devel"));
} }
// 检测是否安装cron
cmd = RunCmd("command -v cron");
if (string.IsNullOrEmpty(cmd))
{
RunCmd(GetInstallCmd("cron"));
}
// 检测是否安装lsof // 检测是否安装lsof
cmd = RunCmd("command -v lsof"); cmd = RunCmd("command -v lsof");
if (string.IsNullOrEmpty(cmd)) if (string.IsNullOrEmpty(cmd))

View File

@ -13,162 +13,162 @@
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<StackPanel Width="220"> <StackPanel Width="220">
<!--XTLS--> <!--XTLS-->
<CheckBox Margin="0,10,0,0" <CheckBox Margin="0,10,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_VLESS_TCP_XTLS}"> IsChecked="{Binding Path=Checked_VLESS_TCP_XTLS}">
<Label Content="{DynamicResource VlessXtlsDesc}" FontSize="13" Foreground="LimeGreen" /> <Label Content="{DynamicResource VlessXtlsDesc}" FontSize="13" Foreground="LimeGreen" />
</CheckBox> </CheckBox>
<!--TCP--> <!--TCP-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_VLESS_TCP}"> IsChecked="{Binding Path=Checked_VLESS_TCP}">
<Label Content="{DynamicResource VlessTcpDesc}" FontSize="13" Foreground="LimeGreen" /> <Label Content="{DynamicResource VlessTcpDesc}" FontSize="13" Foreground="LimeGreen" />
</CheckBox> </CheckBox>
<!--WebSocket--> <!--WebSocket-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_VLESS_WS}"> IsChecked="{Binding Path=Checked_VLESS_WS}">
<Label Content="{DynamicResource VlessWsDesc}" FontSize="13" Foreground="LimeGreen" /> <Label Content="{DynamicResource VlessWsDesc}" FontSize="13" Foreground="LimeGreen" />
</CheckBox> </CheckBox>
<!--mKCP--> <!--mKCP-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Foreground="LimeGreen" Foreground="LimeGreen"
IsChecked="{Binding Path=Checked_VLESS_KCP}"> IsChecked="{Binding Path=Checked_VLESS_KCP}">
<Label Content="{DynamicResource VlessKcpDesc}" FontSize="13" Foreground="LimeGreen" /> <Label Content="{DynamicResource VlessKcpDesc}" FontSize="13" Foreground="LimeGreen" />
</CheckBox> </CheckBox>
<!--TCP--> <!--TCP-->
<!--<CheckBox Content="VMESS over TCP with TLS&#x0a;不推荐" <!--<CheckBox Content="VMESS over TCP with TLS&#x0a;不推荐"
Margin="0,15,0,0" Margin="0,15,0,0"
FontSize="13" FontSize="13"
Style="{StaticResource MahApps.Styles.CheckBox}" Style="{StaticResource MahApps.Styles.CheckBox}"
IsChecked="{Binding Path=Checked_VMESS_TCP}" />--> IsChecked="{Binding Path=Checked_VMESS_TCP}" />-->
<!--WebSocket--> <!--WebSocket-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_VMESS_WS}"> IsChecked="{Binding Path=Checked_VMESS_WS}">
<Label Content="{DynamicResource VmessWsDesc}" FontSize="13" Foreground="Blue" /> <Label Content="{DynamicResource VmessWsDesc}" FontSize="13" Foreground="Blue" />
</CheckBox> </CheckBox>
<!--mKCP--> <!--mKCP-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_VMESS_KCP}"> IsChecked="{Binding Path=Checked_VMESS_KCP}">
<Label Foreground="Blue" FontSize="13" Content="{DynamicResource VmessKcpDesc}" /> <Label Foreground="Blue" FontSize="13" Content="{DynamicResource VmessKcpDesc}" />
</CheckBox> </CheckBox>
<!--ss--> <!--ss-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=CheckedShadowSocks}"> IsChecked="{Binding Path=CheckedShadowSocks}">
<Label Content="{DynamicResource SSDesc}" FontSize="13" Foreground="Fuchsia" /> <Label Content="{DynamicResource SSDesc}" FontSize="13" Foreground="Fuchsia" />
</CheckBox> </CheckBox>
<!--Trojan--> <!--Trojan-->
<CheckBox Margin="0,15,0,0" <CheckBox Margin="0,15,0,0"
Foreground="CadetBlue" Foreground="CadetBlue"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
IsChecked="{Binding Path=Checked_Trojan_TCP}"> IsChecked="{Binding Path=Checked_Trojan_TCP}">
<Label Content="{DynamicResource TrojanDesc}" FontSize="13" Foreground="CadetBlue" /> <Label Content="{DynamicResource TrojanDesc}" FontSize="13" Foreground="CadetBlue" />
</CheckBox> </CheckBox>
<!--gRPC--> <!--gRPC-->
<!--<CheckBox Content="VLESS gRPC&#x0a;基于http2多路复用。" <!--<CheckBox Content="VLESS gRPC&#x0a;基于http2多路复用。"
Margin="0,15,0,0" Margin="0,15,0,0"
Grid.Column="0" Grid.Column="0"
Style="{StaticResource MahApps.Styles.CheckBox}" Style="{StaticResource MahApps.Styles.CheckBox}"
IsChecked="{Binding Path=Checked_VLESS_gRPC}"/>--> IsChecked="{Binding Path=Checked_VLESS_gRPC}"/>-->
</StackPanel> </StackPanel>
<!--************************** 参数 **************************--> <!--************************** 参数 **************************-->
<StackPanel> <StackPanel>
<!--Domain--> <!--Domain-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal"> Orientation="Horizontal">
<Label Content="{DynamicResource XrayDomain}" Width="120" /> <Label Content="{DynamicResource XrayDomain}" Width="120" />
<TextBox Text="{Binding Path=Domain}" Width="200" /> <TextBox Text="{Binding Path=Domain}" Width="200" />
</StackPanel> </StackPanel>
<!--Mask Domain--> <!--Mask Domain-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal"> Orientation="Horizontal">
<Label Content="{DynamicResource XrayMarkDomain}" Width="120" /> <Label Content="{DynamicResource XrayMarkDomain}" Width="120" />
<TextBox Text="{Binding Path=MaskDomain}" Width="200" /> <TextBox Text="{Binding Path=MaskDomain}" Width="200" />
</StackPanel> </StackPanel>
<!--UUID--> <!--UUID-->
<StackPanel Margin="30,10,0,0" <StackPanel Margin="30,10,0,0"
Orientation="Horizontal"> Orientation="Horizontal">
<Label Content="{DynamicResource XrayUUID}" Width="120" /> <Label Content="{DynamicResource XrayUUID}" Width="120" />
<TextBox Text="{Binding Path=UUID}" <TextBox Text="{Binding Path=UUID}"
Width="200" /> Width="200" />
<Button Margin="5,0,0,0" <Button Margin="5,0,0,0"
Padding="12,3" Padding="12,3"
Command="{Binding Path=RandomUuid}" Command="{Binding Path=RandomUuid}"
Content="{DynamicResource Random}" /> Content="{DynamicResource Random}" />
</StackPanel> </StackPanel>
<!--WebSocket Path--> <!--WebSocket Path-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VLESS_WS, Binding Path=Checked_VLESS_WS,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VlessWsPath}" Foreground="LimeGreen" Width="120" /> <Label Content="{DynamicResource VlessWsPath}" Foreground="LimeGreen" Width="120" />
<TextBox Text="{Binding Path=VLESS_WS_Path}" <TextBox Text="{Binding Path=VLESS_WS_Path}"
Width="200" /> Width="200" />
</StackPanel> </StackPanel>
<!--seed--> <!--seed-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VLESS_KCP, Binding Path=Checked_VLESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VlessKcpSeed}" Foreground="LimeGreen" Width="120" /> <Label Content="{DynamicResource VlessKcpSeed}" Foreground="LimeGreen" Width="120" />
<TextBox Text="{Binding Path=VLESS_KCP_Seed}" Width="200" /> <TextBox Text="{Binding Path=VLESS_KCP_Seed}" Width="200" />
</StackPanel> </StackPanel>
<!--kcp type--> <!--kcp type-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Visibility="{ Visibility="{
Binding Path=Checked_VLESS_KCP, Binding Path=Checked_VLESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}" Orientation="Horizontal"> }" Orientation="Horizontal">
<Label Content="{DynamicResource VlessKcpType}" Foreground="LimeGreen" Width="120" /> <Label Content="{DynamicResource VlessKcpType}" Foreground="LimeGreen" Width="120" />
<ComboBox Width="200" <ComboBox Width="200"
ItemsSource="{Binding Path=KcpTypes}" ItemsSource="{Binding Path=KcpTypes}"
SelectedValue="{Binding VLESS_KCP_Type,Mode=TwoWay}"> SelectedValue="{Binding VLESS_KCP_Type,Mode=TwoWay}">
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
<!--kcp port--> <!--kcp port-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Visibility="{ Visibility="{
Binding Path=Checked_VLESS_KCP, Binding Path=Checked_VLESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}" }"
Orientation="Horizontal"> Orientation="Horizontal">
<Label Content="{DynamicResource VlessKcpPort}" Width="120" Foreground="LimeGreen" /> <Label Content="{DynamicResource VlessKcpPort}" Width="120" Foreground="LimeGreen" />
<TextBox Text="{Binding Path=VLESS_KCP_Port}" Width="200" /> <TextBox Text="{Binding Path=VLESS_KCP_Port}" Width="200" />
</StackPanel> </StackPanel>
<!--gRPC Port--> <!--gRPC Port-->
<!--<StackPanel Margin="30,15,0,0" <!--<StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VLESS_gRPC, Binding Path=Checked_VLESS_gRPC,
@ -181,8 +181,8 @@
<TextBox Text="{Binding Path=VLESS_gRPC_ServiceName}" Width="120" /> <TextBox Text="{Binding Path=VLESS_gRPC_ServiceName}" Width="120" />
</StackPanel>--> </StackPanel>-->
<!--Tcp Path--> <!--Tcp Path-->
<!--<StackPanel Margin="30,15,0,0" <!--<StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VMESS_TCP, Binding Path=Checked_VMESS_TCP,
@ -194,102 +194,124 @@
Width="200" /> Width="200" />
</StackPanel>--> </StackPanel>-->
<!--WebSocket Path--> <!--WebSocket Path-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VMESS_WS, Binding Path=Checked_VMESS_WS,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VmessWsPath}" Foreground="Blue" Width="120" /> <Label Content="{DynamicResource VmessWsPath}" Foreground="Blue" Width="120" />
<TextBox Text="{Binding Path=VMESS_WS_Path}" <TextBox Text="{Binding Path=VMESS_WS_Path}"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
Width="200" /> Width="200" />
</StackPanel> </StackPanel>
<!--seed--> <!--seed-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VMESS_KCP, Binding Path=Checked_VMESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VmessKcpSeed}" Foreground="Blue" Width="120" /> <Label Content="{DynamicResource VmessKcpSeed}" Foreground="Blue" Width="120" />
<TextBox Text="{Binding Path=VMESS_KCP_Seed}" Width="200" /> <TextBox Text="{Binding Path=VMESS_KCP_Seed}" Width="200" />
</StackPanel> </StackPanel>
<!--kcp type--> <!--kcp type-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VMESS_KCP, Binding Path=Checked_VMESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VmessKcpType}" Foreground="Blue" Width="120" VerticalAlignment="Bottom"/> <Label Content="{DynamicResource VmessKcpType}" Foreground="Blue" Width="120" VerticalAlignment="Bottom"/>
<ComboBox Width="200" <ComboBox Width="200"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
ItemsSource="{Binding Path=KcpTypes}" ItemsSource="{Binding Path=KcpTypes}"
SelectedValue="{Binding VMESS_KCP_Type,Mode=TwoWay}"> SelectedValue="{Binding VMESS_KCP_Type,Mode=TwoWay}">
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
<!--kcp port--> <!--kcp port-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_VMESS_KCP, Binding Path=Checked_VMESS_KCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource VmessKcpPort}" Foreground="Blue" Width="120" /> <Label Content="{DynamicResource VmessKcpPort}" Foreground="Blue" Width="120" />
<TextBox Text="{Binding Path=VMESS_KCP_Port}" Width="200" /> <TextBox Text="{Binding Path=VMESS_KCP_Port}" Width="200" />
</StackPanel> </StackPanel>
<!--ss密码--> <!--ss密码-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=CheckedShadowSocks, Binding Path=CheckedShadowSocks,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource SSPassword}" Foreground="Fuchsia" Width="120" /> <Label Content="{DynamicResource SSPassword}" Foreground="Fuchsia" Width="120" />
<TextBox Text="{Binding Path=ShadowSocksPassword}" <TextBox Text="{Binding Path=ShadowSocksPassword}"
Width="200"/> Width="200"/>
</StackPanel> </StackPanel>
<!--ss加密方式--> <!--ss加密方式-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=CheckedShadowSocks, Binding Path=CheckedShadowSocks,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource SSMethods}" Foreground="Fuchsia" Width="120" /> <Label Content="{DynamicResource SSMethods}" Foreground="Fuchsia" Width="120" />
<ComboBox Width="200" <ComboBox Width="200"
ItemsSource="{Binding ShadowSocksMethods}" ItemsSource="{Binding ShadowSocksMethods}"
SelectedValue="{Binding ShadowSocksMethod}"> SelectedValue="{Binding ShadowSocksMethod}">
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
<!--Trojan密码--> <!--ss端口-->
<StackPanel Margin="30,15,0,0" <StackPanel Margin="30,15,0,0"
Orientation="Horizontal"
Visibility="{
Binding Path=CheckedShadowSocks,
Converter={StaticResource VisibleConverter}
}">
<Label Content="{DynamicResource SSPort}" Foreground="Fuchsia" Width="120" />
<TextBox Text="{Binding Path=ShadowSocksPort}" Width="200"/>
</StackPanel>
<!--Trojan密码-->
<StackPanel Margin="30,15,0,0"
Orientation="Horizontal" Orientation="Horizontal"
Visibility="{ Visibility="{
Binding Path=Checked_Trojan_TCP, Binding Path=Checked_Trojan_TCP,
Converter={StaticResource VisibleConverter} Converter={StaticResource VisibleConverter}
}"> }">
<Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" /> <Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" />
<TextBox Text="{Binding Path=TrojanPassword}" <TextBox Text="{Binding Path=TrojanPassword}"
Width="200" /> Width="200" />
</StackPanel>
<!--xray prot-->
<StackPanel Margin="30,15,0,0"
Orientation="Horizontal">
<Label Content="{DynamicResource XrayPort}" Foreground="Gray" Width="120" />
<TextBox Text="{Binding Path=Port}" Width="120" />
<Label Content="{DynamicResource XrayPortDefault}" Foreground="Red" />
</StackPanel>
</StackPanel> </StackPanel>
<!--Trojan端口-->
<StackPanel Margin="30,15,0,0"
Orientation="Horizontal"
Visibility="{
Binding Path=Checked_Trojan_TCP,
Converter={StaticResource VisibleConverter}
}">
<Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" />
<TextBox Text="{Binding Path=TrojanPassword}" Width="200" />
</StackPanel>
<!--xray prot-->
<StackPanel Margin="30,15,0,0"
Orientation="Horizontal">
<Label Content="{DynamicResource XrayPort}" Foreground="Gray" Width="120" />
<TextBox Text="{Binding Path=Port}" Width="120" />
<Label Content="{DynamicResource XrayPortDefault}" Foreground="Red" />
</StackPanel>
</StackPanel>
</StackPanel> </StackPanel>
</UserControl> </UserControl>

View File

@ -85,7 +85,9 @@
<sys:String x:Key="VmessKcpPort">VMESS KCP Port</sys:String> <sys:String x:Key="VmessKcpPort">VMESS KCP Port</sys:String>
<sys:String x:Key="SSPassword">SS Pwd</sys:String> <sys:String x:Key="SSPassword">SS Pwd</sys:String>
<sys:String x:Key="SSMethods">SS Method</sys:String> <sys:String x:Key="SSMethods">SS Method</sys:String>
<sys:String x:Key="SSPort">SS Port</sys:String>
<sys:String x:Key="TrojanPassword">Trojan Pwd</sys:String> <sys:String x:Key="TrojanPassword">Trojan Pwd</sys:String>
<sys:String x:Key="TrojanPort">Trojan Port</sys:String>
<sys:String x:Key="XrayPort">xray Port</sys:String> <sys:String x:Key="XrayPort">xray Port</sys:String>
<sys:String x:Key="XrayPortDefault">default port is 443</sys:String> <sys:String x:Key="XrayPortDefault">default port is 443</sys:String>

View File

@ -84,7 +84,9 @@
<sys:String x:Key="VmessKcpPort">VMESS KCP端口</sys:String> <sys:String x:Key="VmessKcpPort">VMESS KCP端口</sys:String>
<sys:String x:Key="SSPassword">SS密碼</sys:String> <sys:String x:Key="SSPassword">SS密碼</sys:String>
<sys:String x:Key="SSMethods">SS加密方式</sys:String> <sys:String x:Key="SSMethods">SS加密方式</sys:String>
<sys:String x:Key="SSPort">SS端口</sys:String>
<sys:String x:Key="TrojanPassword">Trojan密碼</sys:String> <sys:String x:Key="TrojanPassword">Trojan密碼</sys:String>
<sys:String x:Key="TrojanPort">Trojan端口</sys:String>
<sys:String x:Key="XrayPort">xray端口</sys:String> <sys:String x:Key="XrayPort">xray端口</sys:String>
<sys:String x:Key="XrayPortDefault">默認端口443不建議修改</sys:String> <sys:String x:Key="XrayPortDefault">默認端口443不建議修改</sys:String>

View File

@ -85,7 +85,9 @@
<sys:String x:Key="VmessKcpPort">VMESS KCP端口</sys:String> <sys:String x:Key="VmessKcpPort">VMESS KCP端口</sys:String>
<sys:String x:Key="SSPassword">SS密码</sys:String> <sys:String x:Key="SSPassword">SS密码</sys:String>
<sys:String x:Key="SSMethods">SS加密方式</sys:String> <sys:String x:Key="SSMethods">SS加密方式</sys:String>
<sys:String x:Key="SSPort">SS端口</sys:String>
<sys:String x:Key="TrojanPassword">Trojan密码</sys:String> <sys:String x:Key="TrojanPassword">Trojan密码</sys:String>
<sys:String x:Key="TrojanPort">Trojan端口</sys:String>
<sys:String x:Key="XrayPort">xray端口</sys:String> <sys:String x:Key="XrayPort">xray端口</sys:String>
<sys:String x:Key="XrayPortDefault">默认端口443不建议修改</sys:String> <sys:String x:Key="XrayPortDefault">默认端口443不建议修改</sys:String>