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.134
的 SYN
数据包,即使 192.168.0.113
的防火墙已完全关闭。此图像是捕获的数据包流:
如果我反向操作(即 192.168.0.134
作为托管站点的服务器,而 192.168.0.113
尝试作为客户端连接),则 192.168.0.113
能够连接。
我从之前的一些帖子(尤其是 this one)中注意到,可以通过禁用 TCP window 缩放和 TCP 时间戳来解决该问题。我检查了 192.168.0.113
的 netsh
并注意到 TCP window 缩放已经 disabled
并且 TCP 时间戳是 normal
。我试图禁用它们两个,也试图禁用其中一个。但是,所有组合都失败了,192.168.0.113
仍然不会发送 SYN/ACK
数据包以响应来自 192.168.0.134
.
的 SYN
数据包
我怎样才能解决这个问题?
更广泛地说,您在 Wireshark 捕获中仅显示了一个方向的流量。
您可能没有在侦听外部 IP 地址。 Flask 应用程序需要一个 IP 地址参数来监听,如果它是 localhost
或 127.0.0.1
它将不会响应外部连接。将此设置为 0.0.0.0
以侦听所有 IP 地址。通过 运行 命令 netstat -a -b
验证这一点,以查看您的应用程序正在侦听哪个 IP 地址。
Flask Quick start 页面经过此(请参阅外部可见服务器)
flask run --host=0.0.0.0
我试图 运行 一个简单的单页站点,在 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.134
的 SYN
数据包,即使 192.168.0.113
的防火墙已完全关闭。此图像是捕获的数据包流:
如果我反向操作(即 192.168.0.134
作为托管站点的服务器,而 192.168.0.113
尝试作为客户端连接),则 192.168.0.113
能够连接。
我从之前的一些帖子(尤其是 this one)中注意到,可以通过禁用 TCP window 缩放和 TCP 时间戳来解决该问题。我检查了 192.168.0.113
的 netsh
并注意到 TCP window 缩放已经 disabled
并且 TCP 时间戳是 normal
。我试图禁用它们两个,也试图禁用其中一个。但是,所有组合都失败了,192.168.0.113
仍然不会发送 SYN/ACK
数据包以响应来自 192.168.0.134
.
SYN
数据包
我怎样才能解决这个问题?
更广泛地说,您在 Wireshark 捕获中仅显示了一个方向的流量。
您可能没有在侦听外部 IP 地址。 Flask 应用程序需要一个 IP 地址参数来监听,如果它是 localhost
或 127.0.0.1
它将不会响应外部连接。将此设置为 0.0.0.0
以侦听所有 IP 地址。通过 运行 命令 netstat -a -b
验证这一点,以查看您的应用程序正在侦听哪个 IP 地址。
Flask Quick start 页面经过此(请参阅外部可见服务器)
flask run --host=0.0.0.0