0

我正在尝试从对称 nat中的客户端将UDP数据包发送到公共服务器。我能够向服务器发送数据包但是我希望服务器在对称锥形 nat 下向客户端发送数据包。我该如何解决这个问题?请帮我。

4

1 回答 1

0

使服务器将数据包发送到客户端的外部 IP+端口,服务器在客户端的第一个数据包到达时检测到该端口。

基本上,路由器允许来自与其连接的设备的任何传出 UDP 流量,并阻止所有传入的 UDP 流量。但是,每当发送 UDP 数据包时,它都会维护一个源和目标 IP+端口表。它允许来自路由器外部设备的回复,前提是路由器必须具有外部设备 IP+端口的条目。

因此,您现在只需要在表中使用此映射即可。只需让您的服务器从它从客户端接收的数据包中检测客户端的外部 IP+端口,然后让服务器在该外部 IP+端口上将数据包发送回客户端。

这将在路由器的防火墙上打一个洞,即路由器防火墙现在将允许传入的 UDP 数据包,因为它的表中已经包含一个条目。这个过程称为打孔。

您可以在发布的各种 RFC 中了解所有这些 NAT 穿越过程。

于 2014-08-22T17:05:50.657 回答