NAT(Network Address Translation)是一种网络地址转换技术,主要用于解决IPv4地址不足的问题。它允许内网中的多个设备共享一个或少数几个公网IP地址来访问互联网。NAT通过修改数据包的IP地址和端口号来实现地址转换。
参考这个 UP 主的几个视频
NAT 类型在线测试网站
国光的文章
相关 NAT 科普文章
NAT(Network Address Translation)是一种网络地址转换技术,主要用于解决IPv4地址不足的问题。它允许内网中的多个设备共享一个或少数几个公网IP地址来访问互联网。NAT通过修改数据包的IP地址和端口号来实现地址转换。
通俗的说,我们联网设备(手机/电脑),其实都会有一个公网 IP,当我们访问网页时,服务器可以看到请求的 IP。
但是这个 IP 并不是独有的,而是运营商将一个公网 IP 分配给了多个用户,我们只是暂时有他的使用权。
具体原理是,我们的请求到达运营商的 NAT 转换设备,它按照拥有的公网 IP 临时分配一个端口给我们,以保证请求可以正确发出。
NAT类型 | 名称 | 特点 | P2P穿透难度 | NAT 穿透后可做什么 |
---|---|---|---|---|
NAT1 | Full Cone NAT 完全圆锥型 | • 最宽松的NAT类型 • 任何外部主机都可以通过映射端口访问内网 • 不限制外部IP和端口 | 最容易 | • 支持HTTP 302重定向直连 • 可实现真正的无服务器P2P • 适合文件共享、游戏服务器 • 支持多方同时连接 |
NAT2 | Restricted Cone NAT 受限圆锥型 | • 限制外部主机IP地址 • 只有内网曾发送过数据的外部IP才能访问 • 不限制外部端口号 | 较容易 | • 需要双向握手建立连接 • 不能使用302重定向(IP限制) • 适合点对点聊天、VoIP • 需要STUN服务器协助 |
NAT3 | Port Restricted Cone NAT 端口受限圆锥型 | • 同时限制外部IP地址和端口号 • 必须是完全相同的IP:端口组合才能访问 • 最严格的圆锥型NAT | 较困难 | • 必须精确匹配IP和端口 • 需要同步UDP打洞 • 适合WebRTC等标准协议 • 多数游戏需要UPnP辅助 |
NAT4 | Symmetric NAT 对称型 | • 最严格的NAT类型 • 每次向不同外部地址通信都可能使用新端口 • 具有端口受限的所有特性 | 最困难 | • 基本无法直接P2P连接 • 必须使用TURN中继服务器 • 适合企业级安全应用 • 大多数应用退化为C/S模式 |
因为没有公网 IP,所以如果我们想部署互联网服务,比如网站、游戏服务器、网盘,等等,就需要购买云服务器。而云服务器不仅价格昂贵且配置低下,如果不想购买服务器,可以使用内网穿透的方案。
而内网穿透大概有两种方案
NAT 实际上会分给我们一个临时的公网 IP,而我们利用上这个公网 IP,就可以实现大带宽的网络传输。
NAT1 穿透,可以实现几乎等同于公网的访问体验,但是国内基本都是 NAT3 NAT4,这种方案也就不可行了。
常见的 NAT 穿透工具有
在难以进行 NAT 穿透的网络中,服务器中转成为唯一选择
事实上,上面提到的 NAT 穿透软件,都有穿透失败降级服务器中转的功能
服务器中转方案,可以使用工具 frp
本文作者:pepedd864
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!