开源实例之FastTunnel
前言
本篇介绍用 FastTunnel 搭建 ssh、web 内网穿透的方法。了解什么是内网穿透可以参考《开源实例之frp》一文中的介绍。
FastTunnel介绍
FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供自己或任何人访问。与其他穿透工具不同的是,FastTunnel项目致力于打造一个易于扩展、易于维护的内网穿透框架。可以通过引用FastTunnel.Core的nuget包构建出自己的穿透应用,并针自己所需的业务扩展功能。
GitHub:https://github.com/FastTunnel/FastTunnel
Gitee:https://gitee.com/Hgui/FastTunnel
项目官网: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,将 Server
、Webs
、Forwards
设置成对应信息。示例如下:
{
....
"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 端口映射到了公网域名 https://test.dujun.eu.org:1270。