如何从未知服务器连接到客户端计算机上的开放TCP端口?

Ric*_*cky 3 ip p2p tcp ports nat

我已经阅读了很多有关不同的NAT遍历技术的文章,但是我仍然不清楚它是如何工作的。

如果我在客户端计算机上打开一个TCP端口并将请求发送到任意不存在的服务器(不会响应),我的客户端NAT现在将具有一个开放通道,对吗?如果我知道客户端的公用IP和专用IP以及端口号,那么我可以使用其他IP地址的另一台(未知)计算机访问该客户端端口吗?

还是我的NAT是否检查我的服务器数据包的来源并阻止它,因为它与来自客户端计算机的原始请求的IP地址不同?

提前致谢!

Tah*_*lil 5

要回答您的问题,您需要对NAT的映射和过滤行为有所了解。首先让我说说有关NAT映射行为的信息,

如果您将内部IP:端口的数据包通过NAT的IP:端口发送到任何地址,则NAT将在内部IP:端口及其IP:端口之间创建MAP。否则,没有人可以从NAT之外发送任何信息。

NAT有4种类型,

全锥状NAT:如果您以前是通过NAT的IP:端口从内部IP:端口发送数据包的,那么任何外部主机都可以通过将数据包发送到NAT的IP:端口将数据包发送到内部IP:端口。

地址受限的锥体NAT:仅当从内部IP:端口发送的数据包至少以前已经通过您的内部IP发送到该外部主机的IP地址时,外部主机才能通过将数据包发送到NAT的IP:端口将数据包发送到内部IP:端口NAT的IP:端口。在这里,外部主机的端口无关紧要。仅IP地址必须相同。

端口限制锥形NAT:与这一次限制地址相同,只是外部主机的端口很重要。至少以前从内部IP:Port通过NAT的IP:Port发送到该外部主机的IP:Port的数据包,将允许该外部主机通过NAT的IP:port从其IP:端口向您发送数据包。

对称NAT:它的映射行为与其他行为略有不同。对于前三种NAT,无论您将数据发送到何处,都将从内部IP:port穿过NAT的相同IP:Port。但是对于针对不同目的地的对称NAT,您的数据将通过NAT的相同IP但端口不同。与端口受限锥一样,如果先前已将数据发送到该外部主机的IP:端口,则将允许传入数据包通过NAT。

因此,对于您的情况而言,只有当您的NAT是全锥NAT时,某个未知的人才知道您的NAT是您将数据包从其发送到未知服务器的公共IP:端口可以通过UDP传输向您发送数据。对于其他NAT,它将被阻止,因为您没有向该外部主机发送任何数据。但是对于您的TCP连接,即使他们知道您的专用和公用IP:端口(因为它们位于不同的NAT之后),也没有人可以向您发送任何数据。阅读详细信息,形成此答案

阅读Wiki上的详细信息。