本文主要总结个人进行内网穿透的知识,主要包括以下内容:
- NAT原理解析
- NAT穿透工具推荐
内网穿透,即NAT(Network Address Translator)穿透,是指计算机在内网(局域网)内使用私有IP地址,在连接外网(互联网)时使用全局IP地址的技术。该技术被普遍使用在有多台主机但只通过一个公有IP地址访问的私有网络中。
举个例子:比如我在实验室配置了一个服务器 Server A,当我在实验室的时候,就可以通过自己的笔记本使用SSH连接【因为我和服务器处于一个局域网】,当我回宿舍以后,就没有办法直接使用SSH连接了【因为我和服务器不在一个局域网】,这个时候就需要进行NAT穿透,让我在宿舍也可以使用SSH连接Server A。
1. NAT原理解析
- 当信息由局域网向因特网传递时,源地址从专有地址转换为公用地址。由路由器跟踪每个连接上的目的地址和端口。
- 当数据返回路由器时,通过记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果此时如果有多个公用地址可用,当数据包返回时,则会客户机的端口号可以用来分解数据包。
图例:
下图以10.0.0.10的主机与163.221.120.9的主机进行通信为例进行讲解。
NAT原理.jpg
- 首先NAT路由器将发送源地址从私有IP地址(10.0.0.10)转换为全局的IP地址 (202.244.174.37)再发送数据
- 当数据从地址163.221.120.9发过来时,NAT路由器将目标地址从原句IP地址(202.244.174.37)先转换成私有IP地址10.0.0.10以后再转发
2.内网穿透工具推荐
目前市面上有很多传统工具,较为知名的开源工具有Ngrok、FRP、 fcn、goProxy,其他还有一些商用的工具比如花生壳和基于等Ngrok和FRP二次开发的商用软件,接下来进行分类归类和整理。
ngrok系列:
-
Ngrok
ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考教程: ngrok搭建指南 -
Natapp
NATAPP是基于ngrok的国内高速内网穿透服务,其中免费版本提供http,https,tcp全隧道穿透,随机域名/TCP端口,不定时强制更换域名/端口,自定义本地端口
参考教程: NATAPP1分钟快速新手图文教程
- Sunny-Ngrok
Sunny-Ngrok提供免费内网穿透服务,免费服务器支持绑定自定义域名、管理内网服务器,内网web进行演示、本地WEB外网访问、本地开发微信、TCP端口转发
参考教程: Sunny-Ngrok使用教程
- echosite
echosite同样ngrok二次开发的内网穿透工具,支持多种协议,以前是全部免费的,现在是收费的,不过普通使用的话1元/月,可根据自己的需要去选择。
参考教程: 如何使用 EchoSite ,花个 1 分钟看一下,就能玩得转了。
SSH
配合autossh工具使用,因为autossh会容错
- 项目主页:http://www.harding.motd.ca/autossh/
- 项目介绍:自动重新启动SSH会话和隧道。SSH工具是一个非常强大的工具,除了能够远程连接,还能建立隧道,转发端口。利用这个特性就可以把外网的端口请求,连接到内网端口。SSH本身的连接并不稳定,借助工具autossh可以很稳定的建立隧道,因为失败或者其他网络情况下,autossh会自动维护和保持连接。
参考教程:SSH内网穿透
Lanproxy
项目主页:https://lanproxy.io2c.com/
lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面...)。目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。
参考教程:lanproxy文档
frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
参考教程:十分钟教你配置frp实现内网穿透
fcn
fcn(free connect)是一款傻瓜式的一键接入私有网络的工具, fcn利用公共服务器以及数据加密技术实现:在免公网IP环境下,在任意联网机器上透明接入服务端所在局域网网段。支持多种系统.
参考教程:内网穿透工具FCN介绍
花生壳
花生壳是一个动态域名解析软件。当您安装并注册花生壳动态域名解析软件,无论您在任何地点、任何时间、使用任何线路,均可利用这一服务建立拥有固定域名和最大自主权的互联网主机。“花生壳动态域名解析软件”支持的线路包括普通电话线、ISDN、ADSL、有线电视网络、双绞线到户的宽带网和其它任何能够提供互联网真实IP的接入服务线路,而无论连接获得的IP属于动态还是静态。
参考教程:端口映射方法:花生壳内网穿透
参考链接
版权声明:原创作品,欢迎转载:https://www.jianshu.com/p/f4f9abc942a7
网友评论