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

Yas*_*har 42 python flask

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

http://127.0.0.1:5000/上运行

但是,当我在Chrome中的笔记本电脑上输入此地址时,我明白了

ERR_CONNECTION_REFUSED

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

sal*_*hed 110

像这样运行你的应用:

if __name__ == '__main__':
    app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

它将使服务器在外部可见.如果是该机器的IP地址,192.168.X.X则可以从同一网络以5000端口访问该IP地址.比如,http://192.168.XX:5000

  • 由于某种原因 `flask run --host=0.0.0.0` 可以工作,但是 `app.run(host='0.0.0.0',port=5000)` 和 `flask run` 不能在 Windows 上运行。 (6认同)
  • 如果您想从同一台机器上访问该应用程序,则仍然使用`http://127.0.0.1:5000` (3认同)
  • 对于那些正在寻找如何使用socketio的用户:socketio.run(app,host ='0.0.0.0') (3认同)
  • @Sankalp另一种方法是运行 `python <name of your serverfile>.py` - 这将使用您提供的参数运行服务器(为什么?只是因为这次 `__name__` 是 `'__main__'`) 。 (3认同)
  • @Sankalp我对你的问题的推断是,当你运行`flask run`时,`__name__`不是`'__main__'`。因此,服务器启动,但不是按照您在“app.run()”中传递的参数启动。在 `flask run --host=0.0.0.0` 中,明确指定了主机。 (2认同)

Art*_*sev 8

一个原因也可能是防火墙拒绝端口5000上的传入连接.尝试:

sudo ufw allow 5000
Run Code Online (Sandbox Code Playgroud)

  • Raspberry Pi 没有附带 `ufw` (2认同)

Sti*_*000 6

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

  • 由于某种原因 `flask run --host=0.0.0.0` 可以工作,但是 `app.run(host='0.0.0.0',port=5000)` 和 `flask run` 不能在 Windows 上运行。 (3认同)

Muh*_*man 6

app.run(host='0.0.0.0',port=5000)
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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


mou*_*rat 5

如果你有你的debug = True内部app.run(),那么它也不会被其他机器看到。在内部指定主机端口app.run()不带debug = True.