首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NAT 原理以及 UDP 穿透

本文详细介绍了 NAT 的原理,并以此作为基础介绍了 UDP 穿透的原理和实现。...0x05 UDP穿透NAT 的网络环境下,p2p 网络通信需要穿透 NAT 才能够实现。在熟悉 NAT 原理过后,我们就可以很好的理解如何来进行 NAT 穿透了。...同时,由于 TCP 工作比较复杂,在 NAT 穿透中存在一些局限性,所以在实际场景中 UDP 穿透使用得更广泛一些,这里我们详细看看 UDP 穿透的原理和流程。...[9.UDP打洞流程] 按照该步骤,我们编写了 UDP 穿透的示例脚本: server.py #!...如果两端的 Symmetric NAT 路由器是已知的,我们可以直接逆向分析映射生成算法,即可准确预测端口号。 2.TCP穿透有哪些难点? TCP 穿透的流程基本和 UDP 穿透一样。

3K52

NAT穿透解决

后面,那么可以由位于NAT后面的一方主动发起通信请求; (4)如果通信双方都位于NAT后面,且双方的NAT类型都是cone NAT,那么可以通过一个STUN服务器发现自己的NAT类型以及内网和外网传输地址映射信息...,然后通过Signaling(信令服务器,实现了SIP协议的主机)交换彼此的NAT类型及内网和外网传输地址映射信息,然后通过UDP打洞的方式建立通信连接; (5)如果通信双方有一方的NAT类型是Symmetric...raddr 192.168.106.215 rport 3030 STUN(Session Traversal Utilities for NAT) NAT会话穿透工具;STUN提供了一种方式使一个端点能够确定...ICE(Interactive Connectivity Establishment) 是实现NAT穿透的一种技术方案;ICE是一种NAT穿透技术,通过offer/answer模型建立基于UDP的媒介流...3.ICE进行NAT穿透的基本过程: 在通常的ICE部署环境中,我们有两个客服端想要建立通信连接,他们可以直接通过signaling服务器(如SIP服务器)执行offer/answer过程来交换SDP消息

2K11
您找到你想要的搜索结果了吗?
是的
没有找到

NAT穿透技术详解

2.1.UDP穿透之七中情形 UDP穿透主要有以下七种情形: •Open Internet 主机具有公网IP,允许主动发起和被动响应两种方式的UDP通信。...2.2.UDP穿透之网络发现 UDP穿透的七种情形节点自身如何知道,也就是如何在防火墙内和局域网内知道自己进行公网UDP通信时的网络结构。...2.3.UDP穿透之网络发现流程 UDP穿透之网络发现流程如下图示: 2.4.UDP穿透之四种NAT UDP穿透之网络发现协议图解: •全锥形NAT •受限锥形NAT •端口受限锥型NAT •对称型NAT...上述除了对称性NAT无法实现简单的打洞穿透外,其它都是可以简单的实现穿透的。...关键点在到不同的目的地(目的IP:目的端口)分配不同的映射地址(IP:Port) 2.5.TCP穿透探索 因为UDP穿透简单,所以多数P2P的实现都是以UDP协议来实现的,但TCP也是可以穿透,只要符合

2.5K52

NAT 穿透原理浅浅说(一)

导语 最近介入测试P2P的相关逻辑,因此对NAT穿透原理做了一定程度的了解(当然也没有很深入)。本篇文章也是综合和参考了些网络上和文献里的一些资料(文中没有对引用处进行标记,请见谅)。...那么,NAT与此同时也带来一些弊端:首先是,NAT设备会对数据包进行编辑修改,这样就降低了发送数据的效率;此外,各种协议的应用各有不同,有的协议是无法通过NAT的(不能通过NAT的协议还是蛮多的),这就需要通过穿透技术来解决...我们后面会重点讨论穿透技术。 简单的背景了解过后,下面介绍下NAT实现的主要方式,以及NAT都有哪些类型。 二、NAT实现方式及主要类型 1.NAT实现方式 1)静态NAT:也就是静态地址转换。...b)如果能够接受到服务器从(IP-2,Port-2)返回的应答UDP包,则说明客户端是一个Full Cone NAT,这样的客户端能够进行UDP-P2P通信。...当然这是自己个人笔记的第一篇,后面,再作一篇笔记《NAT穿透原理浅析(二)》分析下不同NAT类型的穿透打洞策略。

24K115

TCPIP之网络地址转换(NAT)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穿透问题 客户期望连接内网地址为

2.9K20

NAT穿透是如何工作的

