代码之家  ›  专栏  ›  技术社区  ›  Velocedge

信号器:适用于“真实”IP,但不适用于NAT

  •  2
  • Velocedge  · 技术社区  · 7 年前

    我有一个使用VS2015编写的自托管C#Windows服务,其中包括SignalR,并使用版本2.2.2和jquery 3.2.1。它适用于所有使用“真实”(可寻址)IP地址的系统。但是NAT背后的计算机无法做到这一点。他们得到一个“信号器:加载集线器时出错。请确保集线器引用正确,例如“错误”。如果您使用URL http://servername/signal/hubs ,则会出现“服务器响应时间过长”错误。(具有真实IP的客户端可以查看源代码)。

    我可以检查、做什么、发布什么来找出为什么这对NAT客户不起作用?

    编辑:我让其他人对此进行了测试,发现我们两个使用U-Verse的人存在连接问题。然而,公司NAT上的主要办公室人员正在连接。因此,这可能是U-Verse路由器/防火墙中阻止连接的东西。但为什么它会阻塞端口80和443?信号器在连接上做了什么不同寻常的事情吗?

    编辑#2:我在服务器上运行了Wireshark。它接收来自NAT客户端的请求,但不断尝试将响应发送到端口80。我不太擅长理解Wireshark或查找什么。显然,有些东西工作不正常。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Velocedge    7 年前

    这对我来说相当愚蠢。我只为没有安装IIS的Signaler使用服务器…显然,为了在防火墙中打开端口80和443,您需要这样做。所有18台服务器上的防火墙都设置为允许从我的域的任何IP地址进行访问。当使用NAT时,它使用完全不同的IP,因此被停止。我在信号服务器上打开了80/443,一切都很好……哦!