ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考博客:10分钟教你搭建自己的ngrok服务器
2、Natapp
natapp是 基于ngrok的国内收费内网穿透工具,类似花生壳,有免费版本,比花生壳好。免费版本:提供>NAPT原理:
在NAT网关上会有一张映射表,表上记录了内网向公网哪个IP和端口发起了请求,然后如果内网有主机向公网设备发起了请求,内网主机的请求数据包传输到了NAT网关上,那么NAT网关会修改该数据包的源IP地址和源端口为NAT网关自身的IP地址和任意一个不冲突的自身未使用的端口,并且把这个修改记录到那张映射表上。最后把修改之后的数据包发送到请求的目标主机,等目标主机发回了响应包之后,再根据响应包里面的目的IP地址和目的端口去映射表里面找到该转发给哪个内网主机。这样就实现了内网主机在没有公网IP的情况下,通过NAPT技术借助路由器唯一的一个公网IP来访问公网设备。 具体原理参照上图。
10款内网穿透工具:
1、Ngrok
ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考博客:10分钟教你搭建自己的ngrok服务器
>
花生壳内网穿透接下来主要通过:注册域名、搭建内网网站服务、发布外网这3步来介绍搭建独立网站。
内网穿透原理:
当信息由局域网向因特网传递时,源地址从专有地址转换为公用地址。由路由器跟踪每个连接上的目的地址和端口。
当数据返回路由器时,通过记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果此时如果有多个公用地址可用,当数据包返回时,则会客户机的端口号可以用来分解数据包。
内网穿透,即NAT(Network Address Translator)穿透,是指计算机在内网(局域网)内使用私有IP地址,在连接外网(互联网)时使用全局IP地址的技术。该技术被普遍使用在有多台主机但只通过一个公有IP地址访问的私有网络中。
举个例子:比如我在实验室配置了一个服务器 Server A,当我在实验室的时候,就可以通过自己的笔记本使用SSH连接因为我和服务器处于一个局域网。
当我回宿舍以后,就没有办法直接使用SSH连接了因为我和服务器不在一个局域网,这个时候就需要进行NAT穿透,让我在宿舍也可以使用SSH连接Server A。
内网穿透工具推荐
目前市面上有很多传统工具,较为知名的开源工具有Ngrok、FRP、 fcn、goProxy,其他还有一些商用的工具比如花生壳和基于等Ngrok和FRP二次开发的商用软件,接下来进行分类归类和整理。
ngrok系列:
Ngrokngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
NatappNATAPP是基于ngrok的国内高速内网穿透服务,其中免费版本提供>
Sunny-NgrokSunny-Ngrok提供免费内网穿透服务,免费服务器支持绑定自定义域名、管理内网服务器,内网web进行演示、本地WEB外网访问、本地开发微信、TCP端口转发。
小米球小米球旨在给程序猿们调试本地的web项目,免去部署环节,它是提供给有需要的同学免费使用的。
echositeechosite同样ngrok二次开发的内网穿透工具,支持多种协议,以前是全部免费的,现在是收费的,不过普通使用的话1元/月,可根据自己的需要去选择。
SSH
配合autossh工具使用,因为autossh会容错。
项目主页:>
项目介绍:自动重新启动SSH会话和隧道。SSH工具是一个非常强大的工具,除了能够远程连接,还能建立隧道,转发端口。利用这个特性就可以把外网的端口请求,连接到内网端口。
SSH本身的连接并不稳定,借助工具autossh可以很稳定的建立隧道,因为失败或者其他网络情况下,autossh会自动维护和保持连接。
疫情期间远程办公,搭建了***方便远程连接公司服务器,***连接需要知道公司的公网ip,而公网ip是动态变化,所以需要远程连接公司的服务器,查看公网ip。记录下,备忘。
Linux 查询公网ip 指令:
向日葵Linux安装、使用方法
缺点:需要付费,精英版专享功能
通过ngrok内网穿透工具,创建tcp通道,监听22端口,这样可以通过ssh工具进行连接。
创建tcp通道
执行该指令,可以开始tcp通道,并监听22端口,但是无法关闭该终端(需要后台执行)。
启动之后使用该curl查看映射映射:curl localhost:4040/api/tunnels
启动之后便有了对应的映射关系:比如: tcp://3tcpngrokio:10111 -> localhost:22
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)