作者:0x7F@知道创宇404实验室 时间:2021年4月12日 0x00 前言 一直对 P2P 和 NAT 穿透的知识比较感兴趣,正巧最近看到一篇不需要第三方服务器实现 NAT 穿透的项目(https...0x05 UDP穿透 在 NAT 的网络环境下,p2p 网络通信需要穿透 NAT 才能够实现。在熟悉 NAT 原理过后,我们就可以很好的理解如何来进行 NAT 穿透了。...同时,由于 TCP 工作比较复杂,在 NAT 穿透中存在一些局限性,所以在实际场景中 UDP 穿透使用得更广泛一些,这里我们详细看看 UDP 穿透的原理和流程。...1.Symmetric NAT可以穿透吗?...0x07 总结 本文从 NAT 原理出发,详细介绍了不同 NAT 类型的工作流程和原理,在此基础上我们深入学习和实现了 锥型NAT 的穿透,并拓展介绍了一些特殊的穿透场景。
(安全) NAT 实现 NAT实现通过利用端口号对内部地址和端口号进行转换,并维护一个转换表。...替换 • 利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号) 记录 • 将每对(NAT IP地址, 新端口号) 与(源IP地址, 源端口号)的替换信息存储到NAT转换表中...替换 • 根据NAT转换表,利用(源IP地址, 源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址, 新端口号) 下面通过一个实例说明: ?...首先要进行NAT转换,转换为本网惟一一个的IP地址138.76.29.7及其对应的端口号。 NAT路由器将数据报的源地址与端口号修改为138.76.29.7,5001,并记录到NAT转换表中。...NAT主要争议: 路由器应该只处理第3层功能 违背端到端通信原则 • 应用开发者必须考虑到NAT的存在, e.g., P2P应用 地址短缺问题应该由IPv6来解决 NAT穿透问题 客户期望连接内网地址为
后面,那么可以由位于NAT后面的一方主动发起通信请求; (4)如果通信双方都位于NAT后面,且双方的NAT类型都是cone NAT,那么可以通过一个STUN服务器发现自己的NAT类型以及内网和外网传输地址映射信息...) NAT会话穿透工具;STUN提供了一种方式使一个端点能够确定NAT分配的和本地私有IP地址和端口相对应的公网IP地址和端口以及NAT的类型信息。...TURN(Traversal Using Relay NAT) TURN是STUN协议的扩展,在实际应用中他也可以充当STUN的角色;如果一个位于NAT后面的设备想要和另外一个位于NAT后面的设备建立通信...ICE(Interactive Connectivity Establishment) 是实现NAT穿透的一种技术方案;ICE是一种NAT穿透技术,通过offer/answer模型建立基于UDP的媒介流...3.ICE进行NAT穿透的基本过程: 在通常的ICE部署环境中,我们有两个客服端想要建立通信连接,他们可以直接通过signaling服务器(如SIP服务器)执行offer/answer过程来交换SDP消息
server_ports是你留给frp用来内网穿透的端口,这个必须和上面讲的服务端设置的端口相同。 token必须和上面sever端设置的一样!
NAT内网穿透作为异地组网的关键技术之一,为我们提供了可靠的技术基础。本文将为您介绍内网穿透的核心原理及其在异地组网中的实际应用。一、什么是NAT?...二、NAT的工作方式内网穿透(NAT Traversal)是一种解决NAT限制的技术,允许位于不同内网中的设备绕过NAT的阻碍,实现点对点(P2P)通信。它是异地组网技术的核心基础之一。...3.2 内网穿透的原理内网穿透(NAT Traversal)是一种解决NAT限制的技术,允许位于不同内网中的设备绕过NAT的阻碍,实现点对点(P2P)通信。它是异地组网技术的核心基础之一。...四、NAT内网穿透在异地组网中的应用内网穿透技术在异地组网中有着广泛的应用,例如:远程办公:通过内网穿透技术,无需复杂的网络路由配置即可访问公司内部资源。...分布式管理:企业通过内网穿透技术,实现对多个地域设备的集中管理。五、总结NAT与内网穿透技术是异地组网的技术基石。
导语 最近介入测试P2P的相关逻辑,因此对NAT穿透原理做了一定程度的了解(当然也没有很深入)。本篇文章也是综合和参考了些网络上和文献里的一些资料(文中没有对引用处进行标记,请见谅)。...那么,NAT与此同时也带来一些弊端:首先是,NAT设备会对数据包进行编辑修改,这样就降低了发送数据的效率;此外,各种协议的应用各有不同,有的协议是无法通过NAT的(不能通过NAT的协议还是蛮多的),这就需要通过穿透技术来解决...我们后面会重点讨论穿透技术。 简单的背景了解过后,下面介绍下NAT实现的主要方式,以及NAT都有哪些类型。 二、NAT实现方式及主要类型 1.NAT实现方式 1)静态NAT:也就是静态地址转换。...2.NAT的主要类型 对于NAPT我们主要分为两大类:锥型NAT和对称型NAT。其中锥型NAT又分:完全锥型,受限锥型和端口受限锥型。...当然这是自己个人笔记的第一篇,后面,再作一篇笔记《NAT穿透原理浅析(二)》分析下不同NAT类型的穿透打洞策略。
NAT穿透技术详解 1.P2P网络结构模型 顾名思义,P2P就是点到点的意思,是与C/S结构不一样的纯分布式结构。...穿透原理 P2P既然需要两个节点直接之间互相通信,而两个节点多数情况都位于防火墙内和内部局域网内,从内往外访问很容易,但反过来却无法直接进行,这就涉及到NAT穿透技术。...2.3.UDP穿透之网络发现流程 UDP穿透之网络发现流程如下图示: 2.4.UDP穿透之四种NAT UDP穿透之网络发现协议图解: •全锥形NAT •受限锥形NAT •端口受限锥型NAT •对称型NAT...上述除了对称性NAT无法实现简单的打洞穿透外,其它都是可以简单的实现穿透的。...2.5.1.SYN消息的构造 构造出SYN消息的序列号成为能够穿透成功的关键,当接收到的 SYN 包中的源IP地址和端口、目标IP地址和端口都与NAT登记的一个已经激活的TCP会话中的地址信息相符时,NAT
我们用SIP 客户端呼叫的时候,经常遇到复杂的网络NAT环境,这个时候需要我们安装STUN Server / Turn Server 做穿透用。
接着补充几个点,比如内网穿透和内网打洞的概念,其实NAT也是内网穿透和内网打洞的基础,所以介绍了NAT之后理解内网穿透和内网打洞会容易很多。 最后补充一个代理的内容,我们的网络原理部分就算是结束了。...内网穿透和打洞 NAPT表 介绍这两个之前,我们得先介绍一下NAT,回顾前文的NAT技术: 主机交付报文的时候,从自己路由器构建的局域网发送报文,因为该主机能够通过按位与获取到自己的网络号,所以得知自己发送的报文不是自己所处的局域网的...那么问题来了,我们平常的报文转发,好像就是这样的,通过NAT转发,找到对方的主机IP和端口,但是实际上,内网穿透解决的问题是:两台主机没有办法通信,所以我们需要一个IP进行中转 内网穿透也是非常常见的,...内网打洞 对于内网穿透和内网打洞来说其实都是基于NAT来看的,但是二者解决的问题不同,对于内网穿透来说解决的是两台主机无法直接通信的过程,不过在现在网络世界中,内网穿透实际上是非常非常非常常见了,可以说内网穿透已经是隐形实施的技术了...所以对于内网穿透和打洞来说,一个是通过服务器中转,一个是通过服务器建立一条信道,如下表: 项目 打洞(Hole Punching) 内网穿透(NAT Traversal) 目标 实现 P2P 通信(点对点直连
之前聊过公司有台内网服务器,但是最近要实现远程访问项目,用了之前搭建的花生壳内网穿透功能,但是速度慢不说还经常性的出现502错误,所以打算在百度下看看有没有其他的解决方案,解决就看见了nat123软件也可以实现内网穿透...#mkdir nat123 创建一个“nat123”文件夹,名字可自拟,无要求默认就好。...#cd /opt/nat123 在新创建文件夹下执行安装等操作 #wget http://www.nat123.com/down/nat123linux.tar.gz 下载安装包。...gzip和tar命令如下 # gzip -d nat123linux.tar.gz # tar -xf nat123linux.tar 客户端启动 #cd /opt/nat123 将opt/nat123...至此安装nat123软件已经全部完成,接下来登录nat123官网, 按照教程设置即可完成内网穿透功能的实现,对了还要说下,这个官方如要实名认证,但又不是我们意义上的实名,这个需要充值来认证,我充值的金额
《NAT是怎么回事》中介绍了NAT基本概念。由于NAT没有强制性标准,在实际应用中有多种类型。...根据内网地址到外网地址的映射是1对1,还是1对多,NAT可以分成两大类:Cone NAT(锥型)和Symmetric NAT(对称型),锥形还能细分多种子类型。...本文只介绍NAT穿透原理,不纠结于具体NAT类型,因此选用比较简单的全锥形来进行讨论。如下图,A、B两个客户端分别通过NAT A(对应外网地址eA)、NAT B(eB)接入网络。...A、B建立连接步骤如下 1、A向Server发送数据包询问 NAT A 的公网地址 2、Server向A返回 eA (A向Server发过消息,所以Server能找到A,参看《NAT是怎么回事》) 3、...B向Server发送数据包询问 NAT B 的公网地址(A可通过IM系统发送文本消息给B,协同B一起向Server发起询问) 4、Server向B返回 eB 5、Server向A返回 NAT B外网地址
关于Nat-Cloud 一款很不错的内网穿透软件,多终端,功能也比较全 安装&配置 1、VPS上安装服务器端(可选) wget https://down.boluo.link/linux/nat-cloud.../serverLinuxAMD64 & 2、运行UI wget https://down.boluo.link/linux/nat-cloud/explorerLinuxAMD64chmod +x explorerLinuxAMD64.../explorerLinuxAMD64 &3、安卓手机安装nat-cloud内网穿透软件本地下载 https://down.boluo.link/linux/nat-cloud/nat-client.apk...6、连接状态变成在线后,添加HTTP代理附项目地址 https://github.com/nat-cloud/
三、内网穿透 & 内网打洞 1. 内网穿透 前言:NAT技术 保证内网主机的安全性,比如:NAT技术不仅极大程度缓解了IP地址不足的问题(甚至解决了),还保证了局域网主机的安全性。...从外网访问内网主机的方式就是 内网穿透(NAT穿透) 内网穿透是一种网络技术,用于解决内网设备与外部网络之间通信的问题。...这叫做 内网穿透技术! 我们可以在云服务器上使用 frp 软件进行内网穿透服务: 服务器:拥有一台具有公网IP地址的服务器,作为 FRP 的服务端。...客户端:需要穿透的内网机器,作为 FRP 的客户端。 为什么要进行内网穿透呢?内网穿透有以下优点: 成本效益:内网穿透可以避免购买服务器公网IP地址的高昂成本,同时也能实现公网服务的功能。...访问限制:由于 NAT(网络地址转换)和防火墙的存在,内网中的设备通常无法直接从外网访问。内网穿透技术可以帮助绕过这些限制,使得内网服务可以被外网访问。
之前聊过公司有台内网服务器,但是最近要实现远程访问项目,用了之前搭建的花生壳内网穿透功能,但是速度慢不说还经常性的出现502错误,所以打算在百度下看看有没有其他的解决方案,解决就看见了nat123软件也可以实现内网穿透...#mkdir nat123创建一个“nat123”文件夹,名字可自拟,无要求默认就好。...#cd /opt/nat123在新创建文件夹下执行安装等操作#wget http://www.nat123.com/down/nat123linux.tar.gz下载安装包。...gzip和tar命令如下# gzip -d nat123linux.tar.gz# tar -xf nat123linux.tar客户端启动#cd /opt/nat123将opt/nat123换成是自己本地实际安装目录...nat123软件已经全部完成,接下来登录nat123官网,按照教程设置即可完成内网穿透功能的实现,对了还要说下,这个官方如要实名认证,但又不是我们意义上的实名,这个需要充值来认证,我充值的金额8元,然后才能操作
一、什么是内网穿透(NAT 穿透)? 在现代网络环境中,绝大多数家庭和企业都通过路由器(NAT 设备)连接互联网。...内网穿透(NAT 穿透)就是指让外部网络能够访问位于 NAT 后面的内网主机的技术。...常见应用场景包括: 远程桌面、远程 SSH 内网网站、家庭NAS、服务对外发布 远程监控、物联网设备管理 二、NAT 穿透的工作原理 NAT 设备会将内网主机的私有 IP 地址转换为公网 IP 地址,并维护一个地址映射表...NAT 穿透技术 a) STUN(Session Traversal Utilities for NAT) 主要用于 UDP 协议 内网主机通过 STUN 服务器获取自己的公网地址和端口 适用于对称 NAT...OpenVPN、WireGuard 虚拟专用网(VPN)方案,通过 VPN 隧道实现内网互通,安全性高(加密传输) ❝内网穿透是解决 NAT 后主机无法被外部访问的关键技术 工具选择需结合实际需求(安全性
讨论连接问题和 NAT 穿透问题时,我们只会受 source NAT —— SNAT 的影响。DNAT 不会影响 NAT 穿透。...4 穿透 “NAT+防火墙”:STUN (Session Traversal Utilities for NAT) 协议 STUN 既是一些对 NAT 设备行为的详细研究,也是一种协助 NAT 穿透的协议...5.4 针对 NAT 穿透场景:简化 NAT 分类 以上讨论可知,虽然理解防火墙的具体行为很重要,但对于编写 NAT 穿透代码来说,这一点并不重要。...此外,某些网络会阻止 NAT 穿透,其影响比这种 hard NAT 大多了。...8 结束语 我们终于完成了 NAT 穿透的目标! 如果实现了以上提到的所有技术,你将得到一个业内领先的 NAT 穿透软件,能在绝大多数场景下实现端到端直连。
我没胆量犯错 才把一切错过 --- 林夕 《我对不起我》--- 一文了解NAT机制,代理服务,内网穿透 1 再谈 NAT 机制 2 内网穿透与内网打洞 3 代理服务器 1 再谈 NAT 机制...这也是由于路由器NAT转发的结果!Linux服务上的实际获取到的IP是出入口路由器的WAN口IP 2 内网穿透与内网打洞 如果今天可以做到: 首先我们拥有一个云服务器....客户端:需要穿透的内网机器,作为FRP的客户端。 那么为什么要进行内网穿透呢?内网穿透有这样的优点: 成本效益:内网穿透可以避免购买服务器公网IP地址的高昂成本,同时也能实现公网服务的功能。...访问限制:由于NAT(网络地址转换)和防火墙的存在,内网中的设备通常无法直接从外网访问。内网穿透技术可以帮助绕过这些限制,使得内网服务可以被外网访问。...开发与测试:开发者可以在内网环境中开发应用程序,并通过内网穿透技术让外网的测试人员或合作伙伴访问,以便进行测试和反馈。 安全性:内网穿透可以提供一种更安全的远程访问方式。
讨论连接问题和 NAT 穿透问题时,我们只会受 source NAT —— SNAT 的影响。 DNAT 不会影响 NAT 穿透。...” NATs 这些都是 NAT 穿透领域的早期术语。...5.4 针对 NAT 穿透场景:简化 NAT 分类 以上讨论可知,虽然理解防火墙的具体行为很重要,但对于编写 NAT 穿透代码来说,这一点并不重要。...此外,某些网络会阻止 NAT 穿透,其影响比这种 hard NAT 大多了。...8 结束语 我们终于完成了 NAT 穿透的目标! 如果实现了以上提到的所有技术,你将得到一个业内领先的 NAT 穿透软件,能在绝大多数场景下实现端到端直连。
对称 NAT (Symmetric NAT):每次内网主机与不同的公网主机通信时,NAT 设备会分配不同的公网端口。 不同类型的 NAT 对穿透能力有重要影响,其中对称 NAT 是最难穿透的类型。...穿透方案 对于对称 NAT,需要更复杂的穿透方案,如使用中继服务器或结合 TCP 穿透技术: # 对称NAT穿透中继服务器 import socket import threading class...高级穿透技术 5.1 TCP 打洞技术 TCP 打洞比 UDP 打洞更复杂,因为 TCP 的三次握手过程和 NAT 的行为特性使得直接穿透更加困难。...八 .小结 内网穿透技术从 NAT 出现之初就应运而生,随着网络环境的复杂化,穿透技术也在不断发展和创新。从早期的基于代理的简单方案,到现在的智能穿透技术,每一次进步都在推动网络通信的边界。...未来,随着 IPv6 的普及,NAT 技术可能会逐渐退出历史舞台,但在过渡期间,内网穿透技术仍将发挥重要作用。