Reputation: 825
I tried to run a simple 1-page site with Flask in Python on port 5000 of my computer 192.168.0.113
, which is running Windows 10. On the same computer, I can view the site by using localhost:5000
in a web browser.
I tried to use another computer 192.168.0.134
on the same LAN to view the site. However, 192.168.0.113
never replied with a SYN/ACK
packet to the SYN
packet from 192.168.0.134
, even if the firewall of 192.168.0.113
is completely turned off. This image is the captured flow of the packets:
If I did it reversely (i.e. 192.168.0.134
as the server to host the site, and 192.168.0.113
tried to connect as the client), then 192.168.0.113
is able to connect.
I noted from some previous posts (especially this one) that the problem can be solved by disabling TCP window scaling and TCP timestamps. I checked in netsh
of 192.168.0.113
and noted that TCP window scaling had already been disabled
and TCP timestamps was normal
. I tried to disable both of them, and also tried to disable just one of them. However, all combinations failed and 192.168.0.113
still wonn't sent SYN/ACK
packets in response to SYN
packets from 192.168.0.134
.
How can I get this fixed?
Upvotes: 1
Views: 2530
Reputation: 3724
More broadly you are only showing traffic going in one direction in the Wireshark capture.
You probably are not listening on an external IP addresses. The Flask application takes an IP address argument to listen on, if it is localhost
or 127.0.0.1
it will not respond to external connection. Set this to 0.0.0.0
to listen on all IP addresses. Verify this by running the command netstat -a -b
to see which IP address you application is listening on.
The Flask Quick start page goes through this (see Externally Visible Server)
flask run --host=0.0.0.0
Upvotes: 1