看别的帖子说
严格nat <----> 非严格nat 之间可以通过服务器通讯我这边有2个局域网测试环境,一个局域网是非严格的nat,同一个socket 给不同的Ip发送包,在nat上的映射端口是相同的,其他ip可以利用这个端口通讯,前提就是他先向某个IP端口"打洞"(假设为A方)
一个是严格的,同一个socket 给不同的Ip发送包,在nat上的映射端口是不同的。(假设为B方)
因为一方是严格的nat ,所以A 不可能获取 B的通讯端口。
B可以通过服务器获取A的通讯端口,然后向A发送数据,但是A不知道B的端口,所以在防火墙上没有对B的端口的映射,所有B发给A所有的包都被防火墙丢掉。
有谁知道解决方法吗?
严格nat <----> 非严格nat 之间可以通过服务器通讯我这边有2个局域网测试环境,一个局域网是非严格的nat,同一个socket 给不同的Ip发送包,在nat上的映射端口是相同的,其他ip可以利用这个端口通讯,前提就是他先向某个IP端口"打洞"(假设为A方)
一个是严格的,同一个socket 给不同的Ip发送包,在nat上的映射端口是不同的。(假设为B方)
因为一方是严格的nat ,所以A 不可能获取 B的通讯端口。
B可以通过服务器获取A的通讯端口,然后向A发送数据,但是A不知道B的端口,所以在防火墙上没有对B的端口的映射,所有B发给A所有的包都被防火墙丢掉。
有谁知道解决方法吗?
非严格NAT是指Cone NAT?即使是Cone NAT也分为Restricted Cone NAT和Port-Restricted Cone NAT,我想只有当你的NAT A是后者时才会出现你所说的问题。如果是Port-Restricted Cone NAT我想可能只有通过猜测端口的方式来连接。
我从B
sendto server port 9000 -- >收到B的端口是23025
sendto server port 9001 ---- 收到B的端口是62847如果我要猜测端口,就要向所有端口发送测试数据,是这样吗?
非严格NAT是指Cone NAT