当前位置: 首页 > news >正文

八个优秀开源内网穿透工具

内网穿透(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 如果是文件&#xff0c;那相当的简单 和untiy 一样&#xff0c;可以添加材质后&#xff0c;将image 直接给材质赋值上&#xff0c;其中abcd 是四个点&#xff0c;这四个点要经过计算 <video id"video" style"display:none" controls loop autoplay&…...

微信小程序踩坑记录

一、引言 作者在开发微信小程序《目的地到了》的过程中遇到过许多问题&#xff0c;这里讲讲一些技术和经验问题。 基本目录机构&#xff1a; 二、问题 1、定位使用 获取定位一定要在app.json里面申明&#xff0c;不然是没办法获取定位信息的 "requiredPrivateInfos"…...

H5 uniapp 接入wx sdk

uniapp因为要兼容小程序等&#xff0c;会重写wx对象&#xff0c;导致引入的jweixin-1.6.0.js中对象不生效。 综合网络资料&#xff0c;有两种解决方案&#xff1a; 一&#xff0c;通过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…...

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀&#xff1f;参加了一个学校举办的短视频大赛&#xff0c;视频拍摄都很顺利&#xff0c;音乐却出了问题&#xff0c;朋友说可以用电脑录制一段音乐应付一下&#xff0c;可是我不会操作&#xff0c;有哪位大佬教教我&#xff01;” 声音是一种强大的媒介&#…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

手动给中文分词和 直接用神经网络RNN做有什么区别

手动分词和基于神经网络&#xff08;如 RNN&#xff09;的自动分词在原理、实现方式和效果上有显著差异&#xff0c;以下是核心对比&#xff1a; 1. 实现原理对比 对比维度手动分词&#xff08;规则 / 词典驱动&#xff09;神经网络 RNN 分词&#xff08;数据驱动&#xff09…...