How to allow remote connections to Flask?

Solution 1:

First of all - make sure that your HTTP server is listening on 192.168.50.101:5000 or everywhere (0.0.0.0:5000) by checking the output of:

netstat -tupln | grep ':5000'

If it isn't, consult Flask's documentation to bind to an address other than localhost.

If it is, allow the traffic using iptables:

iptables -I INPUT -p tcp --dport 5000 -j ACCEPT

From Flask's documentation:

Externally Visible Server If you run the server you will notice that the server is only accessible from your own computer, not from any other in the network. This is the default because in debugging mode a user of the application can execute arbitrary Python code on your computer.

If you have debug disabled or trust the users on your network, you can make the server publicly available simply by changing the call of the run() method to look like this:

app.run(host='0.0.0.0')

Solution 2:

I've just had the same issue. To solve it, i updated the way to run the application :

 app.run(debug=True,host='0.0.0.0')

Using host=0.0.0.0 let me access my app through my local network.

Solution 3:

The best way to do it

flask run --host=0.0.0.0