一、FastTunnel 简介
FastTunnel 是一款高性能、跨平台的内网穿透工具,支持 TCP、UDP 协议转发,可轻松实现内网服务对外暴露,适用于远程办公、内网服务测试、物联网设备远程管理等场景。其核心优势包括:轻量级部署、高并发处理能力、支持自定义域名访问、完善的权限控制机制,以及跨平台兼容(Linux、Windows、MacOS)。
本文将重点讲解在 Linux CentOS 7/8 系统中,FastTunnel 服务端与客户端的完整部署流程,帮助用户快速搭建稳定的内网穿透环境。
gitee:
https://gitee.com/Hgui/FastTunnel
二、部署准备
(一)当前环境
系统版本:CentOS Linux release 7.9.2009域名: test.bugcome.com公网ip: 10.1.1.1网络要求:
服务端:需具备公网 IP(云服务器最佳,如阿里云、腾讯云),开放指定端口(默认 8090、80、443,可自定义)客户端:位于内网环境,能访问互联网,且需穿透的内网服务已正常运行(如 Web 服务、SSH 服务等)
依赖组件:
安装 Docker(推荐方式,简化部署)防火墙开放对应端口
(二)工具准备
远程连接工具 FinalShell文本编辑器 vim云服务器(服务端):确保已开放安全组端口
三、服务端部署(CentOS 7)注意:我是centos菜鸟,有些不规范
(一)方式一:Docker 部署(推荐)
第一步:
拥有一台云服务器,公网ip地址为 10.1.1.1 ,同时你有一个域名bugcome.com,你希望访问 test.bugcome.com可以访问你自己电脑上部署的一个网站。
新增一个域名地址的DNS解析,类型为A,主机记录为 test , ipv4地址为10.1.1.1,这样 test.bugcome.com的域名均会指向10.1.1.1的服务器

第二步:
自行安装 nginx 下载的地址(https://nginx.org/en/download.html)
参考1(可能有问题。可用ai进行提示安装。):
在CentOS Linux release 命令下输入:
默认仓库中没有 nginx 包 对于 CentOS 7 如果是 8 或者其他自行搜索
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装
sudo yum install nginx
然后通过命令进入到nginx里面

看到conf.d文件(如果没有ai询问),进入后,建立一个test.bugcome.com.conf 配置文件。
# 进入文件 C#
cd conf.d
# 创建文件
touch test.bugcome.com.conf
# 编辑文件 vim如果没有 可输入: yum install vim
vim test.bugcome.com.conf
#内容

按照esc,输入:
:wq
需要配置ssl
我们需要下载FastTunnel.Client.tar.gz。和FastTunnel.Server.tar.gz
教学说明:
https://github.com/SpringHgui/opentask-doc/blob/master/docs/fasttunel/getting-started.md
下载地址:
https://github.com/FastTunnel/FastTunnel/releases
上面地址:访问很慢,且官方(可能需要合法FQ)。访问不了请按以下红色字体操作
修改客户端appsettings.json配置(这里只需要修改ServerAddr和SubDomain和webs你本地客户端按网站地址):


{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/client-log-.log",
"rollingInterval": "Day", // 按天滚动日志
"retainedFileCountLimit": 15, // 保留15天日志
"fileSizeLimitBytes": 5242880 // 单个日志文件最大5MB
}
}
]
},
"FastTunnel": {
"Server": {
"ServerAddr": "bugcome.com", // 服务端域名(与服务端部署的域名一致)
"ServerPort": 1270 // 服务端监听端口(与服务端"urls"中的1270对应)
},
"Token": "fT8kL$pQ2xR7mZ!sH9dG3bV6nJ1wE4v", // 必须与服务端Tokens中的一个完全一致
"Webs": [
{
"LocalIp": "127.0.0.1", // 客户端本地服务IP(本地应用填127.0.0.1)
"LocalPort": 88, // 客户端本地需要暴露的服务端口(如本地Web服务运行在88端口)
"SubDomain": "test" // 子域名,与服务端WebDomain组合为test.bugcome.com
}
],
//"Forwards": [ // 可选:端口转发配置(不影响test.bugcome.com的Web访问)
// {
// "LocalIp": "127.0.0.1",
// "LocalPort": 3389, // 本地远程桌面端口
// "RemotePort": 1274, // 服务端映射的远程端口
// "Protocol": "TCP"
// },
// {
// "LocalIp": "127.0.0.1",
// "LocalPort": 1434, // 本地MySQL端口
// "RemotePort": 1275, // 服务端映射的MySQL端口
// "Protocol": "TCP"
// }
//]
}
}
修改服务端appsettings.json配置(这里只需要修改bugcome.com改成你的域名):

