Amazon ec2 无法从Amazon EC2服务器接收UDP数据包

Amazon ec2 无法从Amazon EC2服务器接收UDP数据包,amazon-ec2,udp,Amazon Ec2,Udp,我有一个AmazonEC2服务器,所有必要的端口都已打开并配置了防火墙。服务器应用程序在特定端口上侦听客户端数据并使用ack进行响应。但它看起来像服务器接收数据,然后发送ack,但客户端没有接收到它。当我尝试在两个不同的ec2实例上启动服务器和客户端应用程序时,它可以工作,但是如果客户端是在Amamzon之外的某个地方启动的,那么ack数据包永远不会到达它 有什么想法吗 谢谢 基本故障排除: 它看起来像是服务器接收数据并用ack进行响应 呃,"像"??您是否在服务器上运行TCPDump以验证响应

我有一个AmazonEC2服务器,所有必要的端口都已打开并配置了防火墙。服务器应用程序在特定端口上侦听客户端数据并使用ack进行响应。但它看起来像服务器接收数据,然后发送ack,但客户端没有接收到它。当我尝试在两个不同的ec2实例上启动服务器和客户端应用程序时,它可以工作,但是如果客户端是在Amamzon之外的某个地方启动的,那么ack数据包永远不会到达它

有什么想法吗

谢谢

基本故障排除:

它看起来像是服务器接收数据并用ack进行响应

呃,"像"??您是否在服务器上运行TCPDump以验证响应是否已实际发送?(并验证是否已将其发送到正确的IP/端口等)

您是否在客户端上运行TCPDump以查看数据包是否已被操作系统接收,但不知何故未发送到应用程序?(
tcpdump-ni eth0 udp端口9999

您正在使用AWS专有网络吗?(VPC防火墙可以阻止传出数据包)

是否涉及其他防火墙?(例如,一个家庭路由器进行NAT/STUN/等)你能在亚马逊以外的另一台“裸机”服务器上试用吗

您能否使用
netcat
的UDP模式来验证它是否不是特定于您的代码

您是否可以在其他端口上使用netcat的UDP模式来验证它不是特定于一个UDP端口的?

基本故障排除:

它看起来像是服务器接收数据并用ack进行响应

呃,"像"??您是否在服务器上运行TCPDump以验证响应是否已实际发送?(并验证是否已将其发送到正确的IP/端口等)

您是否在客户端上运行TCPDump以查看数据包是否已被操作系统接收,但不知何故未发送到应用程序?(
tcpdump-ni eth0 udp端口9999

您正在使用AWS专有网络吗?(VPC防火墙可以阻止传出数据包)

是否涉及其他防火墙?(例如,一个家庭路由器进行NAT/STUN/等)你能在亚马逊以外的另一台“裸机”服务器上试用吗

您能否使用
netcat
的UDP模式来验证它是否不是特定于您的代码


您可以在其他端口上使用netcat的UDP模式来验证它不是特定于一个UDP端口吗?

这是一个Windows服务器。VPC已禁用。正如我所说,它在两台亚马逊服务器和两台非亚马逊计算机之间工作。我在客户端有一个防火墙,但我认为这个防火墙应该将所有“响应”udp数据包传回,对吗?换句话说,我正在从本地地址为192.168.1.10:50000的客户端向全局地址为54.54.54.54:44444的服务器发送udp数据包。。。所以,我的路由器用我的本地地址创建记录,并分配临时全局地址,比如33.33.33.33:56784。现在,从服务器54.54.54.54:44444到33.33.33.33:56784的所有数据包都将转发到客户端的本地地址,即使路由器防火墙或我的计算机防火墙上的所有端口都已关闭。这是正确的吗?是的,这是他们通常的工作方式,但从不假设任何事情。家庭路由器在实践中差别很大。一些ISP有很短的超时时间(一两分钟)来识别响应,一些ISP在有几十个连接时会删除响应,等等。此外,一些家庭ISP会为您过滤各种“危险的”UDP端口。感谢您的解释。但是如果我不这么认为,那么我如何将数据发送回客户机呢?换句话说,您说过,在某些情况下,我将无法返回任何内容,这意味着双工udp通信是不可能的,而且这种配置将无法使用任何基于udp的协议。这是真的吗?但在这种情况下,像Skype这样的应用程序是如何工作的?就我而言,我使用服务器只是为了打孔,但在某些情况下,甚至clientserver udp通信也不能正常工作:(@Tutankhamen)你解决了这个问题吗?如果解决了,怎么解决?这是一个Windows服务器。VPC被禁用。正如我所说,它在两台亚马逊服务器之间和两台非亚马逊计算机之间工作。我在客户端有一个防火墙,但我认为这个防火墙应该通过所有“响应”udp数据包返回,对吗?换句话说,我正在从本地地址为192.168.1.10:50000的客户端向全局地址为54.54.54.54:44444的服务器发送udp数据包…因此,我的路由器使用本地地址创建记录并分配临时全局地址,类似于33.33.33.33:56784。现在,所有数据包都从服务器54.54.54:4444444发送到33。33.33.33:56784将被转发到客户端的本地地址,即使路由器防火墙或我的计算机防火墙上的所有端口都已关闭。是否正确?是的,它们通常是这样工作的,但从不假设任何情况。家庭路由器在实践中变化很大。有些路由器有很短的超时时间(一两分钟)为了识别响应,一些家庭ISP会在有几十个以上的连接时删除响应,等等。此外,一些家庭ISP会过滤各种“危险的”UDP端口。谢谢您的解释。但如果我不这么认为,那么我如何将数据发送回客户端?换句话说,您说在某些情况下,我将无法发送回任何内容,这意味着双工UDP通信是不可能的,而且这种配置将无法与任何基于UDP的协议一起工作。这是真的吗e?但在这种情况下,像Skype这样的应用程序是如何工作的?对我来说,我使用sever只是为了打孔,但在某些情况下,甚至clientserver udp通信也不能正常工作:(@Tutankhamen)你解决了这个问题吗?如果是,怎么解决?