从网络访问我的网页时出错

问题描述:

我刚开始学习使用烧瓶开发网络。据其官方教程:从网络访问我的网页时出错

Externally Visible Server

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

If you have the debugger disabled or trust the users on your network, you can make the server publicly available simply by adding --host=0.0.0.0 to the command line:

flask run --host=0.0.0.0 

This tells your operating system to listen on all public IPs.

然而,当我尝试到另一台设备*问0.0.0.0:5000,我得到了一个错误:ERR_CONNECTION_REFUSE。事实上,我认为这种行为是合理的,因为世界各地的人可以使用0.0.0.0:5000进行不同的测试目的,但不是教程暗示增加--host=0.0.0.0可以使我的网页“不仅可以从您自己的计算机访问,也可以从任何其他在网络中“?

所以,我的问题是:

  1. 是什么增加--host=0.0.0.0吗?
  2. 当服务器在设备A上运行时,如何访问设备B上的网页?
+1

我将此问题标记为脱离主题,因为它属于超级用户。无论如何,'--host = 0.0.0.0'只意味着服务器将侦听来自所有IP地址的连接,而不是您应该使用'http://0.0.0.0:5000'来访问它。你应该使用你的外部IP地址,并确保它在你的路由器中转发,如果你在NAT后面(或者如果你在本地网络内,你应该使用主机PC的本地IP地址)。除此之外,还有**超出了SO的范围。 – DeepSpace

通过转至0.0.0.0:5000,您不能访问另一台计算机上的Flask服务器。相反,您需要输入正在运行的计算机的IP地址。

例如,如果你在开发上有IP地址10.10.0.1一台电脑,你可以像这样运行服务器:

flask run --host=0.0.0.0 --port=5000 

这将启动服务器(上10.10.0.1:5000),并听取来自任何连接任何地方。现在,您的其他设备(例如10.10.0.2)可以通过在浏览器中转到http://10.10.0.1:5000访问该服务器。

如果您没有host=0.0.0.010.10.0.1上的服务器将仅侦听来自本身(本地主机)的连接。通过添加该参数,您可以告诉它从外部连接收听。

+0

谢谢你回答我可能偏离主题的问题,但是ERR_CONNECTION_REFUSE错误仍然存​​在。我用来检索我的外部IP地址的命令是'curl -s http://whatismijnip.nl | cut -d“”-f 5 '。 –

+0

您没有在'curl'命令中指定的端口。 'http://whatismijnip.nl:5000'是否有效?另外,主机设备上是否有阻止连接的防火墙? – Andy

+0

防火墙关闭,'http://whatismijnip.nl:5000'既不能在设备A也不能在设备B上运行:(可能我只是没有得到正确的外部IP地址? –