udp打洞穿透nat实现p2p GitHub - pannzh/P2P-Over-MiddleBoxes-Demo: A simple demo of P2P communication over middle boxes such as NAT

标签: | 发表时间:2019-05-01 22:24 | 作者:
出处:https://github.com

P2P-Over-MiddleBoxes-Demo

一个简单的P2P通信示例

English README

p2pchat

一个P2P聊天程序,使用UDP打洞创建链接。

编译

    make p2pchat

运行

    ./p2pchat/server <服务器端口号>

./p2pchat/client <服务器IP>:<服务器端口号>
>>> help

测试:

编译

    make test

运行

    ./run_test.sh

常见问题

通信不正常/打洞不成功?

该UDP打洞示例仅支持锥形地址转换器(Cone NAT),如果两个客户端都在同一个公网结点下,需要确保出口路由器支持 回环传输(LOOPBACK TRANSMISSION)

我咋知道我的NAT是什么类型?

stun目录下有个简单的Python脚本,用RFC3489(经典STUN协议)的示例来检测NAT类型。 运行:

    cd stun
python3 classic_stun_client.py [本地IP]

运行结果示例如下:

    INFO:root:running test I with stun.ideasip.com:3478
INFO:root:MAPPED_ADDRESS: 220.181.57.217:46208
INFO:root:running test II with stun.ideasip.com:3478
INFO:root:running test I with 217.116.122.138:3479
INFO:root:MAPPED_ADDRESS: 220.181.57.217:2732
NAT_TYPE: Symmetric NAT

相关介绍文章

注: 本项目只是一个简单的UDP打洞示例,如果想构建成熟的P2P应用,可以接着参考STUN/TURN以及ICE等协议。

相关 [udp nat p2p] 推荐:

udp打洞穿透nat实现p2p GitHub - pannzh/P2P-Over-MiddleBoxes-Demo: A simple demo of P2P communication over middle boxes such as NAT

- -
一个P2P聊天程序,使用UDP打洞创建链接. ./p2pchat/server <服务器端口号> ./p2pchat/client <服务器IP>:<服务器端口号> >>> help. 该UDP打洞示例仅支持锥形地址转换器(Cone NAT),如果两个客户端都在同一个公网结点下,需要确保出口路由器支持.

【原创】IP摄像头技术纵览(七)---P2P技术—UDP打洞实现内网NAT穿透 - 池上好风---码农改变世界 - CSDN博客

- -
【原创】IP摄像头技术纵览(七)—P2P技术—UDP打洞实现内网NAT穿透. 本文属于《IP摄像头技术纵览》系列文章之一:. 本文可以自由转载,但转载请务必注明出处以及本声明信息. NAT技术的实际需求在10几年前就已经出现,为了解决这个问题,10几年来全世界的牛人早已经研究好了完整的解决方案,网上有大量优秀的解决方案文章,笔者自知无法超越,所以秉承拿来主义,将优秀文章根据个人实验及理解整理汇录于此,用于解释IP摄像头整个技术链路.

NAT穿透(UDP打洞) - heaventouch - 博客园

- -
1、NAT(Network Address Translator)介绍. NAT有两大类,基本NAT和NAPT. 静态NAT:一个公网IP对应一个内部IP,一对一转换. 动态NAT:N个公网IP对应M个内部IP,不固定的一对一转换关系. 现在基本使用这种,又分为对称和锥型NAT. 锥型NAT,有完全锥型、受限制锥型、端口受限制锥型三种:.

UDPonNAT—— 一个UDP代理,能让普通的UDP应用跨越NAT网络设备

- 19GHz - iGFW
UDPonNAT是一个UDP代理,它能让普通的UDP应用跨越NAT网络设备. UDPonNAT使用Python编写,遵守GPL协议发布,可运行的平台包括Windows/Linux/Unix等. UDPonNAT有什么用途:. 普通的UDP应用大多具有如下的工作方式:. Server运行后,UDP服务被绑定到一个固定的IP:Port上,等待来自 Client的UDP数据包并响应.

NAT穿透技术详解(udp打洞精髓附代码) - lyztyycode的博客 - CSDN博客

- -
以前自己写的代码都只是在本地进行c/s通信,今天想写一个可以跨越外网的c/s通信,这里我就用udp实现一个点对点的不同外网的通信. 用到的技术就是nat穿透技术,这里最直接使用的就是udp打洞技术. 如果你需要nat穿透技术的详解点这里:. 一个已知的外网服务器S(ip+port),两个位于不同外网的客户端A, B.

iptables NAT 学习

- - BlogJava-首页技术区
为了搞清楚iptables NAT的过程,做了这个实验. 使用了1台双网卡服务器和1台单网卡服务器,2个网段. 1.       为了看到调度服务器上的数据转发过程,首先在调度服务器上分出内核的debug日志:. l 在/etc/rsyslog.conf最后增加:kern.debug /var/log/iptables.log.

nat穿透原理

- - 开源软件 - ITeye博客
一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的). 但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序的人员“谈穿透色变”.

使用 iptables 透明代理 TCP 与 UDP

- - 依云's Blog
本文来自 依云's Blog,转载请注明. 很早之前,我在 《Linux「真」全局 HTTP 代理方案》中介绍了 redsocks 方案. 不过它只处理了 TCP,并没有处理 UDP,DNS 也是采用强制 TCP 的方式来处理的,再加上它本身还要将请求转发到真正的代理客户端,延迟比较高. 然后,还可以结合 Wi-Fi 分享 或者 网络命令空间,玩点更有趣的.

[转]iptables防火墙与NAT服务

- - 小鸥的博客
iptables防火墙与NAT服务. (1)设置在不同的网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性. (2)通过审查经过每一个数据包,判断它是否有相匹配的过滤规则,根据规则先后顺序一一进行比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作,若都不能满足,则将数据包丢弃,从而保护网络安全.

Xen 虚拟机的 NAT 网络配置

- - vpsee.com
我们使用 Xen 虚拟机的时候一般都是用桥接(bridging)的方式把虚拟机(domU)直接暴露在网络上,就像网络上单独的一台服务器一样,这种方式简单好用,不用在 dom0 做任何的端口转发也不用任何 iptable 规则. 不过除了 bridging 以外,Xen 还支持 routing 和 NAT 的方式配置虚拟机网络.