LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#利用免费开源FastTunnel库实现内网穿透服务端和客户端代码,需要提供Token连接码以确保安全

admin
2025年2月26日 21:27 本文热度 87

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 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved