FastTunnel-开源内网穿透框架
FastTunnel
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 (客户端可运行在内网任何一台设备上)
配置示例
1.用自定义域名访问内网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}]}
2.如何去掉域名后的端口号
在服务器端部署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;}
}
3.配置端口转发
假设内网有一个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}]}
3.远程内网电脑
windows:只需要将上一步中的3306端口换成3389,
linux:只需要将上一步中的3306端口换成21
结语
相信聪明的你已经看懂了如何配置,以及每个参数代表的意义,如果还有不懂的地方,可以提issue给作者。有兴趣的朋友可以去clone下来耍耍,给作者提提需求、bug,如果能提交代码一起参与开发改进就更完美了。
作者建了qq群,有兴趣的可以加下:
FastTunnel-开源内网穿透框架相关推荐
- FastTunnel Win10内网穿透实现远程桌面
目录 一.需求 二.购买公网服务器 三.远程公网服务器 四.FastTunnel 的使用 1.下载 FastTunnel 2.启动服务器端 3.启动客户端 五.测试 六.安装服务 结束 一.需求 Fa ...
- 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
龙芯3A5000 已经上市,从老伙计哪里搞来一台3A5000 机器,安装统信UOS.使用体验上看还可以,就是软件生态急需建设,软件生态的建设上自然有我dotnet 的一份力量.龙芯团队已经完成了Loo ...
- frp:开源内网穿透工具
前言 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 官网Git ...
- FastTunnel - 打造人人都能搭建的内网穿透工具
FastTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问. 与其他穿透工具不同的是:FastTunnel项目致力于打造一个易于扩展.易于 ...
- FastTunnel - 免费好用的内网穿透工具搭建教程
FastTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问. 与其他穿透工具不同的是:FastTunnel项目致力于打造一个易于扩展.易于 ...
- 一个基于.Net高性能跨平台内网穿透工具
作为一名程序员,我们平常需要调试远程API(如公众号回调).远程操作公司内部.家里的电脑,我们都会用到内网穿透的工具. 今天给大家推荐一个高性能跨平台内网穿透工具的开源项目. 项目简介 一个基于.Ne ...
- 推荐 4 款超好用的内网穿透工具,总有一款适合你
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps- ...
- 推荐几款超好用的内网穿透神器,总有一款适合你!
前言 本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法. 0x01 nps-npc 1.1 简介 nps是一款轻量级.高性能.功能强大的内网穿透代理服务器.目前支持 ...
- 推荐几款实用的内网穿透工具
点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者:V0W' 来源:v0w.top/2020/08/11/IntranetProxy ...
最新文章
- 约瑟夫环 猴子选大王
- python 气泡图 聚类_2015年度10大Plotly数据可视化美图及工具介绍
- Android在Java获取组件,在Java中解析HTML以获取Android应用
- Java 三大特性 —— 多态
- [缓存]关于memcached的详细介绍以及用法
- 创业,白手起家需要些什么?
- macbook配置java环境变量_配置java环境变量
- input换行输入_小白也能学的Python基础语法-变量与输入和输出
- summernote 字体名字不显示_觉得 Windows 10 显示字体不好看吗? 教你轻松更换成 Mac 字体版本。...
- 【Java面试系列】Java微服务面试题
- Houdini学习笔记003
- 大数据可视化学期总结
- 表达式类型错误oracle,这个语句报pls_00382 表达式类型错误 求问为什么。
- Pycharm中如何将界面上的英文换为中文与Pycharm的背景设置与更换
- 白话 P-value 这个再通俗不过了~
- docker部署springboot工程
- MySql基础语法-java学习
- Gromacs(三) NPT平衡
- 2019总结 2020
- 使用paypal的手续费
热门文章
- 奥巴马访华:不建议过度审查 提倡加强互联网开放
- C# Global.asax.cs 定时任务
- 201671030107胡文艳实验三作业互评与改进报告
- char data[0]在struct末尾的用法
- LuckyDraw app使用CosmosDB的成本分析
- 什么是Microsoft Teams的App Studio
- 如何在Photoshop中制作双曝光图像
- chrome 固定缩放比例_您如何调整Google Chrome浏览器的用户界面缩放比例?
- CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
- Android SQLite (一) 数据库简介