我正在尝试使用 Flask 在 Raspberry Pi 上运行一个简单的 Web 服务器。当我运行 Flask 应用程序时,它显示:
但是当我在笔记本电脑的 Chrome 中输入此地址时,我得到
ERR_CONNECTION_REFUSED
我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。我需要做什么才能从另一台计算机进行连接?
像这样运行你的应用程序:
if __name__ == '__main__':
app.run(host='0.0.0.0')
这将使服务器外部可见。如果机器的 IP 地址是
192.168.X.X
那么,您可以从同一网络通过 5000 端口访问它。就像,http://192.168.X.X:5000
当您通过
flask run
运行服务器时,将其更改为 flask run --host=0.0.0.0
要进行连接,请找到运行脚本的服务器的 IPV4 地址。在同一网络上,转到http://[IPV4 address]:5000
原因也可能在于防火墙拒绝端口 5000 上的传入连接。尝试:
sudo ufw allow 5000
app.run(host='0.0.0.0',port=5000)
如果您以这种方式运行您的应用程序,那么您的服务器将在外部可见。 Setp 的步骤:
使用以下命令运行您的应用程序
app.run(主机='0.0.0.0',端口=5000)
进入cmd窗口。输入 ipconfig 并获取 IPV4 地址,假设您的 IPV4 地址是 192.168.X.X
转到移动浏览器并输入 192.168.X.X:5000
如果您的
debug = True
中有 app.run()
,那么其他机器也看不到它。在 app.run()
内指定 host 和 port,不带
debug = True
。
您必须运行开发服务器,以便它侦听所有接口上的请求,而不仅仅是本地接口上的请求
要求 Flask 收听
0.0.0.0:PORT_NUMBER
或您可以选择的任何其他端口
在 MacOS 12.4 (Monterey) 上,我无法加载本地主机或我的本地 IP,但它可以与这两者一起使用:
如果浏览器加载的是“localhost”,只需更改浏览器中的 URL。
与普遍认为的相反,127.0.0.1 与本地主机不同。 我通过在两端显式设置 127.0.0.1 解决了上述问题。
app.run(host='0.0.0.0',port=5000)
并使用您自己的 Ipv4 运行
地址如他的 http://[您的 Ipv4 地址]:5000在 API 调用中,使用托管服务器的计算机的 IP 地址,而不是本地主机。
如果 VPN 已打开,请将其关闭,这样您就不会收到“连接被拒绝”错误。
嗯,我也是来这里知道答案的,但我想我发现了问题。原因是您可能没有激活或运行 Flask,这就是它显示错误的原因。为此,您必须从终端“flask run”开始,然后您的烧瓶肯定会运行......
如果 VPN 已打开,则可能会出现此问题,因此请尝试将其关闭。