如何确定为什么我的 Azure 服务器可以看到一个端口上的连接,却看不到另一个端口上的连接?

如何确定为什么我的 Azure 服务器可以看到一个端口上的连接,却看不到另一个端口上的连接?

我有一个自定义 Web 服务器,已将其上传到运行 Windows Server 的 Azure VM。它接受端口 80 上的 HTTP 连接和端口 2468 上的 websocket 连接。本地一切正常,但在 Azure 上,HTTP 连接可以连接,但 websocket 连接无法连接。

在附加到服务器的 Azure 网络安全组中,两个端口都对传入 TCP 连接开放。在服务器的 Windows 防火墙中,两个端口都对传入 TCP 连接开放。Netstat 显示我的进程正在侦听端口 2468,但当我尝试从浏览器连接时,Microsoft 网络监视器从未显示端口 2468 上有任何传入连接。

我所知道的所有确保连接正常工作的方法,我已经对两个端口都做了,并且它对端口 80 有效。我如何找出是什么阻碍了我的 websocket 连接正常工作?

注意:这是一个自定义服务器应用程序,不在 IIS、Apache 等上运行。答案应该纯粹与 Windows Server/Azure 相关。

编辑:为了澄清起见,我正尝试从家里,通过普通的互联网连接,使用普通的 Web 浏览器连接到服务器的公共 IP。

编辑2:经过进一步测试,尝试在端口 2468 上运行 HTTP 服务器并在端口 80 上运行 websocket 侦听器,我仍然能够连接到端口 80 而不是端口 2468。所以显然它与协议完全无关;即使两个防火墙在两个端口上都打开,东西也只能通过端口 80...

相关内容