杜郎俊赏 - dujun.io

开源实例之FastTunnel

前言

本篇介绍用 FastTunnel 搭建 ssh、web 内网穿透的方法。了解什么是内网穿透可以参考《开源实例之frp》一文中的介绍。

FastTunnel介绍

FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供自己或任何人访问。与其他穿透工具不同的是,FastTunnel项目致力于打造一个易于扩展、易于维护的内网穿透框架。可以通过引用FastTunnel.Core的nuget包构建出自己的穿透应用,并针自己所需的业务扩展功能。

GitHub:https://github.com/FastTunnel/FastTunnel

Gitee:https://gitee.com/Hgui/FastTunnel

文档地址:https://docs.suidao.io

项目官网:https://suidao.io(提供测试体验)

值得一提的是,FastTunnel 是 Gitee GVP 项目。

FastTunnel部署

FastTunnel基于 .Net Core开发,服务端(公网服务器)需要安装 ASP.NET Core 及 .NET 运行时,客户端(内网服务器)需要安装 .NET 运行时。

以下例子中,192.168.56.10 扮演公网 ip,192.168.56.11 扮演内网 ip,dujun.eu.org 作为示例域名。

软件下载

下载 release 包,以 2.1.1 版为例:

服务端下载地址:
https://gitee.com/Hgui/FastTunnel/releases/download/v2.1.1/FastTunnel.Server.linux-x64.tar.gz

客户端下载地址:
https://gitee.com/Hgui/FastTunnel/releases/download/v2.1.1/FastTunnel.Client.linux-x64.tar.gz

服务端部署

在公网服务器解压 FastTunnel.Server.linux-x64.tar.gz,进入目录。

修改配置文件 config/appsettings.json,将 urls 字段和 WebDomain 字段设置成自己的公网 IP 和域名。示例如下:

{
  ...
  "urls": "http://192.168.56.10:1270",
  "FastTunnel": {
    "WebDomain": "dujun.eu.org",
  }
  ...
}

启动程序:

chmod +x FastTunnel.Server
./FastTunnel.Server

客户端部署

在内网服务器解压 FastTunnel.Client.linux-x64.tar.gz,进入目录。

修改配置文件 appsettings.json,将 ServerWebsForwards 设置成对应信息。示例如下:

{
  ....
  "ClientSettings": {
    "Server": {
      "ServerAddr": "192.168.56.10",
      "ServerPort": 1270
    },
    "Webs": [
      {
        "LocalIp": "192.168.56.11",
        "LocalPort": 8081,
        "SubDomain": "test"
      }
    ],
    "Forwards": [
      {
        "LocalIp": "192.168.56.11", 
        "LocalPort": 22,  
        "RemotePort": 12701
      }
    ]
  }
  ...
}

启动程序

chmod +x FastTunnel.Client
./FastTunnel.Client

此时就可以通过公网(192.168.56.10)端口 SSH 到内网(192.168.56.11):

ssh -p 12701 test@192.168.56.10

同时,内网 8081 端口映射到了公网域名 http://test.dujun.eu.org:1270。

后记

体验更多开源实例

标签: 开源实例
日期:2023-02-22