Ily*_*gin 37 firewall networking
在系统内部,在虚拟机上运行,我可以在127.0.0.1:5000.
尽管虚拟机的“远程”地址是 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
Run Code Online (Sandbox Code Playgroud)
ufw 处于非活动状态。
我该如何解决这个问题?
Mar*_*ski 58
首先 -通过检查以下输出,确保您的 HTTP 服务器正在侦听 192.168.50.101:5000或无处不在 ( 0.0.0.0:5000):
netstat -tupln | grep ':5000'
Run Code Online (Sandbox Code Playgroud)
如果不是,请查阅Flask 的文档以绑定到 localhost 以外的地址。
如果是,请使用 iptables 允许流量:
iptables -I INPUT -p tcp --dport 5000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
来自 Flask 的文档:
外部可见服务器 如果您运行该服务器,您会注意到该服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意 Python 代码。
如果您已禁用调试或信任网络上的用户,则只需将
run()方法调用更改为如下所示,即可使服务器公开可用 :Run Code Online (Sandbox Code Playgroud)app.run(host='0.0.0.0')
小智 5
我刚刚遇到了同样的问题。为了解决这个问题,我更新了运行应用程序的方式:
app.run(debug=True,host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)
使用 host=0.0.0.0 可以让我通过本地网络访问我的应用程序。
| 归档时间: |
|
| 查看次数: |
109692 次 |
| 最近记录: |