无法连接到本地服务器

无法连接到本地服务器

我正在将客户端/服务器应用程序从 Linux 迁移到 Windows,虽然 Linux 版本的服务器运行良好,但 Windows 版本无法通过本地主机连接。当程序尝试协商连接时,我从 netstat -a 看到以下内容(省略了不相关的行)。

活动连接

  原始本地地址外部地址状态
  TCP 0.0.0.0:9000 mgibson-dev:0 正在监听
  TCP 0.0.0.0:9002 mgibson-dev:0 正在监听
  TCP 127.0.0.1:9001 mgibson-dev:0 正在监听
  TCP [::1]:52403 mgibson-dev:9001 SYN_SENT
  TCP [::1]:52404 mgibson-dev:9001 SYN_SENT

看来服务器正在尝试通过 IPv6 进行响应。这是正常的吗?应该可以正常工作吗?我是不是发现了问题,还是只是在转移视线?

答案1

TCP    [::1]:52404            mgibson-dev:9001       SYN_SENT

这一行似乎意味着您已尝试在端口 9001 上启动与“mgibson-dev”的 IPv6 连接。SYN_SENT 位意味着您已发送了 TCP SYN 数据包但未收到响应。

如果您没有在 TCP 9001 上监听 ipv6 本地主机地址,我最初的猜测是您在某处有一个防火墙,它会在某处丢弃返回数据包。通常,如果端口关闭,您会期望收到 RST 数据包,然后它会知道端口未打开并尝试 ipv4 地址。由于 RST 数据包没有通过,它只是挂起等待响应并最终超时。

简而言之,检查您的防火墙以允许来自本地主机的所有入站流量(包括 ipv4 和 ipv6)。

答案2

嗯,服务器没有尝试响应,SYN_SENT 是连接启动状态,所以它是一个客户端。看起来客户端无法从主机获取任何返回值mgibson-dev。你确定mgibson-dev解析为 吗127.0.0.1?你的服务器应用程序只监听127.0.0.1,并且可能mgibson-dev解析为任何其他地址,这可能是问题的根源。

相关内容