Windows 应用程序侦听 IPv4 UDP,但不侦听 IPv6 UDP

Windows 应用程序侦听 IPv4 UDP,但不侦听 IPv6 UDP

我已经设置了一个 Windows Server 2022 AWS EC2 实例。我安装并测试了一个仅在 Windows 上运行的应用程序。

设置 EC2 实例时,我同时启用了 IPv4 和 IPv6。AWS 需要 IPv4,而我的计算机只有 IPv4 IP 地址(WAN)。

但是,该软件仅监听 IPv4 地址,而不监听 IPv6 地址。(使用“netstat -aon”检查)。

我使用了 2 个端口。一个是 TCP 端口,另一个是 UDP(两个端口号都不同)。

我只需要测试 IPv6 的传入连接。

由于它仅在 IPv4 上监听,因此我使用 Windows 服务器上的 PortProxy 将 IPv6 IP 映射到 IPv4 IP。

netsh interface portproxy add v6tov4 listenaddress=:: listenport=1234 connectaddress=127.0.0.1 connectport=1234

现在,它可以映射来自 IPv6 地址(例如远程 IPv6 连接)的传入数据并将其代理到 IPv4 IP 地址(内部),并且运行良好。

但是当我对 UDP 执行相同操作时,它不起作用。根据我的研究,UDP 不适用于 PortProxy。

有人知道如何将 UDP 从 IPv6 代理到 IPv4 IP 吗?

或者,我如何在不使用代理的情况下在本机执行此操作?是软件导致端口仅侦听 IPv4(编写该软件的软件公司需要在其代码中启用 IPv6),还是我在服务器上执行了某些操作导致它不侦听 IPv6?

答案1

查看 AWS 文档,了解如何为接口分配 IPv6 地址,以及检查其是否具有 IPv6

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-instance-addressing.html#working-with-ip-addresses

为实例分配 IPv6 地址 如果您的 VPC 和子网具有与之关联的 IPv6 CIDR 块,您可以在启动期间或启动后为实例分配 IPv6 地址。IPv6 地址是从子网的 IPv6 地址范围分配的,并分配给设备索引为 eth0 的网络接口。在实例启动期间分配 IPv6 地址 按照步骤启动实例,并在配置网络设置时选择自动分配 IPv6 IP 选项

相关内容