{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Yarp.ReverseProxy": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/server-log-.log",
"rollingInterval": "Day", // 按天滚动日志,每天一个文件
"retainedFileCountLimit": 30, // 保留30天日志
"fileSizeLimitBytes": 10485760 // 单个日志文件最大10MB
}
}
]
},
"AllowedHosts": "*",
"urls": "http://*:1270", // 服务端监听1270端口(与客户端连接端口对应)
"EnableFileLog": true,
"FastTunnel": {
"WebDomain": "bugcome.com", // 主域名(与客户端子域名组合为test.bugcome.com)
"WebAllowAccessIps": [], // 允许所有IP访问(如需限制可添加IP)
"EnableForward": true,
"Tokens": [ // 客户端连接时需使用其中一个令牌(与客户端Token匹配)
"fT8kL$pQ2xR7mZ!sH9dG3bV6nJ1wE4v", // 客户端将使用此令牌
"bK5jN@rM8cX2tY#qW7eU1iO3pS0dF9g" // 备用令牌
],
"Api": {
"JWT": {
"ClockSkew": 10,
"ValidAudience": "https://test.bugcome.com", // 与访问域名匹配
"ValidIssuer": "FastTunnel_Server",
"IssuerSigningKey": "xY2pQ8sH4kL9dF3gR7mB6vN1wE0tC5jM2zP4qS8nD", // 32位以上强密钥
"Expires": 180
},
"Accounts": [
{
"Name": "admin",
"Password": "FtSrv@2024#K9pL3xQ7!" // 管理员强密码
}
]
}
}
}
我们需要将FastTunnel.Server打包zip。然后上传centos服务(finaalShell可以从windows拖动到centos)。

输入命令:
cd /usr/share/nginx
# 解包 如果没有unzip 命令 需要安装 yum install unzip
unzip FastTunnel.Server.zip
# 安装 .NET 7 所需的系统库
sudo yum install -y libunwind icu openssl-libs
# 安装 .NET 7 运行时
sudo yum install -y aspnetcore-runtime-7.0
# 验证安装(输出 7.0.x 版本即成功)
dotnet --version
# 创建服务文件
sudo vim /etc/systemd/system/fasttunnel.service
写入配置:
[Unit]
# 服务描述
Description=FastTunnel 7.x Server
# 网络启动后再启动此服务
After=network.target
[Service]
# 工作目录(FastTunnel.Server.dll 所在目录,根据你的实际路径修改)
WorkingDirectory=/usr/share/nginx/FastTunnel.Server
# 启动命令(正确拼写 ExecStart,确保 dotnet 路径和 dll 文件名正确)
ExecStart=/usr/bin/dotnet FastTunnel.Server.dll
# 崩溃后自动重启
Restart=always
# 重启间隔(秒)
RestartSec=5
# 运行用户(保持 root 或改为你的实际用户)
User=root
# 环境变量(生产环境)
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
# 多用户模式下自启
WantedBy=multi-user.target
启动并设置自启:
sudo systemctl daemon-reload
sudo systemctl start fasttunnel
sudo systemctl enable fasttunnel
# 查看状态(确保显示 active(running))
sudo systemctl status fasttunnel
开放防火墙端口(CentOS 7)
# 开放端口(永久生效)
sudo firewall-cmd --zone=public --add-port=1270/tcp --permanent
# 重新加载规则
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --list-ports
#删除端口
sudo firewall-cmd --remove-port=1270/tcp
访问网站:
https://test.bugcome.com/ 就ok.
