无法连接到 Flask Web 服务,连接被拒绝

问题描述 投票:0回答:13

我正在尝试使用 Flask 在 Raspberry Pi 上运行一个简单的 Web 服务器。当我运行 Flask 应用程序时,它显示:

运行于 http://127.0.0.1:5000/

但是当我在笔记本电脑的 Chrome 中输入此地址时,我得到

ERR_CONNECTION_REFUSED

我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。我需要做什么才能从另一台计算机进行连接?

python flask
13个回答
218
投票

像这样运行你的应用程序:

if __name__ == '__main__':
    app.run(host='0.0.0.0')

这将使服务器外部可见。如果机器的 IP 地址是

192.168.X.X
那么,您可以从同一网络通过 5000 端口访问它。就像,http://192.168.X.X:5000


17
投票

当您通过

flask run
运行服务器时,将其更改为
flask run --host=0.0.0.0
要进行连接,请找到运行脚本的服务器的 IPV4 地址。在同一网络上,转到
http://[IPV4 address]:5000


15
投票

原因也可能在于防火墙拒绝端口 5000 上的传入连接。尝试:

sudo ufw allow 5000

8
投票
app.run(host='0.0.0.0',port=5000)

如果您以这种方式运行您的应用程序,那么您的服务器将在外部可见。 Setp 的步骤:

  1. 使用以下命令运行您的应用程序

    app.run(主机='0.0.0.0',端口=5000)

  2. 进入cmd窗口。输入 ipconfig 并获取 IPV4 地址,假设您的 IPV4 地址是 192.168.X.X

  3. 转到移动浏览器并输入 192.168.X.X:5000


5
投票

如果您的

debug = True
中有
app.run()
,那么其他机器也看不到它。在 app.run() 内指定 host
port
,不带
debug = True


2
投票

您必须运行开发服务器,以便它侦听所有接口上的请求,而不仅仅是本地接口上的请求

要求 Flask 收听

0.0.0.0:PORT_NUMBER

或您可以选择的任何其他端口


2
投票

在 MacOS 12.4 (Monterey) 上,我无法加载本地主机或我的本地 IP,但它可以与这两者一起使用:

  • 0.0.0.0
  • 127.0.0.1

如果浏览器加载的是“localhost”,只需更改浏览器中的 URL。


1
投票

与普遍认为的相反,127.0.0.1 与本地主机不同。 我通过在两端显式设置 127.0.0.1 解决了上述问题。


0
投票
  • 两台设备必须连接到同一网络。
  • 使用
    app.run(host='0.0.0.0',port=5000)
    并使用您自己的 Ipv4 运行 地址如他的 http://[您的 Ipv4 地址]:5000
  • 如果您将其与 Android 应用程序连接,请不要忘记 将 INTERNET 权限放入清单文件中。

0
投票

在 API 调用中,使用托管服务器的计算机的 IP 地址,而不是本地主机。


0
投票

如果 VPN 已打开,请将其关闭,这样您就不会收到“连接被拒绝”错误。


-1
投票

嗯,我也是来这里知道答案的,但我想我发现了问题。原因是您可能没有激活或运行 Flask,这就是它显示错误的原因。为此,您必须从终端“flask run”开始,然后您的烧瓶肯定会运行......


-2
投票

如果 VPN 已打开,则可能会出现此问题,因此请尝试将其关闭。

© www.soinside.com 2019 - 2024. All rights reserved.