我对NAT表的理解是
仅
-
NAT表映射(专用IP:端口) - >(公共IP:端口)
-
它不关心协议或套接字连接
通过这种方式,我认为通过重用本地端口可以完成TCP打孔 .
- 主机A后面的NAT连接到服务器S,主机A的NAT映射它的对
Host A(192.0.0.1:100) -> NAT -> Server
(192.0.0.1:100 -> 121.0.0.1:200) MAPPED
- 主机A关闭该套接字并在同一本地端口(100)上打开新的侦听套接字
Host A(listening 192.0.0.1:100) -> NAT -> Server
(192.0.0.1:100 -> 121.0.0.1:200) MAPPED
- 然后,我认为任何客户端都可以使用已映射的对(192.0.0.1:100 - > 121.0.0.1:200)连接到主机A(从服务器获取121.0.0.1:200)
因为NAT表只考虑dest IP和端口而不是源IP和端口 .
但这不起作用!我找到了其他复杂的实现,但我好奇这是什么问题 .
1 回答
好的,如果有人到达这里,请阅读https://en.wikipedia.org/wiki/Network_address_translation https://en.wikipedia.org/wiki/Network_address_translation