2017-09-07 28 views
1

我有一個覆盆子pi 3,我製作了燒瓶網絡服務器,現在我運行一個網站。問題是我只能在我的pi上獲得這個網站。我可以通過在瀏覽器中輸入127.0.0.1:5000來訪問我的pi頁面。無法從其他地方得到燒瓶網站

如果我在我的Windows筆記本電腦或Android平板電腦鍵入不帶引號"my_raspbery_pi_ip :5000"在瀏覽器中,我得到

找不到網頁my_raspbery_pi_ip是192.168.0.17

[email protected]:~ $ netstat --tcp --listening --programs --numeric 
(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  
PID/Program name 
tcp  0  0 127.0.0.1:5000   0.0.0.0:*    LISTEN  2322/python  
tcp  0  0 127.0.0.1:3350   0.0.0.0:*    LISTEN  -    
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  -    
tcp  0  0 127.0.0.1:631   0.0.0.0:*    LISTEN  -    
tcp  0  0 0.0.0.0:3389   0.0.0.0:*    LISTEN  -    
tcp6  0  0 :::80     :::*     LISTEN  -    
tcp6  0  0 :::21     :::*     LISTEN  -    
tcp6  0  0 :::22     :::*     LISTEN  -    
tcp6  0  0 ::1:631     :::*     LISTEN  - 

什麼可以是問題嗎?

感謝

編輯

from flask import Flask 
from time import strftime, sleep, localtime 
from flask import render_template 
import os 

app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return render_template('home.html') 

if __name__ == "__main__": 
     app.run(host='0.0.0.0', debug=True) 
+0

你有沒有試着去'app.run(主機= '0.0.0.0')'代替'app.run()' – tuannv562

+0

我附加了以下的腳本: 如果__name__ ==「__main__」: app.run(主機=「0.0.0.0」,調試=真) 但還是「該網站無法達到」 –

+0

什麼更改後顯示'netstat'嗎? – jszakmeister

回答

0

以供其它設備能夠在你的PI到達Web服務器,你必須:

1 /讓Web服務器上運行'0.0.0.0:5000',所以它聽所有ips

2 /配置您的pi從本地接受傳入請求(在端口5000)網絡

3 /請確保您的另一臺設備從其他設備中的瀏覽器(或任何Web客戶端)連接到本地網絡

4 /發送上your_pi_ip GET請求:5000

NB:我在這裏提到端口5000,因爲它似乎是瓶子服務器使用的默認端口,但任何空閒端口都可以。

NB2:當然,這仍然只能讓你的網站從本地網絡訪問......對於公衆獲取你需要一個publicy訪問的服務器。

+0

我覺得我完成你的列表中的一切,但我覺得我沒在你的2 /線路做anythinh。你能看看這個錯誤是什麼嗎?感謝https://pastebin.com/J7rpKmbu –

+0

我恐怕不會有很大幫助在這裏 - 我是一個非常糟糕的系統管理員,上述名單是主要是一個1000呎高的畫面。但是從你的引擎收錄,它看起來像你的服務器仍在運行127.0.0.1:5000(的netstats結果第一行:「TCP 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 2978 /蟒蛇」)。 –

0

您能否提供一個代碼片段,您的Web服務器在哪裏偵聽/公開自己?

看來你的服務器正在監聽127.0.0.1。 這是回送地址,意味着它只會接收機器本地請求。

您可以使用0.0.0.0來收聽所有地址。

要做到這一點,你應該有風味的東西:

app.run(host='0.0.0.0') 
+0

添加了代碼snippter –