gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:33:46 26 4
gpt4 key购买 nike

我已经阅读了很多关于不同 NAT 穿越技术的资料,但我仍然不太清楚它是如何工作的。

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

或者我的 NAT 会检查我的服务器数据包的来源并阻止它,因为它与来自客户端机器的原始请求不是来自同一个 IP 地址吗?

提前致谢!

最佳答案

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

如果您通过 NAT 的 IP:port 从您的内部 IP:port 发送一个数据包到任何地址,那么您的 NAT 会在您的内部 IP:port 和它的 IP:port 之间创建一个 MAP。否则,您的 NAT 之外的任何人都无法向您发送任何信息。

NAT有4种类型,

Full-cone NAT:如果您之前通过 NAT 的 IP:port 从内部 IP:port 发送数据包,那么任何外部主机都可以通过发送将数据包发送到您的 NAT 的 IP:端口。

Address restricted cone NAT: 外部主机可以通过向您的 NAT 的 IP:port 发送数据包来向您的内部 IP:port 发送数据包,前提是至少从您的内部 IP:port 发送了一个数据包之前通过您的 NAT 的 IP:port 发送到该外部主机的 IP 地址。在这里,外部主机的端口无关紧要。只有 IP 地址必须相同。

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

对称 NAT:它的映射行为与其他的略有不同。对于前 3 种类型的 NAT,从您的内部 IP:port,无论您将数据发送到哪里,它都将通过 NAT 的相同 IP:Port。但是对于不同目的地的对称 NAT,您的数据将通过 NAT 的相同 IP 但端口不同。和端口限制锥一样,如果数据先前发送到外部主机的 IP:端口,则传入数据包将被允许通过 NAT。

因此,对于您的场景,只有当您的 NAT 是 Full cone NAT 时,一些未知的人知道您的 NAT 是您向未知服务器发送数据包的公共(public) IP:端口,才能通过 UDP 传输向您发送数据。对于其他 NAT,它将被阻止,因为您没有向该外部主机发送任何数据。但是对于您的 TCP 连接,即使他们知道您的私有(private)和公共(public) IP:端口,也没有人可以向您发送任何数据,因为它们位于不同的 NAT 后面。阅读此 answer 的详细信息.

阅读有关 wiki 的详细信息.

关于tcp - 如何从未知服务器连接到客户机上开放的 tcp 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31323230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com