Windows 10 - SYN/ACK 数据包未发送以响应 SYN 数据包

Windows 10 - SYN/ACK packet not sent in response to SYN packets

我试图 运行 一个简单的单页站点,在 Python 中使用 Flask 在我的计算机 192.168.0.113 端口 5000 上 运行ning [=46] =] 10. 在同一台计算机上,我可以在网络浏览器中使用 localhost:5000 查看该站点。

我尝试使用同一 LAN 中的另一台计算机 192.168.0.134 来查看站点。然而,192.168.0.113 从未用 SYN/ACK 数据包回复来自 192.168.0.134SYN 数据包,即使 192.168.0.113 的防火墙已完全关闭。此图像是捕获的数据包流:

如果我反向操作(即 192.168.0.134 作为托管站点的服务器,而 192.168.0.113 尝试作为客户端连接),则 192.168.0.113 能够连接。

我从之前的一些帖子(尤其是 this one)中注意到,可以通过禁用 TCP window 缩放和 TCP 时间戳来解决该问题。我检查了 192.168.0.113netsh 并注意到 TCP window 缩放已经 disabled 并且 TCP 时间戳是 normal。我试图禁用它们两个,也试图禁用其中一个。但是,所有组合都失败了,192.168.0.113 仍然不会发送 SYN/ACK 数据包以响应来自 192.168.0.134.

SYN 数据包

我怎样才能解决这个问题?

更广泛地说,您在 Wireshark 捕获中仅显示了一个方向的流量。

您可能没有在侦听外部 IP 地址。 Flask 应用程序需要一个 IP 地址参数来监听,如果它是 localhost127.0.0.1 它将不会响应外部连接。将此设置为 0.0.0.0 以侦听所有 IP 地址。通过 运行 命令 netstat -a -b 验证这一点,以查看您的应用程序正在侦听哪个 IP 地址。

Flask Quick start 页面经过此(请参阅外部可见服务器)

flask run --host=0.0.0.0