FastTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问。
与其他穿透工具不同的是:FastTunnel项目致力于打造一个易于扩展、易于维护的内网穿透框架,任何人都可以基于该框架二次开发,你可以直接通过nuget安装依赖进行开发,当然它也是开箱即用的工具。

荣获GVP开源项目

FastTunnel荣获开源中国2020最有价值开源项目

开源仓库地址

github: https://github.com/SpringHgui/FastTunnel
gitee: https://gitee.com/Hgui/FastTunnel
官网:https://suidao.io

什么是内网穿透?

一般来说,如果你在内网部署一个网站或应用,也只有处于内网之中的其他网络设备才能访问;但如果你想让公网上任何人都可以访问你内网的应用,则必须要采取一些手段,内网穿透在这种背景下应用而生。

FastTunnel能够做什么?

  • 家中建站

  • 微信开发

  • 远程桌面

  • erp互通

  • svn代码仓库

  • 端口转发

  • iot物联网

  • 联机游戏
    等等场景,不局限以上

搭建属于自己的内网穿透平台

1.在仓库的 releases 页面下载对应的程序
2.根据自己的需求修改客户端以及服务端配置文件appsettings.json
3.服务端运行FastTunnel.Server
4.客户端运行FastTunnel.Cient (客户端可运行在内网任何一台设备上)

配置示例

用自定义域名访问内网web服务

例如你拥有一台云服务器,公网ip地址为 110.110.110.110 ,同时你有一个域名 suidao.io,你希望访问 test.suidao.io可以访问你自己电脑上部署的一个网站。
你需要新增一个域名地址的DNS解析,类型为A,名称为 * , ipv4地址为 110.110.110.110 ,这样 *.abc.com的域名均会指向110.110.110.110的服务器,由于FastTunnel默认监听的http端口为1270,所以要访问http://test.abc.com:1270。
服务端配置文件:config/appsettings.json

