mirror of
https://github.com/proxysu/ProxySU.git
synced 2024-11-21 20:56:08 +03:00
fix 申请证书失败问题
This commit is contained in:
parent
e4971f286f
commit
7034a1dc22
5
.idea/.idea.ProxySU/.idea/codeStyles/codeStyleConfig.xml
Normal file
5
.idea/.idea.ProxySU/.idea/codeStyles/codeStyleConfig.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||||
|
</state>
|
||||||
|
</component>
|
32
.idea/.idea.ProxySU/.idea/contentModel.xml
Normal file
32
.idea/.idea.ProxySU/.idea/contentModel.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ContentModelStore">
|
||||||
|
<e p="C:\Users\huife\AppData\Local\JetBrains\Rider2020.2\extResources" t="IncludeRecursive" />
|
||||||
|
<e p="C:\Users\huife\AppData\Local\JetBrains\Rider2020.2\resharper-host\Local\Transient\Rider\v202\SolutionCaches\_ProxySU.1010492592.00" t="ExcludeRecursive" />
|
||||||
|
<e p="E:\dev\ProxySU" t="IncludeFlat">
|
||||||
|
<e p="packages" t="ExcludeRecursive" />
|
||||||
|
<e p="ProxySU" t="IncludeRecursive">
|
||||||
|
<e p="ProxySU.csproj" t="IncludeRecursive" />
|
||||||
|
</e>
|
||||||
|
<e p="ProxySU.sln" t="IncludeFlat" />
|
||||||
|
<e p="WpfApp1" t="IncludeRecursive">
|
||||||
|
<e p="App.xaml" t="Include" />
|
||||||
|
<e p="App.xaml.cs" t="Include" />
|
||||||
|
<e p="AssemblyInfo.cs" t="Include" />
|
||||||
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
|
<e p="MainWindow.xaml" t="Include" />
|
||||||
|
<e p="MainWindow.xaml.cs" t="Include" />
|
||||||
|
<e p="obj" t="ExcludeRecursive">
|
||||||
|
<e p="Debug" t="Include">
|
||||||
|
<e p="netcoreapp3.1-windows" t="Include">
|
||||||
|
<e p="App.g.cs" t="Include" />
|
||||||
|
<e p="MainWindow.g.cs" t="Include" />
|
||||||
|
<e p="WpfApp1.AssemblyInfo.cs" t="Include" />
|
||||||
|
</e>
|
||||||
|
</e>
|
||||||
|
</e>
|
||||||
|
<e p="WpfApp1.csproj" t="IncludeRecursive" />
|
||||||
|
</e>
|
||||||
|
</e>
|
||||||
|
</component>
|
||||||
|
</project>
|
4
.idea/.idea.ProxySU/.idea/encodings.xml
Normal file
4
.idea/.idea.ProxySU/.idea/encodings.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||||
|
</project>
|
8
.idea/.idea.ProxySU/.idea/indexLayout.xml
Normal file
8
.idea/.idea.ProxySU/.idea/indexLayout.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ContentModelUserStore">
|
||||||
|
<attachedFolders />
|
||||||
|
<explicitIncludes />
|
||||||
|
<explicitExcludes />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/.idea.ProxySU/.idea/modules.xml
Normal file
8
.idea/.idea.ProxySU/.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/.idea.ProxySU/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.ProxySU/riderModule.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/.idea.ProxySU/.idea/projectSettingsUpdater.xml
Normal file
6
.idea/.idea.ProxySU/.idea/projectSettingsUpdater.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RiderProjectSettingsUpdater">
|
||||||
|
<option name="vcsConfiguration" value="2" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/.idea.ProxySU/.idea/vcs.xml
Normal file
6
.idea/.idea.ProxySU/.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
121
.idea/.idea.ProxySU/.idea/workspace.xml
Normal file
121
.idea/.idea.ProxySU/.idea/workspace.xml
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoGeneratedRunConfigurationManager">
|
||||||
|
<projectFile>ProxySU/ProxySU.csproj</projectFile>
|
||||||
|
<projectFile>WpfApp1/WpfApp1.csproj</projectFile>
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="669dc0ab-dc83-4456-b675-b70a2f5f75b2" name="Default Changelist" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/ProxySU.sln" beforeDir="false" afterPath="$PROJECT_DIR$/ProxySU.sln" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ProxySU/bin/Beta/Beta.zip" beforeDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="HighlightingSettingsPerFile">
|
||||||
|
<setting file="file://$PROJECT_DIR$/ProxySU/MainWindow.xaml" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
</component>
|
||||||
|
<component name="IdeDocumentHistory">
|
||||||
|
<option name="CHANGED_PATHS">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/WpfApp1/MainWindow.xaml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="1lRuJq6UGgT2UlI6dsaBIqwjatG" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="dart.analysis.tool.window.visible" value="false" />
|
||||||
|
<property name="vue.rearranger.settings.migration" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="RunManager" selected=".NET Project.WpfApp1">
|
||||||
|
<configuration name="ProxySU" type="DotNetProject" factoryName=".NET Project">
|
||||||
|
<option name="EXE_PATH" value="" />
|
||||||
|
<option name="PROGRAM_PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="PASS_PARENT_ENVS" value="1" />
|
||||||
|
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||||
|
<option name="USE_MONO" value="0" />
|
||||||
|
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||||
|
<option name="PROJECT_PATH" value="$PROJECT_DIR$/ProxySU/ProxySU.csproj" />
|
||||||
|
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_KIND" value="Console" />
|
||||||
|
<option name="PROJECT_TFM" value="" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Build" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="WpfApp1" type="DotNetProject" factoryName=".NET Project">
|
||||||
|
<option name="EXE_PATH" value="" />
|
||||||
|
<option name="PROGRAM_PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="PASS_PARENT_ENVS" value="1" />
|
||||||
|
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||||
|
<option name="USE_MONO" value="0" />
|
||||||
|
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||||
|
<option name="PROJECT_PATH" value="$PROJECT_DIR$/WpfApp1/WpfApp1.csproj" />
|
||||||
|
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_KIND" value="DotNetCore" />
|
||||||
|
<option name="PROJECT_TFM" value="" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Build" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="669dc0ab-dc83-4456-b675-b70a2f5f75b2" name="Default Changelist" comment="" />
|
||||||
|
<created>1607572158648</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1607572158648</updated>
|
||||||
|
<workItem from="1607572166623" duration="517000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
<component name="UnityProjectConfiguration" hasMinimizedUI="null" />
|
||||||
|
<component name="UnityUnitTestConfiguration" currentTestLauncher="NUnit" />
|
||||||
|
<component name="VcsManagerConfiguration">
|
||||||
|
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="WindowStateProjectService">
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.bottom" timestamp="1607572691215">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1607572691215" />
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.center" timestamp="1607572691215">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1607572691215" />
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.left" timestamp="1607572691215">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1607572691215" />
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.right" timestamp="1607572691215">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state width="1877" height="275" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1607572691215" />
|
||||||
|
<state x="552" y="252" key="Rider.ProjectTemplateDialog.Size" timestamp="1607572543584">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state x="552" y="252" key="Rider.ProjectTemplateDialog.Size/0.0.1920.1040@0.0.1920.1040" timestamp="1607572543584" />
|
||||||
|
</component>
|
||||||
|
</project>
|
7
.idea/.idea.ProxySU/riderModule.iml
Normal file
7
.idea/.idea.ProxySU/riderModule.iml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="RIDER_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$/../.." />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
10
ProxySU.Core/App.xaml
Normal file
10
ProxySU.Core/App.xaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<Application x:Class="ProxySU.Core.App"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:local="clr-namespace:ProxySU.Core"
|
||||||
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
|
StartupUri="MainWindow.xaml">
|
||||||
|
<Application.Resources>
|
||||||
|
|
||||||
|
</Application.Resources>
|
||||||
|
</Application>
|
17
ProxySU.Core/App.xaml.cs
Normal file
17
ProxySU.Core/App.xaml.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
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
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaction logic for App.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class App : Application
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
10
ProxySU.Core/AssemblyInfo.cs
Normal file
10
ProxySU.Core/AssemblyInfo.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
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)
|
||||||
|
)]
|
28
ProxySU.Core/MainWindow.xaml
Normal file
28
ProxySU.Core/MainWindow.xaml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<Window x:Class="ProxySU.Core.MainWindow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:local="clr-namespace:ProxySU.Core"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
|
||||||
|
Title="MainWindow" Height="450" Width="800">
|
||||||
|
<Grid>
|
||||||
|
<Menu Style="{DynamicResource MaterialDesignMenu}">
|
||||||
|
<MenuItem Header="文件" Style="{DynamicResource MaterialDesignMenuItem}">
|
||||||
|
<MenuItem Header="SubMenu">肖文杰</MenuItem>
|
||||||
|
</MenuItem>
|
||||||
|
<MenuItem Header="文件" Style="{DynamicResource MaterialDesignMenuItem}"></MenuItem>
|
||||||
|
<MenuItem Header="文件" Style="{DynamicResource MaterialDesignMenuItem}"></MenuItem>
|
||||||
|
</Menu>
|
||||||
|
|
||||||
|
|
||||||
|
<!--<TabControl Style="{DynamicResource MaterialDesignNavigatilRailTabControl}" >
|
||||||
|
<TabItem Header="Item2" Style="{DynamicResource MaterialDesignNavigationRailTabItem}">
|
||||||
|
<Button Style="{DynamicResource MaterialDesignRaisedButton}" Content="Hello!"></Button>
|
||||||
|
</TabItem>
|
||||||
|
<TabItem Header="Item2"></TabItem>
|
||||||
|
|
||||||
|
</TabControl>-->
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
28
ProxySU.Core/MainWindow.xaml.cs
Normal file
28
ProxySU.Core/MainWindow.xaml.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace ProxySU.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaction logic for MainWindow.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class MainWindow : Window
|
||||||
|
{
|
||||||
|
public MainWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
13
ProxySU.Core/ProxySU.Core.csproj
Normal file
13
ProxySU.Core/ProxySU.Core.csproj
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<UseWPF>true</UseWPF>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MaterialDesignThemes" Version="3.2.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
@ -5,7 +5,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:ProxySU"
|
xmlns:local="clr-namespace:ProxySU"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="ProxySU - v2.5.3 Beta1" Height="675" Width="660">
|
Title="ProxySU - v2.5.6" Height="720" Width="660">
|
||||||
<!--以下样式参考自:https://yq.aliyun.com/articles/331878
|
<!--以下样式参考自:https://yq.aliyun.com/articles/331878
|
||||||
https://docs.microsoft.co/en-us/dotnet/desktop-wpf/fundamentals/styles-templates-overview-->
|
https://docs.microsoft.co/en-us/dotnet/desktop-wpf/fundamentals/styles-templates-overview-->
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
@ -57,6 +57,7 @@
|
|||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition></RowDefinition>
|
<RowDefinition></RowDefinition>
|
||||||
|
<RowDefinition Height="40"></RowDefinition>
|
||||||
<RowDefinition Height="1.3*"></RowDefinition>
|
<RowDefinition Height="1.3*"></RowDefinition>
|
||||||
<RowDefinition Height="1.8*"></RowDefinition>
|
<RowDefinition Height="1.8*"></RowDefinition>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
@ -147,23 +148,29 @@
|
|||||||
<TextBlock x:Name="TextBlockProxyPassword" IsEnabled="False" Text="{DynamicResource TextBlockHostPassword}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5" Grid.Column="2" Grid.Row="1" ></TextBlock>
|
<TextBlock x:Name="TextBlockProxyPassword" IsEnabled="False" Text="{DynamicResource TextBlockHostPassword}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5" Grid.Column="2" Grid.Row="1" ></TextBlock>
|
||||||
<TextBox x:Name="TextBoxProxyUserName" IsEnabled="False" Text="" Margin="3" Grid.Column="1" Grid.Row="1" />
|
<TextBox x:Name="TextBoxProxyUserName" IsEnabled="False" Text="" Margin="3" Grid.Column="1" Grid.Row="1" />
|
||||||
<PasswordBox x:Name="PasswordBoxProxyPassword" IsEnabled="False" Password="" Margin="3" Grid.Column="3" Grid.Row="1"></PasswordBox>
|
<PasswordBox x:Name="PasswordBoxProxyPassword" IsEnabled="False" Password="" Margin="3" Grid.Column="3" Grid.Row="1"></PasswordBox>
|
||||||
<Button x:Name="ButtonSaveInstalledLog" Content="{DynamicResource ButtonSaveInstalledLog}" Grid.Column="4" Grid.Row="1" Grid.ColumnSpan="2" Margin="10,3,10,3" Click="ButtonSaveInstalledLog_Click"></Button>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Row="1">
|
<Grid Grid.Row="1">
|
||||||
|
<StackPanel Margin="10,0,0,0" Orientation="Horizontal" VerticalAlignment="Center">
|
||||||
|
<TextBlock Foreground="Red" x:Name="AcmeEmailLabel" Text="Email:" VerticalAlignment="Center" />
|
||||||
|
<TextBox Margin="10,0,0,0" Height="20" Width="200" x:Name="AcmeEmailTextBox" />
|
||||||
|
<TextBlock Margin="10,0,0,0" Text="{DynamicResource AcmeEmailDesc}" Foreground="Red" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
<Grid Grid.Row="2">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="20"></RowDefinition>
|
<RowDefinition Height="20"></RowDefinition>
|
||||||
<RowDefinition Height="20"></RowDefinition>
|
<RowDefinition Height="20"></RowDefinition>
|
||||||
<RowDefinition></RowDefinition>
|
<RowDefinition></RowDefinition>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
<Button x:Name="ButtonSaveInstalledLog" Content="{DynamicResource ButtonSaveInstalledLog}" Margin="0,0,10,0" Width="140" HorizontalAlignment="Right" Click="ButtonSaveInstalledLog_Click"></Button>
|
||||||
<TextBlock x:Name="TextBlockSetUpProcessing" Text="{DynamicResource TextBlockSetUpProcessing}" Foreground="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
|
<TextBlock x:Name="TextBlockSetUpProcessing" Text="{DynamicResource TextBlockSetUpProcessing}" Foreground="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
|
||||||
<ProgressBar x:Name="ProgressBarSetUpProcessing" Minimum="0" Maximum="100" Value="{Binding InsertBindingHere}" Margin="10,0,10,3" Grid.Row="1"></ProgressBar>
|
<ProgressBar x:Name="ProgressBarSetUpProcessing" Minimum="0" Maximum="100" Value="{Binding InsertBindingHere}" Margin="10,0,10,3" Grid.Row="1"></ProgressBar>
|
||||||
<TextBlock Text="{Binding ElementName=ProgressBarSetUpProcessing, Path=Value, StringFormat={}{0:0}%}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1"/>
|
<TextBlock Text="{Binding ElementName=ProgressBarSetUpProcessing, Path=Value, StringFormat={}{0:0}%}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1"/>
|
||||||
<TextBox x:Name="TextBoxMonitorCommandResults" IsReadOnly="True" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Grid.Row="2" Margin="10,0,10,3"></TextBox>
|
<TextBox x:Name="TextBoxMonitorCommandResults" IsReadOnly="True" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Grid.Row="2" Margin="10,0,10,3"></TextBox>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Row="2">
|
<Grid Grid.Row="3">
|
||||||
<TabControl Grid.Column="0" Grid.Row="9" Grid.ColumnSpan="4" Grid.RowSpan="3">
|
<TabControl Grid.Column="0" Grid.Row="9" Grid.ColumnSpan="4" Grid.RowSpan="3">
|
||||||
<TabItem Header="Xray" Width="60" Height="30">
|
<TabItem Header="Xray" Width="60" Height="30">
|
||||||
<Grid>
|
<Grid>
|
||||||
|
@ -99,6 +99,7 @@ namespace ProxySU
|
|||||||
static int randomCaddyListenPort = 8800; //Caddy做伪装网站所监听的端口,随机10001-60000
|
static int randomCaddyListenPort = 8800; //Caddy做伪装网站所监听的端口,随机10001-60000
|
||||||
static int installationDegree = 0; //安装进度条显示的百分比
|
static int installationDegree = 0; //安装进度条显示的百分比
|
||||||
static string saveShellScriptFileName = "install.sh"; //用来保存下载的脚本名称
|
static string saveShellScriptFileName = "install.sh"; //用来保存下载的脚本名称
|
||||||
|
static string acmeEmail = "";
|
||||||
|
|
||||||
//****** ******
|
//****** ******
|
||||||
// Application.Current.FindResource("").ToString()
|
// Application.Current.FindResource("").ToString()
|
||||||
@ -564,8 +565,17 @@ namespace ProxySU
|
|||||||
//远程主机连接信息
|
//远程主机连接信息
|
||||||
private ConnectionInfo GenerateConnectionInfo()
|
private ConnectionInfo GenerateConnectionInfo()
|
||||||
{
|
{
|
||||||
|
acmeEmail = AcmeEmailTextBox.Text;
|
||||||
|
|
||||||
ConnectionInfo connectionInfo;
|
ConnectionInfo connectionInfo;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(acmeEmail))
|
||||||
|
{
|
||||||
|
var acmeEmailDesc = Application.Current.FindResource("AcmeEmailDesc").ToString();
|
||||||
|
MessageBox.Show(acmeEmailDesc);
|
||||||
|
return connectionInfo = null;
|
||||||
|
}
|
||||||
|
|
||||||
#region 检测输入的内容是否有错,并读取内容
|
#region 检测输入的内容是否有错,并读取内容
|
||||||
if (string.IsNullOrEmpty(PreTrim(TextBoxHost.Text)) == true || string.IsNullOrEmpty(PreTrim(TextBoxPort.Text)) == true || string.IsNullOrEmpty(PreTrim(TextBoxUserName.Text)) == true)
|
if (string.IsNullOrEmpty(PreTrim(TextBoxHost.Text)) == true || string.IsNullOrEmpty(PreTrim(TextBoxPort.Text)) == true || string.IsNullOrEmpty(PreTrim(TextBoxUserName.Text)) == true)
|
||||||
{
|
{
|
||||||
@ -737,7 +747,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region V2Ray相关
|
#region V2Ray相关
|
||||||
|
|
||||||
//打开v2ray模板设置窗口
|
//打开v2ray模板设置窗口
|
||||||
@ -1240,7 +1250,7 @@ namespace ProxySU
|
|||||||
functionResult = SetCaddyfile(client, upLoadPath);
|
functionResult = SetCaddyfile(client, upLoadPath);
|
||||||
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
//启动Caddy服务
|
//启动Caddy服务
|
||||||
@ -1359,8 +1369,8 @@ namespace ProxySU
|
|||||||
if (functionResult == true)
|
if (functionResult == true)
|
||||||
{
|
{
|
||||||
|
|
||||||
sshShellCommand = @"mv /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.1";
|
sshShellCommand = @"mv /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.1";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
//读取配置文件各个模块
|
//读取配置文件各个模块
|
||||||
string logConfigJson = $"{pwdir}" + @"TemplateConfg\v2ray\server\00_log\00_log.json";
|
string logConfigJson = $"{pwdir}" + @"TemplateConfg\v2ray\server\00_log\00_log.json";
|
||||||
@ -2923,8 +2933,8 @@ namespace ProxySU
|
|||||||
if (functionResult == true)
|
if (functionResult == true)
|
||||||
{
|
{
|
||||||
|
|
||||||
sshShellCommand = @"mv /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.1";
|
sshShellCommand = @"mv /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.1";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
//读取配置文件各个模块
|
//读取配置文件各个模块
|
||||||
string logConfigJson = $"{pwdir}" + @"TemplateConfg\xray\server\00_log\00_log.json";
|
string logConfigJson = $"{pwdir}" + @"TemplateConfg\xray\server\00_log\00_log.json";
|
||||||
@ -5268,7 +5278,7 @@ namespace ProxySU
|
|||||||
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
|
|
||||||
//安装代理程序 37--40
|
//安装代理程序 37--40
|
||||||
functionResult = ProxySoftInstall(client,@"NaiveProxy", @"https://raw.githubusercontent.com/proxysu/shellscript/master/Caddy-Naive/caddy-naive-install.sh");
|
functionResult = ProxySoftInstall(client, @"NaiveProxy", @"https://raw.githubusercontent.com/proxysu/shellscript/master/Caddy-Naive/caddy-naive-install.sh");
|
||||||
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
|
|
||||||
////****** "系统环境检测完毕,符合安装要求,开始布署......" ******
|
////****** "系统环境检测完毕,符合安装要求,开始布署......" ******
|
||||||
@ -5562,7 +5572,7 @@ namespace ProxySU
|
|||||||
{
|
{
|
||||||
ReceiveConfigurationParameters[i] = "";
|
ReceiveConfigurationParameters[i] = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool domainNotEmpty = ClassModel.TestDomainIsEmpty(TextBoxSSRHostDomain.Text);
|
bool domainNotEmpty = ClassModel.TestDomainIsEmpty(TextBoxSSRHostDomain.Text);
|
||||||
bool preDomainMask = ClassModel.PreDomainMask(TextBoxSSRSites.Text);
|
bool preDomainMask = ClassModel.PreDomainMask(TextBoxSSRSites.Text);
|
||||||
if (domainNotEmpty == false || preDomainMask == false)
|
if (domainNotEmpty == false || preDomainMask == false)
|
||||||
@ -6792,10 +6802,10 @@ namespace ProxySU
|
|||||||
private string GenerateRandomStr(int length)
|
private string GenerateRandomStr(int length)
|
||||||
{
|
{
|
||||||
var rand = System.Security.Cryptography.RandomNumberGenerator.Create();
|
var rand = System.Security.Cryptography.RandomNumberGenerator.Create();
|
||||||
byte[] bytes = new byte[length*2];
|
byte[] bytes = new byte[length * 2];
|
||||||
rand.GetBytes(bytes);
|
rand.GetBytes(bytes);
|
||||||
string randStr = Convert.ToBase64String(bytes);
|
string randStr = Convert.ToBase64String(bytes);
|
||||||
randStr = randStr.Replace("+", "").Replace("/", "").Replace("=", "").Substring(0,length);
|
randStr = randStr.Replace("+", "").Replace("/", "").Replace("=", "").Substring(0, length);
|
||||||
//MessageBox.Show(randStr);
|
//MessageBox.Show(randStr);
|
||||||
return randStr;
|
return randStr;
|
||||||
}
|
}
|
||||||
@ -6882,7 +6892,7 @@ namespace ProxySU
|
|||||||
FileStream createDownloadConfig = File.Open(localConfigSavePathAndFileName, FileMode.Create);
|
FileStream createDownloadConfig = File.Open(localConfigSavePathAndFileName, FileMode.Create);
|
||||||
sftpClient.DownloadFile(remoteConfigPathAndFileName, createDownloadConfig);
|
sftpClient.DownloadFile(remoteConfigPathAndFileName, createDownloadConfig);
|
||||||
createDownloadConfig.Close();
|
createDownloadConfig.Close();
|
||||||
|
|
||||||
sftpClient.Disconnect();
|
sftpClient.Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6898,24 +6908,24 @@ namespace ProxySU
|
|||||||
//伪装网站处理
|
//伪装网站处理
|
||||||
//private string DisguiseURLprocessing(string fakeUrl)
|
//private string DisguiseURLprocessing(string fakeUrl)
|
||||||
//{
|
//{
|
||||||
//var uri = new Uri(fakeUrl);
|
//var uri = new Uri(fakeUrl);
|
||||||
//return uri.Host;
|
//return uri.Host;
|
||||||
|
|
||||||
////处理伪装网站域名中的前缀
|
////处理伪装网站域名中的前缀
|
||||||
//if (fakeUrl.Length >= 7)
|
//if (fakeUrl.Length >= 7)
|
||||||
//{
|
//{
|
||||||
// string testDomainMask = fakeUrl.Substring(0, 7);
|
// string testDomainMask = fakeUrl.Substring(0, 7);
|
||||||
// if (String.Equals(testDomainMask, "https:/") || String.Equals(testDomainMask, "http://"))
|
// if (String.Equals(testDomainMask, "https:/") || String.Equals(testDomainMask, "http://"))
|
||||||
// {
|
// {
|
||||||
// //MessageBox.Show(testDomain);
|
// //MessageBox.Show(testDomain);
|
||||||
// string[] tmpUrl = fakeUrl.Split('/');
|
// string[] tmpUrl = fakeUrl.Split('/');
|
||||||
// //MainWindow.ReceiveConfigurationParameters[7] = TextBoxMaskSites.Text.Replace("/", "\\/");
|
// //MainWindow.ReceiveConfigurationParameters[7] = TextBoxMaskSites.Text.Replace("/", "\\/");
|
||||||
// fakeUrl = tmpUrl[2];
|
// fakeUrl = tmpUrl[2];
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//}
|
//}
|
||||||
//return fakeUrl;
|
//return fakeUrl;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
#region 检测系统内核是否符合安装要求
|
#region 检测系统内核是否符合安装要求
|
||||||
//private static bool DetectKernelVersion(string kernelVer)
|
//private static bool DetectKernelVersion(string kernelVer)
|
||||||
@ -7057,7 +7067,7 @@ namespace ProxySU
|
|||||||
thread.SetApartmentState(ApartmentState.STA);
|
thread.SetApartmentState(ApartmentState.STA);
|
||||||
thread.Start();
|
thread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
//启用BBR的主要进程
|
//启用BBR的主要进程
|
||||||
private void StartTestAndEnableBBR(ConnectionInfo connectionInfo)
|
private void StartTestAndEnableBBR(ConnectionInfo connectionInfo)
|
||||||
{
|
{
|
||||||
@ -7155,7 +7165,7 @@ namespace ProxySU
|
|||||||
//****** "BBR已经启用了!" ******
|
//****** "BBR已经启用了!" ******
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_BBRisEnabled").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_BBRisEnabled").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -7165,7 +7175,7 @@ namespace ProxySU
|
|||||||
}
|
}
|
||||||
|
|
||||||
client.Disconnect();//断开服务器ssh连接
|
client.Disconnect();//断开服务器ssh连接
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7181,7 +7191,7 @@ namespace ProxySU
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//检测要启用BBR主要的内核版本
|
//检测要启用BBR主要的内核版本
|
||||||
private static bool DetectKernelVersionBBR(string kernelVer)
|
private static bool DetectKernelVersionBBR(string kernelVer)
|
||||||
{
|
{
|
||||||
@ -7233,7 +7243,7 @@ namespace ProxySU
|
|||||||
thread.SetApartmentState(ApartmentState.STA);
|
thread.SetApartmentState(ApartmentState.STA);
|
||||||
thread.Start();
|
thread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//卸载代理进程
|
//卸载代理进程
|
||||||
private void StartRemoveProxySoft(ConnectionInfo connectionInfo)
|
private void StartRemoveProxySoft(ConnectionInfo connectionInfo)
|
||||||
@ -7338,18 +7348,18 @@ namespace ProxySU
|
|||||||
//如果未检测到有效的ip,连接就会被断开
|
//如果未检测到有效的ip,连接就会被断开
|
||||||
if (client.IsConnected == false)
|
if (client.IsConnected == false)
|
||||||
{
|
{
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
if (onlyIpv6 == true)
|
if (onlyIpv6 == true)
|
||||||
{
|
{
|
||||||
functionResult = SetUpNat64(client, true);
|
functionResult = SetUpNat64(client, true);
|
||||||
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return ; }
|
if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
//SetUpNat64(client, true);
|
//SetUpNat64(client, true);
|
||||||
//sshShellCommand = $"{sshCmdUpdate}";
|
//sshShellCommand = $"{sshCmdUpdate}";
|
||||||
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//******"开始卸载......"******
|
//******"开始卸载......"******
|
||||||
SetUpProgressBarProcessing(10);
|
SetUpProgressBarProcessing(10);
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_StartRemoveProxy").ToString() + "......";
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_StartRemoveProxy").ToString() + "......";
|
||||||
@ -7409,7 +7419,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
functionResult = FileCheckExists(client, @"/usr/local/bin/v2ray");
|
functionResult = FileCheckExists(client, @"/usr/local/bin/v2ray");
|
||||||
if (functionResult == true)
|
if (functionResult == true)
|
||||||
//if (currentShellCommandResult.Contains("/usr/local/bin/v2ray") == true)
|
//if (currentShellCommandResult.Contains("/usr/local/bin/v2ray") == true)
|
||||||
{
|
{
|
||||||
//******"V2Ray卸载失败!请向开发者问询!"******
|
//******"V2Ray卸载失败!请向开发者问询!"******
|
||||||
currentStatus = "V2Ray" + Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftFailed").ToString();
|
currentStatus = "V2Ray" + Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftFailed").ToString();
|
||||||
@ -7419,7 +7429,7 @@ namespace ProxySU
|
|||||||
{
|
{
|
||||||
//******"V2Ray卸载成功!"******
|
//******"V2Ray卸载成功!"******
|
||||||
SetUpProgressBarProcessing(16);
|
SetUpProgressBarProcessing(16);
|
||||||
currentStatus ="V2Ray" + Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftSuccess").ToString();
|
currentStatus = "V2Ray" + Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftSuccess").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7453,7 +7463,7 @@ namespace ProxySU
|
|||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_DiscoverProxySoft").ToString()
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_DiscoverProxySoft").ToString()
|
||||||
+ "Trojan-go!"
|
+ "Trojan-go!"
|
||||||
+ Application.Current.FindResource("DisplayInstallInfo_StartRemoveProxy").ToString()
|
+ Application.Current.FindResource("DisplayInstallInfo_StartRemoveProxy").ToString()
|
||||||
+ "Trojan-go......";
|
+ "Trojan-go......";
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
|
|
||||||
sshShellCommand = @"systemctl stop trojan-go";
|
sshShellCommand = @"systemctl stop trojan-go";
|
||||||
@ -7909,15 +7919,15 @@ namespace ProxySU
|
|||||||
|
|
||||||
sshShellCommand = @"command -v apt-get";
|
sshShellCommand = @"command -v apt-get";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getApt = ! String.IsNullOrEmpty(currentShellCommandResult);
|
bool getApt = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
sshShellCommand = @"command -v dnf";
|
sshShellCommand = @"command -v dnf";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getDnf = ! String.IsNullOrEmpty(currentShellCommandResult);
|
bool getDnf = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
sshShellCommand = @"command -v yum";
|
sshShellCommand = @"command -v yum";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getYum = ! String.IsNullOrEmpty(currentShellCommandResult);
|
bool getYum = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
SetUpProgressBarProcessing(55);
|
SetUpProgressBarProcessing(55);
|
||||||
|
|
||||||
@ -7925,7 +7935,7 @@ namespace ProxySU
|
|||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getZypper = String.IsNullOrEmpty(currentShellCommandResult);
|
bool getZypper = String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
|
|
||||||
string sshCmdRemove = "";
|
string sshCmdRemove = "";
|
||||||
//string sshCmdRemove2;
|
//string sshCmdRemove2;
|
||||||
//设置安装软件所用的命令格式
|
//设置安装软件所用的命令格式
|
||||||
@ -8135,7 +8145,7 @@ namespace ProxySU
|
|||||||
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//******"卸载成功!"******04
|
//******"卸载成功!"******04
|
||||||
SetUpProgressBarProcessing(100);
|
SetUpProgressBarProcessing(100);
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftSuccess").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_RemoveProxySoftSuccess").ToString();
|
||||||
@ -8903,7 +8913,7 @@ namespace ProxySU
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#region 免翻网址资源标签
|
#region 免翻网址资源标签
|
||||||
private void ButtonWebBrowserHomePageFreeWallURL_Click(object sender, RoutedEventArgs e)
|
private void ButtonWebBrowserHomePageFreeWallURL_Click(object sender, RoutedEventArgs e)
|
||||||
@ -8984,7 +8994,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 测试用代码
|
#region 测试用代码
|
||||||
private void Button_Click(object sender, RoutedEventArgs e)
|
private void Button_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
@ -9079,7 +9089,7 @@ namespace ProxySU
|
|||||||
SetUpProgressBarProcessing(3);
|
SetUpProgressBarProcessing(3);
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_LoginSuccessful").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_LoginSuccessful").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
|
|
||||||
sshShellCommand = @"id -u";
|
sshShellCommand = @"id -u";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
@ -9138,16 +9148,16 @@ namespace ProxySU
|
|||||||
}
|
}
|
||||||
|
|
||||||
//设置Nat64与删除设置Nat64
|
//设置Nat64与删除设置Nat64
|
||||||
private bool SetUpNat64(SshClient client,bool set)
|
private bool SetUpNat64(SshClient client, bool set)
|
||||||
{
|
{
|
||||||
if(set == true)
|
if (set == true)
|
||||||
{
|
{
|
||||||
//****** "正在查找最快的Nat64网关......" ******
|
//****** "正在查找最快的Nat64网关......" ******
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_FindFastestSetUpNat64").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_FindFastestSetUpNat64").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
//string[] dns64 = new string[2];
|
//string[] dns64 = new string[2];
|
||||||
var dns64 = FilterFastestIP(client);
|
var dns64 = FilterFastestIP(client);
|
||||||
|
|
||||||
if (functionResult == false)
|
if (functionResult == false)
|
||||||
{
|
{
|
||||||
//****** "未能找到有效的Nat64网关......" ******
|
//****** "未能找到有效的Nat64网关......" ******
|
||||||
@ -9158,7 +9168,7 @@ namespace ProxySU
|
|||||||
client.Disconnect();
|
client.Disconnect();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//****** "正在设置Nat64网关......" ******
|
//****** "正在设置Nat64网关......" ******
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_SetUpNat64").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_SetUpNat64").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
@ -9169,7 +9179,7 @@ namespace ProxySU
|
|||||||
sshShellCommand = @"mv /etc/resolv.conf /etc/resolv.conf.proxysu";
|
sshShellCommand = @"mv /etc/resolv.conf /etc/resolv.conf.proxysu";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach (string gateip in dns64)
|
foreach (string gateip in dns64)
|
||||||
{
|
{
|
||||||
@ -9198,7 +9208,7 @@ namespace ProxySU
|
|||||||
sshShellCommand = @"mv /etc/resolv.conf.proxysu /etc/resolv.conf";
|
sshShellCommand = @"mv /etc/resolv.conf.proxysu /etc/resolv.conf";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9251,7 +9261,7 @@ namespace ProxySU
|
|||||||
functionResult = true;
|
functionResult = true;
|
||||||
}
|
}
|
||||||
string[] returnstr = new string[listCount];
|
string[] returnstr = new string[listCount];
|
||||||
for(int i=0;i<listCount;i++)
|
for (int i = 0; i < listCount; i++)
|
||||||
{
|
{
|
||||||
returnstr[i] = NatDns64s[i].IpAddr;
|
returnstr[i] = NatDns64s[i].IpAddr;
|
||||||
}
|
}
|
||||||
@ -9287,9 +9297,9 @@ namespace ProxySU
|
|||||||
|
|
||||||
return currentShellCommandResult;
|
return currentShellCommandResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
//安装过程所运行的命令与相应结果
|
//安装过程所运行的命令与相应结果
|
||||||
private string MainWindowsShowCmd(SshClient client,string sshShellCommand)
|
private string MainWindowsShowCmd(SshClient client, string sshShellCommand, bool stopIfError = true)
|
||||||
{
|
{
|
||||||
TextBoxMonitorCommandResults.Dispatcher.BeginInvoke(updateMonitorAction, TextBoxMonitorCommandResults, sshShellCommand);//显示执行的命令
|
TextBoxMonitorCommandResults.Dispatcher.BeginInvoke(updateMonitorAction, TextBoxMonitorCommandResults, sshShellCommand);//显示执行的命令
|
||||||
SshCommand cmdResult = client.RunCommand(sshShellCommand);
|
SshCommand cmdResult = client.RunCommand(sshShellCommand);
|
||||||
@ -9297,8 +9307,9 @@ namespace ProxySU
|
|||||||
string currentShellCommandError = cmdResult.Error; //命令执行出错的提示
|
string currentShellCommandError = cmdResult.Error; //命令执行出错的提示
|
||||||
int cmdExitStatus = cmdResult.ExitStatus;
|
int cmdExitStatus = cmdResult.ExitStatus;
|
||||||
//if (String.IsNullOrEmpty(currentShellCommandResult) == true)
|
//if (String.IsNullOrEmpty(currentShellCommandResult) == true)
|
||||||
if(cmdExitStatus == 1)
|
if (cmdExitStatus == 1)
|
||||||
{
|
{
|
||||||
|
if (stopIfError) { }
|
||||||
//currentShellCommandResult = currentShellCommandError;
|
//currentShellCommandResult = currentShellCommandError;
|
||||||
TextBoxMonitorCommandResults.Dispatcher.BeginInvoke(updateMonitorAction, TextBoxMonitorCommandResults, currentShellCommandError);//显示命令执行错误的提示
|
TextBoxMonitorCommandResults.Dispatcher.BeginInvoke(updateMonitorAction, TextBoxMonitorCommandResults, currentShellCommandError);//显示命令执行错误的提示
|
||||||
}
|
}
|
||||||
@ -9306,7 +9317,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
return currentShellCommandResult;
|
return currentShellCommandResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
//调用的函数返回false后的提示
|
//调用的函数返回false后的提示
|
||||||
private string FunctionResultErr()
|
private string FunctionResultErr()
|
||||||
{
|
{
|
||||||
@ -9330,7 +9341,7 @@ namespace ProxySU
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -9380,7 +9391,7 @@ namespace ProxySU
|
|||||||
//condition---已安装的条件
|
//condition---已安装的条件
|
||||||
//functionResult = SoftInstalledIsNoYes(client, "v2ray", @"/usr/local/bin/v2ray");
|
//functionResult = SoftInstalledIsNoYes(client, "v2ray", @"/usr/local/bin/v2ray");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool SoftInstalledIsNoYes(SshClient client,string soft,string condition)
|
private bool SoftInstalledIsNoYes(SshClient client, string soft, string condition)
|
||||||
{
|
{
|
||||||
//******"检测系统是否已经安装......"******03
|
//******"检测系统是否已经安装......"******03
|
||||||
SetUpProgressBarProcessing(8);
|
SetUpProgressBarProcessing(8);
|
||||||
@ -9447,15 +9458,15 @@ namespace ProxySU
|
|||||||
|
|
||||||
sshShellCommand = @"command -v apt-get";
|
sshShellCommand = @"command -v apt-get";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
getApt = ! String.IsNullOrEmpty(currentShellCommandResult);
|
getApt = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
sshShellCommand = @"command -v dnf";
|
sshShellCommand = @"command -v dnf";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
getDnf = ! String.IsNullOrEmpty(currentShellCommandResult);
|
getDnf = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
sshShellCommand = @"command -v yum";
|
sshShellCommand = @"command -v yum";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
getYum = ! String.IsNullOrEmpty(currentShellCommandResult);
|
getYum = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
SetUpProgressBarProcessing(13);
|
SetUpProgressBarProcessing(13);
|
||||||
|
|
||||||
@ -9465,11 +9476,11 @@ namespace ProxySU
|
|||||||
|
|
||||||
sshShellCommand = @"command -v systemctl";
|
sshShellCommand = @"command -v systemctl";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getSystemd = ! String.IsNullOrEmpty(currentShellCommandResult);
|
bool getSystemd = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
sshShellCommand = @"command -v getenforce";
|
sshShellCommand = @"command -v getenforce";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
bool getGetenforce = ! String.IsNullOrEmpty(currentShellCommandResult);
|
bool getGetenforce = !String.IsNullOrEmpty(currentShellCommandResult);
|
||||||
|
|
||||||
|
|
||||||
//没有安装apt-get,也没有安装dnf\yum,也没有安装zypper,或者没有安装systemd的,不满足安装条件
|
//没有安装apt-get,也没有安装dnf\yum,也没有安装zypper,或者没有安装systemd的,不满足安装条件
|
||||||
@ -9630,7 +9641,7 @@ namespace ProxySU
|
|||||||
//sshShellCommand = $"{sshCmdUpdate}";
|
//sshShellCommand = $"{sshCmdUpdate}";
|
||||||
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
//currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
//****** "检测端口占用情况......" ******
|
//****** "检测端口占用情况......" ******
|
||||||
SetUpProgressBarProcessing(22);
|
SetUpProgressBarProcessing(22);
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_TestPortUsed").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_TestPortUsed").ToString();
|
||||||
@ -9806,13 +9817,13 @@ namespace ProxySU
|
|||||||
sshShellCommand = @"firewall-cmd --state";
|
sshShellCommand = @"firewall-cmd --state";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
if(String.Equals(currentShellCommandResult.Trim(), "running") == false)
|
if (String.Equals(currentShellCommandResult.Trim(), "running") == false)
|
||||||
{
|
{
|
||||||
sshShellCommand = @"systemctl restart firewalld";
|
sshShellCommand = @"systemctl restart firewalld";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (String.Equals(openFireWallPort, "443"))
|
if (String.Equals(openFireWallPort, "443"))
|
||||||
{
|
{
|
||||||
sshShellCommand = @"firewall-cmd --zone=public --add-port=80/tcp --permanent";
|
sshShellCommand = @"firewall-cmd --zone=public --add-port=80/tcp --permanent";
|
||||||
@ -9912,7 +9923,7 @@ namespace ProxySU
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//检测域名是否解析到当前IP上 34---36
|
//检测域名是否解析到当前IP上 34---36
|
||||||
//functionResult = DomainResolutionCurrentIPDetect(client);
|
//functionResult = DomainResolutionCurrentIPDetect(client);
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
@ -9941,7 +9952,9 @@ namespace ProxySU
|
|||||||
{
|
{
|
||||||
string nativeIp = ipv4;
|
string nativeIp = ipv4;
|
||||||
|
|
||||||
sshShellCommand = "ping " + ReceiveConfigurationParameters[4] + " -c1 | grep -oE -m1 \"([0-9]{1,3}\\.){3}[0-9]{1,3}\"";
|
//string cmdFilter = "";
|
||||||
|
string cmdFilter = @"| grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1";
|
||||||
|
sshShellCommand = $"dig @resolver1.opendns.com A {ReceiveConfigurationParameters[4]} +short -4 {cmdFilter}";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
string resultTestDomainCmd = currentShellCommandResult.TrimEnd('\r', '\n');
|
string resultTestDomainCmd = currentShellCommandResult.TrimEnd('\r', '\n');
|
||||||
@ -9954,15 +9967,15 @@ namespace ProxySU
|
|||||||
//onlyIpv6 = false;
|
//onlyIpv6 = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
string nativeIp = ipv6;
|
string nativeIp = ipv6;
|
||||||
|
|
||||||
//sshShellCommand = "ping6 " + ReceiveConfigurationParameters[4] + " -c1 | grep -oE -m1 \"([0-9]{1,3}\\.){3}[0-9]{1,3}\"";
|
//string cmdFilter = "";
|
||||||
sshShellCommand = $"dig @resolver1.opendns.com AAAA {ReceiveConfigurationParameters[4]} +short -6";
|
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";
|
||||||
|
sshShellCommand = $"dig @resolver1.opendns.com AAAA {ReceiveConfigurationParameters[4]} +short -6 {cmdFilter}";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
string resultTestDomainCmd = currentShellCommandResult.TrimEnd('\r', '\n');
|
string resultTestDomainCmd = currentShellCommandResult.TrimEnd('\r', '\n');
|
||||||
@ -9976,7 +9989,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//****** "域名未能正确解析到当前VPS的IP上!安装失败!" ******
|
//****** "域名未能正确解析到当前VPS的IP上!安装失败!" ******
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_ErrorDomainResolve").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_ErrorDomainResolve").ToString();
|
||||||
@ -9993,7 +10006,7 @@ namespace ProxySU
|
|||||||
//安装代理程序 37--40
|
//安装代理程序 37--40
|
||||||
//functionResult = ProxySoftInstall(client,@"",@"");
|
//functionResult = ProxySoftInstall(client,@"",@"");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool ProxySoftInstall(SshClient client,string proxyName,string downloadUrl)
|
private bool ProxySoftInstall(SshClient client, string proxyName, string downloadUrl)
|
||||||
{
|
{
|
||||||
//****** "系统环境检测完毕,符合安装要求,开始布署......" ******
|
//****** "系统环境检测完毕,符合安装要求,开始布署......" ******
|
||||||
SetUpProgressBarProcessing(37);
|
SetUpProgressBarProcessing(37);
|
||||||
@ -10017,7 +10030,7 @@ namespace ProxySU
|
|||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_DownloadScriptFailed").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_DownloadScriptFailed").ToString();
|
||||||
MainWindowsShowInfo(currentStatus);
|
MainWindowsShowInfo(currentStatus);
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
sshShellCommand = $"yes | bash {saveShellScriptFileName}";
|
sshShellCommand = $"yes | bash {saveShellScriptFileName}";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
@ -10028,13 +10041,13 @@ namespace ProxySU
|
|||||||
SetUpProgressBarProcessing(40);
|
SetUpProgressBarProcessing(40);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//程序是否安装成功检测并设置开机启动 41--43
|
//程序是否安装成功检测并设置开机启动 41--43
|
||||||
//soft--要检测的程序
|
//soft--要检测的程序
|
||||||
//condition---成功安装的条件
|
//condition---成功安装的条件
|
||||||
//functionResult = SoftInstalledSuccessOrFail(client,"v2ray",@"/usr/local/bin/v2ray");
|
//functionResult = SoftInstalledSuccessOrFail(client,"v2ray",@"/usr/local/bin/v2ray");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool SoftInstalledSuccessOrFail(SshClient client,string soft,string condition)
|
private bool SoftInstalledSuccessOrFail(SshClient client, string soft, string condition)
|
||||||
{
|
{
|
||||||
SetUpProgressBarProcessing(41);
|
SetUpProgressBarProcessing(41);
|
||||||
//sshShellCommand = $"find / -name {soft}";
|
//sshShellCommand = $"find / -name {soft}";
|
||||||
@ -10074,7 +10087,7 @@ namespace ProxySU
|
|||||||
//functionResult = GenerateServerConfiguration(client);
|
//functionResult = GenerateServerConfiguration(client);
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
|
|
||||||
|
|
||||||
//上传服务配置 47--50
|
//上传服务配置 47--50
|
||||||
private bool GenerateServerConfigurations(SshClient client) { return true; }
|
private bool GenerateServerConfigurations(SshClient client) { return true; }
|
||||||
|
|
||||||
@ -10083,7 +10096,6 @@ namespace ProxySU
|
|||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool AcmeShInstall(SshClient client)
|
private bool AcmeShInstall(SshClient client)
|
||||||
{
|
{
|
||||||
|
|
||||||
//****** "正在安装acme.sh......" ******22
|
//****** "正在安装acme.sh......" ******22
|
||||||
SetUpProgressBarProcessing(51);
|
SetUpProgressBarProcessing(51);
|
||||||
currentStatus = Application.Current.FindResource("DisplayInstallInfo_StartInstallAcmeSh").ToString();
|
currentStatus = Application.Current.FindResource("DisplayInstallInfo_StartInstallAcmeSh").ToString();
|
||||||
@ -10100,7 +10112,8 @@ namespace ProxySU
|
|||||||
sshShellCommand = $"{sshCmdInstall}automake autoconf libtool";
|
sshShellCommand = $"{sshCmdInstall}automake autoconf libtool";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
sshShellCommand = $"curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALLONLINE=1 sh";
|
//sshShellCommand = $"curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALLONLINE=1 sh";
|
||||||
|
sshShellCommand = $"curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m {acmeEmail}";
|
||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
if (currentShellCommandResult.Contains("Install success") == true)
|
if (currentShellCommandResult.Contains("Install success") == true)
|
||||||
@ -10165,7 +10178,7 @@ namespace ProxySU
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Caddy安装与检测安装是否成功 61--66
|
//Caddy安装与检测安装是否成功 61--66
|
||||||
//functionResult = CaddyInstall(client);
|
//functionResult = CaddyInstall(client);
|
||||||
@ -10262,7 +10275,7 @@ namespace ProxySU
|
|||||||
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
currentShellCommandResult = MainWindowsShowCmd(client, sshShellCommand);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
functionResult = ProxySoftInstall(client, @"Caddy", @"https://raw.githubusercontent.com/proxysu/shellscript/master/Caddy-Naive/caddy-naive-install.sh");
|
functionResult = ProxySoftInstall(client, @"Caddy", @"https://raw.githubusercontent.com/proxysu/shellscript/master/Caddy-Naive/caddy-naive-install.sh");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return false; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return false; }
|
||||||
@ -10302,7 +10315,7 @@ namespace ProxySU
|
|||||||
//设置Caddy配置文件
|
//设置Caddy配置文件
|
||||||
//functionResult = SetCaddyfile(client, @"/etc/caddy/Caddyfile");
|
//functionResult = SetCaddyfile(client, @"/etc/caddy/Caddyfile");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool SetCaddyfile(SshClient client,string upLoadPath)
|
private bool SetCaddyfile(SshClient client, string upLoadPath)
|
||||||
{
|
{
|
||||||
|
|
||||||
//设置Caddyfile文件中的tls 邮箱,在caddy2中已经不需要设置。
|
//设置Caddyfile文件中的tls 邮箱,在caddy2中已经不需要设置。
|
||||||
@ -10344,7 +10357,7 @@ namespace ProxySU
|
|||||||
//condition---成功启动的条件
|
//condition---成功启动的条件
|
||||||
//functionResult = SoftStartDetect(client, "v2ray", @"/usr/local/bin/v2ray");
|
//functionResult = SoftStartDetect(client, "v2ray", @"/usr/local/bin/v2ray");
|
||||||
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
//if (functionResult == false) { FunctionResultErr(); client.Disconnect(); return; }
|
||||||
private bool SoftStartDetect(SshClient client,string soft,string condition)
|
private bool SoftStartDetect(SshClient client, string soft, string condition)
|
||||||
{
|
{
|
||||||
//****** "正在启动......" ******33
|
//****** "正在启动......" ******33
|
||||||
//SetUpProgressBarProcessing(87);
|
//SetUpProgressBarProcessing(87);
|
||||||
@ -10509,7 +10522,7 @@ namespace ProxySU
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,5 +51,5 @@ using System.Windows;
|
|||||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
// 方法是按如下所示使用“*”: :
|
// 方法是按如下所示使用“*”: :
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.5.3.0")]
|
[assembly: AssemblyVersion("2.5.6.0")]
|
||||||
[assembly: AssemblyFileVersion("2.5.3.0")]
|
[assembly: AssemblyFileVersion("2.5.6.0")]
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Deterministic>true</Deterministic>
|
<Deterministic>true</Deterministic>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
<InstallFrom>Disk</InstallFrom>
|
<InstallFrom>Disk</InstallFrom>
|
||||||
@ -23,10 +24,10 @@
|
|||||||
<UpdatePeriodically>false</UpdatePeriodically>
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
<UpdateRequired>false</UpdateRequired>
|
<UpdateRequired>false</UpdateRequired>
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>1</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
@ -51,6 +52,18 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>ProxySU.ico</ApplicationIcon>
|
<ApplicationIcon>ProxySU.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestCertificateThumbprint>01AFC64B121E781F77B42A6E9F1B587DDBAD475A</ManifestCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestKeyFile>ProxySU_TemporaryKey.pfx</ManifestKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateManifests>true</GenerateManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignManifests>true</SignManifests>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Newtonsoft.Json">
|
<Reference Include="Newtonsoft.Json">
|
||||||
<HintPath>..\json.net\net40\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\json.net\net40\Newtonsoft.Json.dll</HintPath>
|
||||||
@ -186,17 +199,11 @@
|
|||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>del "$(TargetDir)*.xml"
|
<PostBuildEvent>
|
||||||
del "$(TargetDir)*.pdb"
|
</PostBuildEvent>
|
||||||
del "$(TargetDir)*.zip"
|
|
||||||
mkdir "$(TargetDir)TemplateConfg"
|
|
||||||
xcopy /Y /E /R "$(TargetDir)..\..\..\TemplateConfg\*.*" "$(TargetDir)TemplateConfg\"
|
|
||||||
"$(TargetDir)..\..\..\7z\7z.exe" a $(TargetDir)Release.zip $(TargetDir) -xr!*config
|
|
||||||
rmdir /S /Q "$(TargetDir)..\Beta"
|
|
||||||
mkdir "$(TargetDir)..\Beta"
|
|
||||||
copy /Y "$(TargetDir)Release.zip" "$(TargetDir)..\Beta\Beta.zip"</PostBuildEvent>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PreBuildEvent>rmdir /S /Q "$(TargetDir)</PreBuildEvent>
|
<PreBuildEvent>
|
||||||
|
</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@ -9,5 +9,9 @@
|
|||||||
<ErrorReportUrlHistory />
|
<ErrorReportUrlHistory />
|
||||||
<FallbackCulture>zh-CN</FallbackCulture>
|
<FallbackCulture>zh-CN</FallbackCulture>
|
||||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||||
|
<ProjectView>ProjectFiles</ProjectView>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<EnableSecurityDebugging>false</EnableSecurityDebugging>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@ -27,6 +27,8 @@
|
|||||||
<sys:String x:Key="RadioButtonProxyNoLogin">Not Login</sys:String>
|
<sys:String x:Key="RadioButtonProxyNoLogin">Not Login</sys:String>
|
||||||
<sys:String x:Key="RadiobuttonProxyYesLogin">Requires Login</sys:String>
|
<sys:String x:Key="RadiobuttonProxyYesLogin">Requires Login</sys:String>
|
||||||
<sys:String x:Key="TextBlockProxyHost">Proxy Addr:</sys:String>
|
<sys:String x:Key="TextBlockProxyHost">Proxy Addr:</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmail">Email</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmailDesc">Acme.sh SSL must an available email address.</sys:String>
|
||||||
<sys:String x:Key="ButtonSaveInstalledLog">Save Installation Log...</sys:String>
|
<sys:String x:Key="ButtonSaveInstalledLog">Save Installation Log...</sys:String>
|
||||||
<sys:String x:Key="TextBlockSetUpProcessing">Waiting for installation and deployment</sys:String>
|
<sys:String x:Key="TextBlockSetUpProcessing">Waiting for installation and deployment</sys:String>
|
||||||
<sys:String x:Key="TabItemHeaderSysTools">System Tools</sys:String>
|
<sys:String x:Key="TabItemHeaderSysTools">System Tools</sys:String>
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
<sys:String x:Key="RadioButtonProxyNoLogin">不需登录</sys:String>
|
<sys:String x:Key="RadioButtonProxyNoLogin">不需登录</sys:String>
|
||||||
<sys:String x:Key="RadiobuttonProxyYesLogin">需要登录</sys:String>
|
<sys:String x:Key="RadiobuttonProxyYesLogin">需要登录</sys:String>
|
||||||
<sys:String x:Key="TextBlockProxyHost">代理地址:</sys:String>
|
<sys:String x:Key="TextBlockProxyHost">代理地址:</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmail">Email</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmailDesc">申请SSL证书需要一个可用的Email地址</sys:String>
|
||||||
<sys:String x:Key="ButtonSaveInstalledLog">安装日志另存为...</sys:String>
|
<sys:String x:Key="ButtonSaveInstalledLog">安装日志另存为...</sys:String>
|
||||||
<sys:String x:Key="TextBlockSetUpProcessing">等待安装布署</sys:String>
|
<sys:String x:Key="TextBlockSetUpProcessing">等待安装布署</sys:String>
|
||||||
<sys:String x:Key="TabItemHeaderSysTools">系统工具</sys:String>
|
<sys:String x:Key="TabItemHeaderSysTools">系统工具</sys:String>
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
<sys:String x:Key="RadioButtonProxyNoLogin">不需登錄</sys:String>
|
<sys:String x:Key="RadioButtonProxyNoLogin">不需登錄</sys:String>
|
||||||
<sys:String x:Key="RadiobuttonProxyYesLogin">需要登錄</sys:String>
|
<sys:String x:Key="RadiobuttonProxyYesLogin">需要登錄</sys:String>
|
||||||
<sys:String x:Key="TextBlockProxyHost">代理地址:</sys:String>
|
<sys:String x:Key="TextBlockProxyHost">代理地址:</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmail">Email</sys:String>
|
||||||
|
<sys:String x:Key="AcmeEmailDesc">申請SSL證書需要一個可用的Email地址</sys:String>
|
||||||
<sys:String x:Key="ButtonSaveInstalledLog">安裝日誌另存為...</sys:String>
|
<sys:String x:Key="ButtonSaveInstalledLog">安裝日誌另存為...</sys:String>
|
||||||
<sys:String x:Key="TextBlockSetUpProcessing">等待安裝佈署</sys:String>
|
<sys:String x:Key="TextBlockSetUpProcessing">等待安裝佈署</sys:String>
|
||||||
<sys:String x:Key="TabItemHeaderSysTools">系統工具</sys:String>
|
<sys:String x:Key="TabItemHeaderSysTools">系統工具</sys:String>
|
||||||
|
4
ProxySU/packages.config
Normal file
4
ProxySU/packages.config
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="SSH.NET" version="2016.1.0" targetFramework="net40" />
|
||||||
|
</packages>
|
@ -267,7 +267,7 @@ Microsoft [.NET Framework 4.0](https://dotnet.microsoft.com/download/dotnet-fram
|
|||||||
|
|
||||||
在使用遇到问题时,请先看一下[常见问题集锦](https://github.com/proxysu/windows/wiki/CommonError),如果还不能解决,可以到以上平台询问,个人精力有限,尽力解答。
|
在使用遇到问题时,请先看一下[常见问题集锦](https://github.com/proxysu/windows/wiki/CommonError),如果还不能解决,可以到以上平台询问,个人精力有限,尽力解答。
|
||||||
## v1.0.0发布小记
|
## v1.0.0发布小记
|
||||||
足足用了近两个月的业余时间,终于做成一个功能还算完善的版本。虽是一个简单的小工具,没想到对于我这个初学C#的人,还是有点小吃力,如果不是因为武汉肺炎疫情,被禁足在家,还真没时间。学习C#,为啥编写这样一个小工具软件来练手?现在一键安装脚本多的是,这样的工具还有必要吗?咋说呢?我也不知道有多少人会喜欢这个小工具,只是觉得自己用着方便,也想方便一下别人吧,喜欢用就用,不喜欢,也随意。
|
足足用了近两个月的业余时间,终于做成一个功能还算完善的版本。虽是一个简单的小工具,没想到对于我这个初学C#的人,还是有点小吃力,如果不是因为新冠肺炎疫情,被禁足在家,还真没时间。学习C#,为啥编写这样一个小工具软件来练手?现在一键安装脚本多的是,这样的工具还有必要吗?咋说呢?我也不知道有多少人会喜欢这个小工具,只是觉得自己用着方便,也想方便一下别人吧,喜欢用就用,不喜欢,也随意。
|
||||||
生意又忙起来了,对于我这个业余的编程爱好者,可能没有多少业余时间继续折腾了,尽力吧。
|
生意又忙起来了,对于我这个业余的编程爱好者,可能没有多少业余时间继续折腾了,尽力吧。
|
||||||
(记于2020.4.18)
|
(记于2020.4.18)
|
||||||
## V2.0.0发布小记
|
## V2.0.0发布小记
|
||||||
|
Loading…
Reference in New Issue
Block a user