1.3 方案:NAT 穿透 1.3.1 两个必备前提:UDP + 能直接控制 socket 如果想设计自己的协议来实现 NAT 穿透,那必须满足以下两个条件: 协议应该基于 UDP。...如果考虑 TCP 是想在 NAT 穿透时获得面向流的连接( stream-oriented connection),可以考虑用 QUIC 来替代,它构 建在 UDP 之上,因此我们能将关注点放在 UDP...2.2 防火墙朝向(face-off)与穿透方案 2.2.1 防火墙朝向相同 场景特点:服务端 IP 可直接访问 在 NAT 穿透场景中,以上默认规则对 UDP 流量的影响不大 —— 只要路径上所有防火墙的...), STUN 服务器只是辅助穿透的基础设施, 与 STUN 服务器通信之后,在 NAT 及防火墙设备上打开了一个连接,允许入向包进来(回忆前面内容, 只要目的地址对,UDP 包就能进来,不管这些包是不是从...8.2 结束语 实现健壮的 NAT 穿透需要下列基础: 一种基于 UDP 的协议; 能在程序内直接访问 socket; 有一个与 peer 通信的旁路信道; 若干 STUN 服务器; 一个保底用的中继网络

2.1K20

视频聊天功能如何穿透NAT

视频类的功能,基于性能、流畅度等方面的原因,协议需要选用UDP(视频可以容忍偶尔不清晰,UDP丢包;不能容忍卡顿,TCP重传)。 《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、

1.5K10

Linux利用nat123软件实现内网穿透的图文教程

之前聊过公司有台内网服务器,但是最近要实现远程访问项目,用了之前搭建的花生壳内网穿透功能,但是速度慢不说还经常性的出现502错误,所以打算在百度下看看有没有其他的解决方案,解决就看见了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换成是自己本地实际安装目录...客户端后台服务启动需要先参与上面的输入帐号密码登录成功记录为前提#cd /opt/nat123将opt/nat123换成是自己本地实际安装目录#mono nat123linux.sh service &...nat123软件已经全部完成,接下来登录nat123官网,按照教程设置即可完成内网穿透功能的实现,对了还要说下,这个官方如要实名认证,但又不是我们意义上的实名,这个需要充值来认证,我充值的金额8元,然后才能操作

1K30

Linux利用nat123软件实现内网穿透的图文教程

之前聊过公司有台内网服务器,但是最近要实现远程访问项目,用了之前搭建的花生壳内网穿透功能,但是速度慢不说还经常性的出现502错误,所以打算在百度下看看有没有其他的解决方案,解决就看见了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...客户端后台服务启动 需要先参与上面的输入帐号密码登录成功记录为前提 #cd /opt/nat123 将opt/nat123换成是自己本地实际安装目录 #mono nat123linux.sh service...至此安装nat123软件已经全部完成,接下来登录nat123官网, 按照教程设置即可完成内网穿透功能的实现,对了还要说下,这个官方如要实名认证,但又不是我们意义上的实名,这个需要充值来认证,我充值的金额

1.5K30

网络之NAT 和N2N V**

NAT的原理 2. NAPT Address Restricted Cone NAT Symmetric NAT 3.关于内网穿透 二、 N2N组件及配置 1. 基本组件 2. 配置 三、实战 1....NAT的原理 想要理解UDP穿透的原理,就需要先了解NAT 的原理, 都知道NAT是地址转换,哪怎么个转换法哪? SNAT: 源地址转换,当请求本文经过NAT网关时。...缺点:NAT网关对报文进行地址转换的本质是对报文源和目标的修改,这会导致额外的延迟和开销。 3.关于内网穿透 内网穿透俗称打洞,其实就是透过NAT对外提供服务的方式。...这种工具只能做到4层或者7层的内网穿透,而N2N 实现了2层的网络穿透。 对于锥形NAT来说,supernode节点像是个中介,介绍edge互相认识后,之间的交互直接就是edge与edge的交互了。...配置 edge配置 Welcome to n2n v.2.1.0 for Linux-3.10.0-514.26.2.el7.x86_64 Built on Oct 25 2017 21:02:37 Copyright

2.1K31

可以实现内网穿透的几款工具

NAPT原理 在NAT网关上会有一张映射表,表上记录了内网向公网哪个IP和端口发起了请求,然后如果内网有主机向公网设备发起了请求,内网主机的请求数据包传输到了NAT网关上,那么NAT网关会修改该数据包的源...,同时支持多种系统win、linuxlinux_arm、mac等。具体的使用直接参考官网。...4、Sunny-Ngrok Sunny-Ngrok同样是ngrok二次开发的内网穿透工具,支持http,https协议,同时支持更丰富的系统和语言:linux、win、mac、openwrt、 python...参考教程:使用 PHP 实现的的内网穿透工具 “Spike” 9、Frp frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。...利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

8.1K11

利用Slack的TURN服务器访问Slack内部网络

STUN和TURN介绍 在现实的互联网环境中,大多数客户端主机都位于防火墙或NAT之后,像在视频会议、视频通话、在线教育等实时传输场景下,我们都希望网络中的两台主机能够直接穿透NAT限制进行通信,即所谓的...STUN协议(Simple Traversal of UDP Through NATs),在RFC3489中定义为一种简单的NAT穿透解决方案,即用UDP实现的简单NAT穿透方法。...在新的RFC5389修订中把STUN协议定义为穿透NAT的提供工具,在原有UDP的基础增加了TCP穿透,英文全称为Session Traversal Utilities for NAT,即NAT会话穿透...TURN协议(Traversal Using Relays around NAT),在RFC5766中的定义是,使用中继穿透NAT,它是STUN协议的一种中继扩展。...即在STUN的基础上实现中继或“中间人”方式的NAT穿透

1.9K10

natapp内网穿透

前言 日常在本地开发的项目,在没有部署到云服务器的情况下如果也想让他人访问到本地的项目应该如何实现呢,没错,就是内网穿透 UDP 内网穿透的实质是利用路由器上的NAT 系统。...NAT 是一种将私有(保留)地址转化为合法IP地址的转换技术 本文主要讲解natapp内网穿透 登录网址:https://natapp.cn/ 注册账号 购买免费隧道 购买成功后点击我的隧道 点击复制按钮...d7quau.natappfree.cc/ 访问即可,端口号是购买免费隧道的时候自行设定的,可在本地安装tomcat或者nginx服务器进行项目部署访问 由于免费的隧道域名是随机产生的,如需固定域名可购买付费隧道 Linux...的操作见:https://natapp.cn/article/nohup 扩展 NPS 轻量级内网穿透代理服务器 gitee上的地址:https://gitee.com/mirrors/nps github...:https://github.com/ehang-io/nps 文档地址:https://ehang-io.github.io/nps frp内网穿透 mc服务器是什么?

1.1K20
领券