mirror of
https://github.com/FastTunnel/FastTunnel.git
synced 2025-02-08 02:39:29 +08:00
微调部分代码
This commit is contained in:
parent
9634b921e5
commit
320efdaf50
|
@ -6,15 +6,15 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" />
|
||||
<PackageReference Include="NLog" Version="4.7.5" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="NLog" Version="4.7.10" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.13.0-readme-preview" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace FastTunnel.Client
|
|||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
|
||||
var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
|
||||
try
|
||||
{
|
||||
CreateHostBuilder(args).Build().Run();
|
||||
|
|
|
@ -127,8 +127,10 @@ namespace FastTunnel.Core.Client
|
|||
}
|
||||
}
|
||||
|
||||
public void Login(Func<Connecter> login, SuiDaoServer serverConfig)
|
||||
public void Start(Func<Connecter> login, SuiDaoServer serverConfig)
|
||||
{
|
||||
_logger.LogInformation("===== FastTunnel Client Start =====");
|
||||
|
||||
_serverConfig = serverConfig;
|
||||
lastLogin = login;
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ using System.Collections.Concurrent;
|
|||
using System;
|
||||
using FastTunnel.Core.Listener;
|
||||
using FastTunnel.Core.Dispatchers;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
|
||||
namespace FastTunnel.Core.Client
|
||||
{
|
||||
|
@ -26,9 +28,9 @@ namespace FastTunnel.Core.Client
|
|||
ServerSettings = settings;
|
||||
}
|
||||
|
||||
public void Run()
|
||||
public void Run(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogDebug("FastTunnel Server Start");
|
||||
_logger.LogInformation("===== FastTunnel Server Starting =====");
|
||||
|
||||
CheckSettins();
|
||||
|
||||
|
@ -68,5 +70,12 @@ namespace FastTunnel.Core.Client
|
|||
|
||||
_logger.LogInformation($"监听HTTP请求 -> {ServerSettings.BindAddr}:{ServerSettings.WebProxyPort}");
|
||||
}
|
||||
|
||||
public void Stop(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogInformation("===== FastTunnel Server Stoping =====");
|
||||
|
||||
// TODO:释放资源和线程
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,13 +11,20 @@ namespace FastTunnel.Core.Extensions
|
|||
{
|
||||
public static class ServicesExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加服务端后台进程
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
public static void AddFastTunnelServer(this IServiceCollection services)
|
||||
{
|
||||
services.AddTransient<IFastTunnelAuthenticationFilter, DefaultAuthenticationFilter>();
|
||||
|
||||
services.AddHostedService<ServiceFastTunnelServer>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加客户端后台进程
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
public static void AddFastTunnelClient(this IServiceCollection services) {
|
||||
services.AddSingleton<FastTunnelClient>()
|
||||
.AddSingleton<ClientHeartHandler>()
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<ApplicationIcon />
|
||||
<StartupObject />
|
||||
<PackageProjectUrl>https://github.com/SpringHgui/FastTunnel</PackageProjectUrl>
|
||||
|
@ -32,17 +32,17 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="NLog" Version="4.6.8" />
|
||||
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" />
|
||||
<PackageReference Include="System.Private.ServiceModel" Version="4.7.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="NLog" Version="4.7.10" />
|
||||
<PackageReference Include="NLog.Extensions.Logging" Version="1.7.2" />
|
||||
<PackageReference Include="System.Private.ServiceModel" Version="4.8.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -12,10 +12,9 @@ namespace FastTunnel.Core.Services
|
|||
{
|
||||
public class ServiceFastTunnelClient : IHostedService
|
||||
{
|
||||
ILogger<ServiceFastTunnelClient> _logger;
|
||||
IConfiguration _configuration;
|
||||
FastTunnelClient _fastTunnelClient;
|
||||
ClientConfig config;
|
||||
readonly ILogger<ServiceFastTunnelClient> _logger;
|
||||
readonly FastTunnelClient _fastTunnelClient;
|
||||
readonly ClientConfig _config;
|
||||
|
||||
public ServiceFastTunnelClient(
|
||||
ILogger<ServiceFastTunnelClient> logger,
|
||||
|
@ -23,48 +22,47 @@ namespace FastTunnel.Core.Services
|
|||
FastTunnelClient fastTunnelClient)
|
||||
{
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
_fastTunnelClient = fastTunnelClient;
|
||||
_config = configuration.Get<AppSettings>().ClientSettings;
|
||||
}
|
||||
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogInformation("===== FastTunnel Client Start =====");
|
||||
|
||||
config = _configuration.Get<AppSettings>().ClientSettings;
|
||||
|
||||
_fastTunnelClient.Login(() =>
|
||||
return Task.Run(() =>
|
||||
{
|
||||
Connecter _client;
|
||||
_fastTunnelClient.Start(() =>
|
||||
{
|
||||
Connecter _client;
|
||||
|
||||
try
|
||||
{
|
||||
// 连接到的目标IP
|
||||
_client = new Connecter(config.Common.ServerAddr, config.Common.ServerPort);
|
||||
_client.Connect();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Thread.Sleep(5000);
|
||||
throw;
|
||||
}
|
||||
|
||||
// 登录
|
||||
_client.Send(new Message<LogInMassage>
|
||||
{
|
||||
MessageType = MessageType.C_LogIn,
|
||||
Content = new LogInMassage
|
||||
try
|
||||
{
|
||||
Webs = config.Webs,
|
||||
SSH = config.SSH,
|
||||
AuthInfo = "ODadoNDONODHSoDMFMsdpapdoNDSHDoadpwPDNoWAHDoNfa"
|
||||
},
|
||||
});
|
||||
// 连接到的目标IP
|
||||
_client = new Connecter(_config.Common.ServerAddr, _config.Common.ServerPort);
|
||||
_client.Connect();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Thread.Sleep(5000);
|
||||
throw;
|
||||
}
|
||||
|
||||
return _client;
|
||||
}, config.Common);
|
||||
// 登录
|
||||
_client.Send(new Message<LogInMassage>
|
||||
{
|
||||
MessageType = MessageType.C_LogIn,
|
||||
Content = new LogInMassage
|
||||
{
|
||||
Webs = _config.Webs,
|
||||
SSH = _config.SSH,
|
||||
AuthInfo = "ODadoNDONODHSoDMFMsdpapdoNDSHDoadpwPDNoWAHDoNfa"
|
||||
},
|
||||
});
|
||||
|
||||
return Task.CompletedTask;
|
||||
return _client;
|
||||
}, _config.Common);
|
||||
|
||||
|
||||
}, cancellationToken);
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
|
|
|
@ -13,24 +13,26 @@ using System.Linq;
|
|||
using System.Runtime.ExceptionServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using FastTunnel.Core.Models;
|
||||
|
||||
namespace FastTunnel.Core.Services
|
||||
{
|
||||
public class ServiceFastTunnelServer : IHostedService
|
||||
{
|
||||
ILogger<ServiceFastTunnelServer> _logger;
|
||||
readonly ILogger<ServiceFastTunnelServer> _logger;
|
||||
readonly IFastTunnelAuthenticationFilter _authenticationFilter;
|
||||
readonly AppSettings _appSettings;
|
||||
|
||||
FastTunnelServer _fastTunnelServer;
|
||||
IFastTunnelAuthenticationFilter _authenticationFilter;
|
||||
IConfiguration _configuration;
|
||||
|
||||
public ServiceFastTunnelServer(
|
||||
ILogger<ServiceFastTunnelServer> logger,
|
||||
IConfiguration configuration,
|
||||
IFastTunnelAuthenticationFilter authenticationFilter)
|
||||
{
|
||||
_configuration = configuration;
|
||||
_authenticationFilter = authenticationFilter;
|
||||
_logger = logger;
|
||||
_appSettings = configuration.Get<AppSettings>();
|
||||
|
||||
AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
|
@ -67,31 +69,31 @@ namespace FastTunnel.Core.Services
|
|||
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogInformation("===== FastTunnel Server Starting =====");
|
||||
|
||||
_fastTunnelServer = new FastTunnelServer(_logger, _configuration.Get<AppSettings>().ServerSettings);
|
||||
FastTunnelGlobal.AddFilter(_authenticationFilter);
|
||||
|
||||
try
|
||||
return Task.Run(() =>
|
||||
{
|
||||
_fastTunnelServer.Run();
|
||||
_fastTunnelServer = new FastTunnelServer(_logger, _appSettings.ServerSettings);
|
||||
FastTunnelGlobal.AddFilter(_authenticationFilter);
|
||||
|
||||
_logger.LogDebug("Server Run Success");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// NLog: catch any exception and log it.
|
||||
_logger.LogError(ex, "Server Error");
|
||||
Console.WriteLine(ex);
|
||||
}
|
||||
try
|
||||
{
|
||||
_fastTunnelServer.Run(cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// NLog: catch any exception and log it.
|
||||
_logger.LogError(ex, "Server Error");
|
||||
Console.WriteLine(ex);
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}, cancellationToken);
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogInformation("===== FastTunnel Server Stoping =====");
|
||||
return Task.CompletedTask;
|
||||
return Task.Run(() =>
|
||||
{
|
||||
_fastTunnelServer.Stop(cancellationToken);
|
||||
}, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="5.0.0" />
|
||||
<PackageReference Include="NLog" Version="4.7.6" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="6.0.0-preview.4.21253.7" />
|
||||
<PackageReference Include="NLog" Version="4.7.10" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.13.0-readme-preview" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -43,7 +43,6 @@ namespace FastTunnel.Server
|
|||
.AddJsonFile($"config/appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
.ConfigureServices((hostContext, services) =>
|
||||
{
|
||||
|
|
|
@ -9,11 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastTunnel.Core", "FastTunn
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastTunnel.Server", "FastTunnel.Server\FastTunnel.Server.csproj", "{DEF2E322-9075-4C3F-9967-7EAF0EE28CEB}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "杂项", "杂项", "{6B874530-F9F3-4BEE-A018-566458AA2E4F}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Dockerfile = Dockerfile
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{0E2A9DA2-26AE-4657-B4C5-3A913E2F5A3C}"
|
||||
EndProject
|
||||
Global
|
||||
|
|
9
addhost.bat
Normal file
9
addhost.bat
Normal file
|
@ -0,0 +1,9 @@
|
|||
@echo off
|
||||
echo 127.0.0.1 test.cc >>C:\Windows\System32\drivers\etc\hosts
|
||||
echo 127.0.0.1 test.test.cc >>C:\Windows\System32\drivers\etc\hosts
|
||||
echo 127.0.0.1 test1.test.cc >>C:\Windows\System32\drivers\etc\hosts
|
||||
echo 127.0.0.1 test111.test.cc >>C:\Windows\System32\drivers\etc\hosts
|
||||
echo 127.0.0.1 test111.test.cc >>C:\Windows\System32\drivers\etc\hosts
|
||||
echo 127.0.0.1 www.abc.com >>C:\Windows\System32\drivers\etc\hosts
|
||||
|
||||
pause
|
Loading…
Reference in New Issue
Block a user