美文网首页网络与信息安全程序员
内网穿透原理总结与工具推荐

内网穿透原理总结与工具推荐

作者: 海涛王 | 来源:发表于2019-03-19 23:24 被阅读147次

    本文主要总结个人进行内网穿透的知识,主要包括以下内容:

    • 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.内网穿透工具推荐

    目前市面上有很多传统工具,较为知名的开源工具有NgrokFRPfcngoProxy,其他还有一些商用的工具比如花生壳和基于等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使用教程
    • 小米球
      小米球旨在给程序猿们调试本地的web项目,免去部署环节,它是提供给有需要的同学免费使用的。
      参考教程: 使用教程
    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介绍

    花生壳

    花生壳是一个动态域名解析软件。当您安装并注册花生壳动态域名解析软件,无论您在任何地点、任何时间、使用任何线路,均可利用这一服务建立拥有固定域名和最大自主权的互联网主机。“花生壳动态域名解析软件”支持的线路包括普通电话线、ISDNADSL、有线电视网络、双绞线到户的宽带网和其它任何能够提供互联网真实IP的接入服务线路,而无论连接获得的IP属于动态还是静态。

    参考教程:端口映射方法:花生壳内网穿透

    参考链接

    1. 一分钟实现内网穿透(ngrok服务器搭建)
    2. 维基百科:网络地址转换
    3. 【技巧】内网穿透工具的原理与开发实战
    4. 图解TCP/IP
    5. 可以实现内网穿透的几款工具
    6. 内网穿透工具的原理与开发实战
    7. NAT 穿透原理浅浅说(一)

    版权声明:原创作品,欢迎转载:https://www.jianshu.com/p/f4f9abc942a7

    相关文章

      网友评论

        本文标题:内网穿透原理总结与工具推荐

        本文链接:https://www.haomeiwen.com/subject/fgoomqtx.html