八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网络地址转为内部网络地址,从而实现通过英特网可以访问局域网资源的目的。

内网穿透有许多应用场景,例如:
- 远程办公:有时候需要在家里远程办公,需要访问公司内部的服务器或者局域网中的资源。利用内网穿透技术可轻松实现远程办公。
- 远程开发调试:开发Web应用时常常需要在移动设备中测试。通过内网穿透技术,可以将服务端开发环境暴露到公网上,方便在移动设备上进行调试,提高开发效率。
- 家庭服务器管理:在家中搭建了NAS存储、智能家居控制系统等设备。当我们离开家时,可以通过内网穿透,在互联网中安全访问家庭服务器,远程管理数据和设备。
- 云服务器访问:对于云服务器,有时候我们需要访问其中的数据库、文件或者其他服务。通过内网穿透,我们可以直接访问云服务器内部的资源,节省时间和成本。
- 局域网游戏联机:内网穿透可以让多台设备在同一个局域网中进行联机游戏。这样,即使设备之间不在同一个网络中,也可以通过内网穿透建立虚拟的局域网,实现联机游戏的功能。
虽然内网穿透给通过互联网访问局域网带来了许多方便。但内网穿透技术打破内网的边界,很容易给内网带来各种风险;另外,内网穿透依赖于互联网上的服务器,对网络稳定性也是一种考验。因此,使用时需要综合考虑应用场景和安全需求。
内网穿透工具有很多,比较知名的如:花生壳、Ngrok等。 但是,本文主要推荐一些开源的内外穿透工具,便于自己搭建私有的网络通道。
1.Fast Reverse Proxy (FRP)
GitHub:https://github.com/fatedier/frp
文档:https://gofrp.org/zh-cn/docs/

frp是一个快速反向代理,允许将位于局域网或防火墙后面的本地服务器暴露给因特网。它目前支持TCP和UDP,以及HTTP和HTTPS协议,这个工具可以使网络请求能够通过域名转发到内部服务。另外,FRP还提供P2P连接模式、流加密、负载平衡、自定义域名等功能。
FRP是用Golang编写的,因此它支持Linux、windows、Mac等操作系统。
2.Localtunnel
GitHub:https://github.com/localtunnel/localtunnel

localtunnel是一个可以将本地服务暴露给英特网的工具,非常适合用于浏览器测试、外部API回调服务等。
Localtunnel-server提供了一个简单的命令行界面,对于初学者来说非常容易使用。要使用Localtunnel-server,必须先在系统上安装Node.js和npm。启动后,Localtunnel客户端将创建一个指向本地Web服务器的公共URL。
3.Chisel
GitHub:https://github.com/jpillora/chisel

Chisel是一个用Golang开发的开源网络隧道解决方案。它支持TCP、HTTP和WebSockets等多种协议。Chisel提供了一个简单的命令行界面,开发人员很容易入手。它还支持与客户端自动重新连接,确保稳定运行。
Chisel的主要优势是快速,因此它支持安全快速地发送大量数据。
4.Rathole
GitHub:https://github.com/rapiz1/rathole

Rathole是一个用Rust语言编写开源隧道解决方案,也具备反向代理功能。可以通过Internet与NAT防火墙后面的应用程序和设备建立连接。
Rathole独有的突出特点是低资源消耗。
5.FastTunnel
GitHub:https://github.com/FastTunnel/FastTunnel

FastTunnel是一款高性能的跨平台内网穿透工具,它的主要功能是将内网服务安全地暴露到公网,允许用户或其他人可以从任何地方访问这些服务。不同于其他穿透工具,FastTunnel致力于提供一个易于扩展和维护的内网穿透框架,使用户能够根据自己的需求构建自定义的穿透应用,并添加业务扩展功能。该工具采用了.Net Core开发,因此可以在不同操作系统上部署,包括Windows、Linux和macOS等。这使得FastTunnel成为一种强大的解决方案,适用于各种应用场景,无论是开发者需要将本地服务远程暴露,还是需要创建自定义内网穿透解决方案的高级用户,FastTunnel都提供了便捷且高性能的选择。
6.sshuttle
GitHub:https://github.com/sshuttle/sshuttle

透明的代理服务器,可作为低成本的VPN实现方式。支持ssh转发;支持DNS隧道;支持Linux和MacOS等系统。
7.Bore
GitHub:https://github.com/ekzhang/bore

Bore是一个用Rust开发的简单的TCP隧道工具,可以将本地端口绕过标准的NAT连接防火墙,暴露给远程服务器。
8.Zrok
GitHub:https://github.com/openziti/zrok



