C#利用免費開源FastTunnel庫實現(xiàn)內(nèi)網(wǎng)穿透服務(wù)端和客戶端代碼,需要提供Token連接碼以確保安全
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
Tunnel 是一個開源的內(nèi)網(wǎng)穿透工具,支持通過 TCP 隧道將內(nèi)網(wǎng)服務(wù)暴露到公網(wǎng)。為了確保安全性,F(xiàn)astTunnel 支持使用連接 token 來驗證客戶端和服務(wù)端的連接。以下是使用 FastTunnel 實現(xiàn)內(nèi)網(wǎng)穿透的服務(wù)端和客戶端代碼示例。 ### 1. 服務(wù)端代碼 服務(wù)端代碼負(fù)責(zé)監(jiān)聽客戶端的連接,并將公網(wǎng)請求轉(zhuǎn)發(fā)到內(nèi)網(wǎng)服務(wù)。 ```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. 客戶端代碼 客戶端代碼負(fù)責(zé)連接到服務(wù)端,并將內(nèi)網(wǎng)服務(wù)暴露到公網(wǎng)。 ```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. **服務(wù)端**:將服務(wù)端代碼部署到公網(wǎng)服務(wù)器,并確保 `appsettings.json` 中的 `Token` 配置正確。 2. **客戶端**:將客戶端代碼部署到內(nèi)網(wǎng)服務(wù)器,并確保 `appsettings.json` 中的 `ServerAddr`、`ServerPort` 和 `Token` 配置正確。 3. **啟動服務(wù)端**:運行服務(wù)端程序,等待客戶端連接。 4. **啟動客戶端**:運行客戶端程序,客戶端會連接到服務(wù)端,并將內(nèi)網(wǎng)服務(wù)暴露到公網(wǎng)。 ### 4. 安全性 - **Token**:確保服務(wù)端和客戶端的 `Token` 配置一致,并且使用強密碼來保證安全性。 - **防火墻**:確保服務(wù)端的端口(如 `12701`)對外開放,并且客戶端的防火墻允許連接到服務(wù)端。 ### 5. 其他配置 FastTunnel 還支持更多的配置選項,如多域名、多端口映射等。你可以根據(jù)實際需求修改 `appsettings.json` 文件中的配置。 ### 6. 參考文檔 - [FastTunnel GitHub 倉庫](https://github.com/FastTunnel/FastTunnel) - [FastTunnel 文檔](https://github.com/FastTunnel/FastTunnel/wiki) 通過以上步驟,你可以使用 FastTunnel 實現(xiàn)內(nèi)網(wǎng)穿透,并通過 Token 確保連接的安全性。 該文章在 2025/2/26 21:29:12 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |