2017-09-07 25 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 –