我的目标是通过我的公共 IP 在我的 EC2 实例(在我的 eth0 私有 IP 上)上的特定端口上接收/发送 UDP 数据包流量。
我之所以问这个问题,是因为我已经将安全组设置为允许公共 IP 上的所有入站/出站流量。即使我将安全组设置为所有流量类别,但通往公共 IP 的端口也并非全部打开。netcat -zv publicIP 1-80
在本地机器上运行后,我可以看到只有端口 22 和 80 是打开的?在更高的范围 +49k 中,没有一个是打开的。是不是我配置错了?如果是这样,还应该配置什么才能允许端口 XXXXX 上的 UDP 流量通过,还是这是不可能的?谢谢!
答案1
运行netcat -zv publicIP 1-80
将仅显示开放的端口TCP
,而不是 UDP。由于使用 netcat 或 nmap 测试开放的 UDP 端口比较棘手,我建议尝试以下步骤来确认您的服务器正在侦听特定的 UDP 端口,并且可以远程接受到该 UDP 端口的连接。
停止在特定端口上监听的服务并运行
netcat -luv port
,将 port 替换为您正在测试的服务的端口号。这将使服务器在指定的端口号上监听。从远程主机运行
echo "test" | netcat -vu publicIP port
,将 publicIP 和 port 分别替换为 IP 地址和端口号。如果第 (1) 部分中的服务器上显示文本“test”,则一切正常。否则,请检查您的安全组和本地主机防火墙规则。您还可以使用它tcpdump
进行故障排除。
答案2
结果是客户端发送 UDP 数据包的公司网络的端口被阻止了。