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

 

posted @ 2020-05-13 00:08  福尔  阅读(549)  评论(0编辑  收藏  举报