Zrok是一个基于OpenZiti构建的下一代点对点共享平台。OpenZiti是一个可编程的零信任网络,Zrok是一个Ziti下的原生应用程序。zrok允许用户共享HTTP、TCP和UDP等网络协议下的资源。zrok还允许用户以点对点方式共享文件、Web内容以及其他资源。
相关文章:
八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网络地址转为内部网络地址,从而实现通过英特网可以访问局…...
C语言贪吃蛇(有详细注释)
这个贪吃蛇是在比特特训营里学到的,同时我还写了用EasyX图形库实现的图形化贪吃蛇,含有每个函数的实现以及游戏中各种细节的讲解,感兴趣的可以去看一看。 贪吃蛇小游戏 实现效果 以下就是源码,感兴趣的小伙伴可以cv自己玩一玩改…...
MUI框架从新手入门【webapp开发教程】
文章目录 MUI -最接近原生APP体验的高性能前端框架APP开发3.25 开发记录miu框架介绍头部/搜索框:身体>轮播图轮播图设置数据自动跳转:九宫格图片九宫格图文列表底部选项卡按钮选择器手机模拟器 心得与总结:MUI框架在移动应用开发中的应用M…...
HNU-计算机网络-讨论课2
第二次 有关网络智能、安全以及未来网络的讨论 一、必选问题(每组自由选择N个,保证组内每人负责1个) 网络的发展促进信息的传播,极大提高了人类的感知能力,整个世界都被纳入人类的感知范围。但人们对信息系统以及数据…...
西南科技大学信号与系统A实验一(信号的产生与时域运算)
目录 一、实验目的 二、实验原理 三、实验内容 四、思考题 一、实验目的 1、 掌握用matlab软件产生基本信号的方法。 2、 应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算 二、实验原理 (一) 产生信号波形的方法 利用Matlab软件的信号处…...
代码随想录二刷 |字符串 |翻转字符串里的单词
代码随想录二刷 |字符串 |翻转字符串里的单词 题目描述解题思路 & 代码实现移除多个空格将整个字符串翻转将每个单词翻转 题目描述 151.翻转字符串里的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成…...
低调使用。推荐一个 GPT4 Turbo、Vision、GPTs、DELL·E3 等所有最新功能同步可用国内网站
在 11 月 6 日,万众期待的 OpenAI DevDay,ChatGPT 发布了一系列新的产品,其中推出了 GPT4 Turbo,并且将GPT4 Vision,DELLE3 等等能力全部集合到一起,不需要再分开使用,原来的局限的文本聊天也进…...
基于视觉传感器的自主扫雷机器人设计与实现
摘要: 在当今的世界安全形势下,扫雷小车的出现可以减少各国人员在扫雷过程中的人员伤亡,扫雷小车实用性能强更适合在军事化领域或者是民用领域上应用。让它具有光明的发展前景。针对这一情况,本毕业设计就对自主扫雷小车进行研究…...
计算机新建盘符和重新分配盘符的大小
一、新建盘符 有些电脑刚买来时候,只有一个C盘分区,此时最好增加几个分区方便使用。 注意:分区操作要慎重,不要轻易去试。这里只针对购买的电脑厂家未做分区,只有一个C盘的情况。 如果自己电脑的分区本身已经满足你…...
windows 查看mysql的错误日志
查找错误日志文件存储路径 用到的软件:everything 官网 voidtools 下载路径 https://www.voidtools.com/Everything-1.4.1.1024.x64-Setup.exe 直接点击下载即可 运行效果如下 我们知道mysql有个配置文件是my.ini,里面配置了相关信息 我们需要先…...
java多线程CountDownLatch简单测试
学习java多线程,请同时参阅 Java多线程 信号量和屏障实现控制并发线程数量,主线程等待所有线程执行完毕1 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后再继续执行。当所有的线程都已经完成任务,然后在CountDownLatch上…...
npm,yarn,pnpm 清理缓存
目录 1,为什么要清理缓存1,缓存文件太多,影响系统运行2,不同源会有区别 2,命令2.1,npm2.2,yarn2.3,pnpm 1,为什么要清理缓存 1,缓存文件太多,影响…...
【数据结构】二叉排序树(c风格、结合c++引用)
目录 1 基本概念 结构体定义 各种接口 2 二叉排序树的构建和中序遍历 递归版单次插入 非递归版单次插入 3 二叉排序树的查找 非递归版本 递归版本 4 二叉排序树的删除(难点) 1 基本概念 普通二叉排序树是一种简单的数据结构,节点的值…...
SpringCloudSleuth+Zipkin 整合及关键包汇总
背景 整合了一下 SpringCloudSleuth Zipkin,本来是很简单的东西,但是最终导出依赖包时没注意,导致目标服务始终没有被纳入 Zipkin 的链路追踪中,本文记录这个过程及关键依赖包。 部署zipkin 官网下载最新的 zipkin 可执行包&a…...
腾讯面试笔试题2023.11.30
给定一个由整数组成的非空数组所表示的非负整数如[1,2,3],在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 (要求只能操作数组,不…...
cesium 融合视频
0 如果是文件,那相当的简单 和untiy 一样,可以添加材质后,将image 直接给材质赋值上,其中abcd 是四个点,这四个点要经过计算 <video id"video" style"display:none" controls loop autoplay&…...
微信小程序踩坑记录
一、引言 作者在开发微信小程序《目的地到了》的过程中遇到过许多问题,这里讲讲一些技术和经验问题。 基本目录机构: 二、问题 1、定位使用 获取定位一定要在app.json里面申明,不然是没办法获取定位信息的 "requiredPrivateInfos"…...
H5 uniapp 接入wx sdk
uniapp因为要兼容小程序等,会重写wx对象,导致引入的jweixin-1.6.0.js中对象不生效。 综合网络资料,有两种解决方案: 一,通过npm工具引入 npm install jweixin-module --save 实际上是借用了wx的另一个对象jWeixin …...
ubuntu离线安装包
方便快捷方式 查看依赖 apt-cache depends 包名(gcc或language-pack-zh-hans)下载deb及其依赖包 # 下载.deb包到指定目录 cd /var/cache/apt/archives apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-repl…...
电脑如何录音?适合初学者的详细教程
“电脑怎么录音呀?参加了一个学校举办的短视频大赛,视频拍摄都很顺利,音乐却出了问题,朋友说可以用电脑录制一段音乐应付一下,可是我不会操作,有哪位大佬教教我!” 声音是一种强大的媒介&#…...
ZGC在超大堆(>16TB)下的隐性崩溃风险:JDK17~21版本兼容性断层分析(仅限内测团队知晓)
第一章:ZGC在超大堆(>16TB)下的隐性崩溃风险:JDK17~21版本兼容性断层分析(仅限内测团队知晓)当堆内存突破16TB阈值后,ZGC在JDK17至JDK21的多个GA版本中暴露出未公开的元数据结构越界行为——…...
QueryExcel:解放双手的Excel批量查询神器,告别Ctrl+F的繁琐时代
QueryExcel:解放双手的Excel批量查询神器,告别CtrlF的繁琐时代 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 在日常工作中,你是否也曾被海量Excel文件中的数据查找…...
3个步骤,让猫抓帮你轻松捕获网页视频资源
3个步骤,让猫抓帮你轻松捕获网页视频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的情况?在网…...
如何彻底解决ComfyUI-Manager安装难题:终极完整指南
如何彻底解决ComfyUI-Manager安装难题:终极完整指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom …...
别只盯着时钟了!用Vivado的Set_Data_Check搞定FPGA里两个数据信号的时序检查(附工程源码)
FPGA时序约束进阶:用Set_Data_Check精准控制数据信号时序关系 在FPGA设计中,时序约束是确保电路功能正确性的关键环节。大多数工程师对时钟与数据信号之间的setup/hold约束已经驾轻就熟,但当面对两个数据信号之间的时序关系时,却常…...
SpringBoot+Redis实现高并发短信登录:双拦截器设计背后的架构思考
SpringBootRedis高并发短信登录架构深度解析:双拦截器设计与性能优化实战 1. 高并发场景下的登录架构挑战 在当今互联网应用中,短信验证码登录已成为主流的身份验证方式之一。但当系统面临高并发请求时,传统的Session-based方案会暴露出诸多瓶…...
Windows 10终极指南:免费开启HEIC缩略图预览功能
Windows 10终极指南:免费开启HEIC缩略图预览功能 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPhone拍摄的照片在…...
基于博途1200PLC+HMI的六层三部电梯控制系统仿真程序
基于博途1200PLCHMI六层三部电梯控制系统仿真 程序: 1、任务:PLC.人机界面控制三部电梯集群运行 2、系统说明: 系统设有上呼、下呼、内呼、手动开关门、光幕、检修、故障、满载、等模拟模式控制, 系统共享厅外召唤信号,…...
【数据结构】树的定义、核心术语与关键性质全解析
在数据结构的世界里,树(Tree) 是一种极其重要的非线性结构,它完美模拟了自然界中树的层次关系,从文件系统、组织结构,到算法中的二叉搜索树、堆,再到 AI 中的决策树,树的身影无处不在…...
四管升降压电路实战解析:从拓扑原理到模式切换(附波形对比)
1. 四管升降压电路为何成为工程师的"瑞士军刀" 第一次接触四管升降压电路时,我正被一个光伏储能项目折磨得焦头烂额。太阳能板的输出电压在8V-18V剧烈波动,而系统需要稳定的12V供电。传统方案要用两个独立电路串联,直到老工程师扔给…...