"ServerSettings": {// 必选 默认值"BindAddr": "0.0.0.0",// 必选 默认值"BindPort": 1271,// 自定义域名web穿透必须"WebDomain": "suidao.io",// 服务监听的端口号, 访问自定义域名站点时url为 http://{SubDomain}.{Domain}:{ProxyPort_HTTP}/// web穿透必须"WebProxyPort": 1270,// 可选,ngixn反向代理后可省略域名后的端口号进行访问"WebHasNginxProxy": false,// 可选,访问白名单,不在白名单的ip拒绝"WebAllowAccessIps": [],// 可选,是否开启SSH,禁用后不处理SSH类型端口转发.默认false。"SSHEnabled": true}

客户端配置文件:


"ClientSettings": {"Common": {// 服务端公网ip, 对应服务端配置文件的 BindAddr,支持域名"ServerAddr": "test.cc",// 服务端通信端口,对应服务端配置文件的 BindPort"ServerPort": 1271},"Webs": [{// 本地站点所在内网的ip"LocalIp": "127.0.0.1",// 站点监听的端口号"LocalPort": 8080,// 子域名, 访问本站点时的url为 http://{SubDomain}.{Domain}:{ProxyPort_HTTP}/"SubDomain": "test", // test.test.cc}]}

如何去掉域名后的端口号

在服务器端部署nginx,通过nginx反向代理将80端口流量转发至1270端口,nginx的配置示例如下:


http {# 添加resolver resolver 8.8.8.8;# 设置 *.abc.com 转发至1270端口server {server_name  *.abc.com;location / {proxy_pass http://$host:1270;proxy_set_header   Host             $host;proxy_set_header   X-Real-IP        $remote_addr;proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;}# 可选error_log /var/log/nginx/error_ft.log error;}
}

配置端口转发

假设内网有一个mysql服务端口为3306,在内网的ip地址为192.168.1.100,你希望访问suidao.io:33306端口的请求转发至内网的mysql上,则需要如下配置:
1.服务端配置文件不变
2.客户端配置如下

"ClientSettings": {"Common": {// 服务端公网ip, 对应服务端配置文件的 BindAddr,支持域名"ServerAddr": "test.cc",// 服务端通信端口,对应服务端配置文件的 BindPort"ServerPort": 1271},"Webs": [],/*** ssh穿透,ssh访问内网主机* 访问方式 #ssh -oPort=12701 {root}@{ServerAddr}* ServerAddr 填入服务端ip,root对应内网用户名*/"SSH": [{"LocalIp": "192.168.1.100","LocalPort": 3306,"RemotePort": 33306}]}

远程内网电脑

windows:只需要将上一步中的3306端口换成3389,
linux:只需要将上一步中的3306端口换成22

结语

相信聪明的你已经看懂了如何配置,以及每个参数代表的意义,如果还有不懂的地方,可以提issue给作者。有兴趣的朋友可以去clone下来耍耍,给作者提提需求、bug,如果能提交代码一起参与开发改进就更完美了。

有兴趣的可加qq群

FastTunnel - 打造人人都能搭建的内网穿透工具相关推荐

  1. 内网穿透工具_utools让你3步搭建一个内网穿透工具

    文章简介 在日常生活中,我们经常会因为各种需要下载各种APP.例如,备忘录需要下载备忘录软件,时间管理需要番茄时间法类的软件,内网穿透需要自行配置.这些软件可能我们只是为了一时的使用,用完就不会再用了 ...

  2. FastTunnel - 免费好用的内网穿透工具搭建教程

    FastTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问. 与其他穿透工具不同的是:FastTunnel项目致力于打造一个易于扩展.易于 ...

  3. 钉钉开放平台:内网穿透工具 - 服务器免费打造教程

    钉钉开放平台:内网穿透工具 - 服务器免费打造教程 让全世界的人都可以访问到你本地电脑上的网站,老程序员亲自演示

  4. 一分钟用HCaas搭建Frp内网穿透

    前言 对于内网穿透大家并不陌生,不管你是小白还是开发者都需要一些内网穿透服务,如果自己购买服务器苦恼于带宽小(国内主机商普遍都是1M~10M),从而导致穿透效果并不是很理想,最近博主一直在关注网银互联 ...

  5. 采用.NET CORE的全异步模式打造一款免费的内网穿透工具--NSmartProxy

    什么是NSmartProxy? NSmartProxy是一款免费的内网穿透工具. 特点 跨平台,客户端和服务端均可运行在MacOS,Linux,Windows系统上: 使用方便,配置简单: 多端映射, ...

  6. ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】

    前言:微信公众号,小程序.钉钉等开发需要内网穿透工具. 1.经过不断的摸索和调试,完成ngrok内网穿透的工具的搭建,对于微信公众号,小程序.钉钉等开发提供便利性. 2.搭建环境Linux cento ...

  7. cpolar:一款好用的内网穿透工具 - 无需公网IP

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  8. 推荐 4 款超好用的内网穿透工具,总有一款适合你

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps- ...

  9. 好用免费的内网穿透工具

    为什么要用内网穿透工具 当我们在做开发时,没有购买服务器时,一般搭建的都是我们本地的服务器,但是只能供我们自己电脑的浏览器访问,或者处于同一个局域网下的用户访问. 平常我们访问的网站都是由具有公网ip ...

最新文章

  1. 这款AI语音模型让派大星承认自己是钢铁侠,造假小扎对口型,火到挤爆服务器|在线可玩...
  2. 皮一皮:傻傻分不清,这究竟是教室还是...
  3. 示例在同一台机器上使用RMAN克隆数据库
  4. Ansj中文分词Java开发小记
  5. Arcgis API for JavaScript在地图上实现手机定位信息的追踪显示
  6. Github系列之二:开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)
  7. ostu进行遥感图像的分割
  8. Spring源码:BeanDefinition
  9. 【渝粤题库】陕西师范大学210015幼儿园社会教育作业(高起专)
  10. Android官方开发文档Training系列课程中文版:创建自定义View之View的交互
  11. SQL SERVER中的纵横查询
  12. C++ vector 容器
  13. 传统音乐制作与计算机音乐制作,论电脑音乐制作与传统音乐制作的方式对比
  14. k8s和mysql怎么通信_k8s中的网络通信总结
  15. AE Pixel Sorter 2 for Mac破解教程
  16. LM算法——列文伯格-马夸尔特算法(最速下降法,牛顿法,高斯牛顿法)(完美解释负梯度方向)
  17. WPS简历模板的图标怎么修改_最新8000套设计师面试作品集:模板+插画+海报+图标+简历...
  18. Windows NT 架构
  19. python实现pdf转ppt_wps中pdf转成word文档 Python转换PPT为PDF
  20. WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换案例教程(附转换工具下载)

热门文章

  1. JavaScript之闭包
  2. socket编程学习笔记
  3. 解决Maven管理项目update Maven时,jre自动变为1.5
  4. eclipse在server中tomcat server找不到的问题
  5. Java设计模式之(工厂模式)--简单工厂模式--工厂方法模式--抽象工厂模式
  6. MYSQL - php 使用 localhost 无法连接数据库
  7. 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
  8. 基于SQL的日志分析工具myselect
  9. Mac OSX使用VMware Fusion安装windows虚拟机教程
  10. 使用AzureFunction开发最简单的Teams Outgoing Webhook