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

时间:2018-03-16 19:44:53

标签: windows sockets networking tcp wireshark

我尝试在我的计算机192.168.0.113的端口5000上运行一个带有Flask in Python的简单的1页网站,该网站运行的是Windows 10.在同一台计算机上,我可以使用{{1在网络浏览器中。

我尝试在同一局域网上使用另一台计算机localhost:5000来查看该网站。但是,即使192.168.0.134的防火墙完全关闭,192.168.0.113也从未使用SYN/ACK数据包回复来自SYN的{​​{1}}数据包。此图像是捕获的数据包流:

image

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

我从之前的一些帖子(特别是this one)中注意到,可以通过禁用TCP窗口缩放和TCP时间戳来解决问题。我检查了192.168.0.113的{​​{1}}并注意到TCP窗口缩放已经是192.168.0.113,TCP时间戳是netsh。我试图禁用它们,并尝试禁用其中一个。但是,所有组合都失败了,192.168.0.113仍然没有发送disabled个数据包来响应来自normal的{​​{1}}个数据包。

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

1 个答案:

答案 0 :(得分:1)

更广泛地说,您只是在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