NAT穿越
NAT是Network Address Translation的缩写,就是个网络地址翻译器。防火墙里都安装有它。
比方说,一台内网机器的程序(192.168.0.10:7777)访问外网地址:61.135.169.125:9999. NAT会做什么?
1. NAT收到内网数据包,会做三件事
1) 将数据包里的源地址: 192.168.0.10:7777 改为123.126.55.41:8888. 这是NAT里的公网地址。
2) NAT 在映射表(iptables)里添加一条记录
内网地址(A) 转换后地址(B) 目的地址(C)
192.168.0.10:7777 123.126.55.41:8888 61.135.169.125:9999
3) 将改变后的数据包发出去
2. 外网机器收到数据包后,就可以向123.126.55.41:8888回复消息
3. NAT 收到外网的数据包,做以下事情
1) 解析数据包,得知来自61.135.169.125:9999,要连接123.126.55.41:8888
2) 检查映射表,select A from iptables where B=’123.126.55.41:8888’ and C=’61.135.169.125:9999’
3) 如果存在,则NAT会转发该包到内网地址A. 否则丢弃该包。
映射表的这一条记录,就被看作一个“洞”,外网请求就可以通过这个洞,和内网的机器通信。
它的基本原理就是这么简单。
https://www.cnblogs.com/dapplehou/p/12879811.html