2016-09-06 33 views
0

我剛開始學習使用燒瓶開發網絡。據其官方教程:從網絡訪問我的網頁時出錯

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

回答

2

通過轉至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地址? –