五大NAT穿透方法,解决内网问题
来源:互联网 发布:白金数据东野圭吾 编辑:程序博客网 时间:2024/04/29 11:41
许多程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行。问题就在于NAT,本文就将介绍下5大NAT穿透方法,解决内外网的互访问题。
1.完全锥形(Full Cone)NAT
处于不同内网的主机A和主机B,各自先连接服务器,从而在各自NAT设备上打开了一个“孔”,服务器收到主机A和主机B的连接后,知道A与B的公网地址和NAT分配给它们的端口号,然后把这些NAT地址与端口号告诉A与B,由于在完全锥形NAT的特点,A和B给服务器所打开的“孔”,能给别的任何的主机使用。故A与B可连接对方的公网地址和端口直接进行通信。服务器在这里充当“介绍人”,告诉A与B对方的地址和端口号。
2.受限制锥形(Restricted Cone)NAT
A和B还是要先连接服务器,服务器发送A和B的地址和端口信息给A和B,但由于受限制锥形NAT的特点,他们所打开的“孔”,只能与服务器通信。要使他们可以直接通信,解决办法如下:
假如主机A开始发送一个UDP信息到主机B的公网地址上,与此同时,它又通过服务器中转发送了一个邀请信息给主机B,请求主机B也给主机A发送一个UDP信息到主机A的公网地址上。这时主机A向主机B的公网IP发送的信息导致NAT A打开一个处于主机A的和主机B之间的会话,与此同时,NAT B也打开了一个处于主机B和主机A的会话。一旦这个新的UDP会话各自向对方打开了,主机A和主机B之间就可以直接通信了[14]。
3.端口受限制锥形(Port Restricted Cone)NAT
对于该类型的NAT,解决办法跟上面的方法一样。
4.对称型(Symmetric)NAT
对称型NAT,对于不同的外网主机地址,它都会分配不同的端口号,所以进行UDP打孔比较困难,但也可以进行端口预测打孔,不过不能保证成功。
以上的穿透NAT,是对NAPT来进行穿透,主要是针对UDP协议。TCP协议也有可能,但是可行性非常小,要求更高。并且,语音视频通信是用UDP传输的,故针对TCP的NAT穿透在这里不作讨论。基础NAT不修改经过的数据包的端口号,它们可以看作是完全锥形NAT的精简版本,即基础NAT也可以被穿透。NAT设备将在一定时间后关闭UDP的一个映射,所以为了保持与服务器能够一直通信,服务器或客户端必须要周期性地发送UDP包,保持映射不被关闭。
5.花生壳NAT-DDNS穿透
花生壳DDNS是将用户的动态IP 地址映射到一个固定的域名上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP 地址传送给位于服务商主机上的服务器程序,服务项目器程序负责提供 DNS 服务并实现动态域名解析。DDNS 的主要作用就是捕获用户每次变化的 IP 地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来与用户交流了。
- 五大NAT穿透方法,解决内网问题
- NAT内网穿透
- 嵌入式Linux Nat内网穿透 设置问题
- 解决外网与内网或内网之间的通信,NAT穿透
- 解决外网与内网或内网之间的通信,NAT穿透
- 解决外网与内网或内网之间的通信,NAT穿透
- 内网穿透(NAT穿透)之ngrok搭建服务器
- 解决Fragment内点击穿透问题
- 解决Fragment内点击穿透问题
- 解决Fragment内点击穿透问题
- NAT穿透内网通信
- NATAPP内网穿透方法
- Linux 下 NAT 配置,实现内网穿透
- NAT穿透(两个不同内网主机通信)
- 穿透路由器,解决内网远程桌面等
- P2P之NAT穿透问题
- P2P之NAT穿透问题
- NAT外网访问内网方法
- Trie(字典树)学习小结1
- NYOJ-851寻找最大数(二),栈贪心!
- [javascript权威指南][阅读笔记]七
- idea修改文件头内容
- 图解win7下局域网内SVN服务器搭建
- 五大NAT穿透方法,解决内网问题
- iOS字符串反转
- 2016 07 18
- 【Linux全面学习】4.Linux的目录结构
- 搜索时输入关键词进行匹配
- 25.Which three operations require undo data? (Choose three.)
- 【EHCache】EHCache详解
- Python之decorator,闭包,异常
- Python——2list和tuple类型