我尝试在我的计算机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}}数据包。此图像是捕获的数据包流:
如果我反向(即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}}个数据包。
我怎样才能解决这个问题?
答案 0 :(得分:1)
更广泛地说,您只是在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