当前位置: 首页>>技术教程>>正文


networking – 如何允许远程连接到 Flask?

,

问题描述

在系统内部,在虚拟机上运行,​​我可以在 127.0.0.1:5000 访问正在运行的服务器。

虽然 vm 的 ‘remote’ 地址是 192.168.56.101(ping 和 ssh 工作正常),但我无法从虚拟机或本地访问具有 192.168.50.101:5000 的服务器。

我猜有些东西阻止了远程连接。

这是/etc/network/interfaces:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0

ufw 处于非活动状态。

我该如何解决这个问题?

最佳回答

首先 – 通过检查以下输出,确保您的 HTTP 服务器正在侦听 192.168.50.101:5000 或任何地方( 0.0.0.0:5000 ):

netstat -tupln | grep ':5000'

如果不是,请咨询 Flask’s documentation 以绑定到 localhost 以外的地址。

如果是,请使用 iptables 允许流量:

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

来自 Flask 的文档:

\\n

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

\\n

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

\\n

app.run(host='0.0.0.0')\\n

\\n

次佳回答

最好的方法

flask run --host=0.0.0.0

第三种回答

我刚遇到同样的问题。为了解决它,我更新了运行应用程序的方式:

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

使用 host=0.0.0.0 让我可以通过本地网络访问我的应用程序。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12903.html,未经允许,请勿转载。