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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |