C#利用免费开源FastTunnel库实现内网穿透服务端和客户端代码,需要提供Token连接码以确保安全
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
Tunnel 是一个开源的内网穿透工具,支持通过 TCP 隧道将内网服务暴露到公网。为了确保安全性,FastTunnel 支持使用连接 token 来验证客户端和服务端的连接。以下是使用 FastTunnel 实现内网穿透的服务端和客户端代码示例。 ### 1. 服务端代码 服务端代码负责监听客户端的连接,并将公网请求转发到内网服务。 ```csharp using FastTunnel.Core; using FastTunnel.Core.Models; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.IO; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { var host = Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((context, config) => { config.SetBasePath(Directory.GetCurrentDirectory()); config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); }) .ConfigureServices((context, services) => { services.AddFastTunnelServer(context.Configuration); }) .Build(); await host.RunAsync(); } } ``` #### 配置文件 `appsettings.json` ```json { "FastTunnel": { "ServerSettings": { "BindAddr": "0.0.0.0", "BindPort": 12701, "WebDomain": "yourdomain.com", "Token": "your-secure-token" } } } ``` ### 2. 客户端代码 客户端代码负责连接到服务端,并将内网服务暴露到公网。 ```csharp using FastTunnel.Core; using FastTunnel.Core.Models; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.IO; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { var host = Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((context, config) => { config.SetBasePath(Directory.GetCurrentDirectory()); config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); }) .ConfigureServices((context, services) => { services.AddFastTunnelClient(context.Configuration); }) .Build(); await host.RunAsync(); } } ``` #### 配置文件 `appsettings.json` ```json { "FastTunnel": { "ClientSettings": { "ServerAddr": "your-server-ip", "ServerPort": 12701, "Token": "your-secure-token", "Webs": [ { "LocalIp": "127.0.0.1", "LocalPort": 80, "SubDomain": "web1" } ] } } } ``` ### 3. 运行步骤 1. **服务端**:将服务端代码部署到公网服务器,并确保 `appsettings.json` 中的 `Token` 配置正确。 2. **客户端**:将客户端代码部署到内网服务器,并确保 `appsettings.json` 中的 `ServerAddr`、`ServerPort` 和 `Token` 配置正确。 3. **启动服务端**:运行服务端程序,等待客户端连接。 4. **启动客户端**:运行客户端程序,客户端会连接到服务端,并将内网服务暴露到公网。 ### 4. 安全性 - **Token**:确保服务端和客户端的 `Token` 配置一致,并且使用强密码来保证安全性。 - **防火墙**:确保服务端的端口(如 `12701`)对外开放,并且客户端的防火墙允许连接到服务端。 ### 5. 其他配置 FastTunnel 还支持更多的配置选项,如多域名、多端口映射等。你可以根据实际需求修改 `appsettings.json` 文件中的配置。 ### 6. 参考文档 - [FastTunnel GitHub 仓库](https://github.com/FastTunnel/FastTunnel) - [FastTunnel 文档](https://github.com/FastTunnel/FastTunnel/wiki) 通过以上步骤,你可以使用 FastTunnel 实现内网穿透,并通过 Token 确保连接的安全性。 该文章在 2025/2/26 21:29:12 编辑过 |
关键字查询
相关文章
正在查询... |