Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将域移植到raspberry pi服务器_Python_Linux_Networking_Flask_Raspberry Pi - Fatal编程技术网

Python 将域移植到raspberry pi服务器

Python 将域移植到raspberry pi服务器,python,linux,networking,flask,raspberry-pi,Python,Linux,Networking,Flask,Raspberry Pi,我正在运行安装在Rasperry pi上的Flask应用程序,我可以通过内部IP和端口8080(192.168.0.21:8080)的本地网络访问它。我现在正试图从网络外部访问它 我有一个netgear路由器,我已经将其设置为将端口8080转发到192.168.0.21(我的raspberry pi的内部IP)。当我访问aaa.bb.cc.dd:8080(我的外部IP)时,我没有看到任何东西,我在这里做错了什么 这是我用来从我的raspberry pi启动应用程序的一行代码: app.run(h

我正在运行安装在Rasperry pi上的Flask应用程序,我可以通过内部IP和端口8080(192.168.0.21:8080)的本地网络访问它。我现在正试图从网络外部访问它

我有一个netgear路由器,我已经将其设置为将端口8080转发到192.168.0.21(我的raspberry pi的内部IP)。当我访问aaa.bb.cc.dd:8080(我的外部IP)时,我没有看到任何东西,我在这里做错了什么

这是我用来从我的raspberry pi启动应用程序的一行代码:

app.run(host='192.168.0.21', port=8080, debug=True)
理想情况下,我希望在我自己的域名上有一个子域名指向这个应用程序,我基本上只是将该子域名的a记录指向我的外部IP吗

更新

此后,我尝试了几个不同的端口(即8910、87、22),并将这些端口转发到我的raspberry pi的内部IP,但仍然无济于事:/我甚至后退了一步,制作了一个超级简单的hello world应用程序,但我仍然没有任何运气

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'hello world'

if '__name__' == '__main__':
    app.run(host='0.0.0.0', port=8910, debug=True)
我的路由器转发设置如下:

然后我将基本上转到aa.bb.cc.dd:8910(其中aa.bb.cc.dd等于我的外部ip)

我还尝试将端口8000移植到80,然后将其转发到pi,但仍然没有结果。

解决方案

我最终在raspberry pi的静态IP地址将外部端口80移植到内部端口8000,然后在端口8000上运行raspberry pi服务器。然后我把我的子域转发到我的外部IP地址,瞧


尝试
app.run(host='0.0.0',port=8080,debug=True)
尽管出于安全原因,您应该将
debug
设置为
False
。我尝试了这个,但我仍然可以通过本地网络访问,但不能通过外部连接的设备(我的iphone没有连接到wifi)。我的ISP是否可能阻止了特定的端口?有可能,但不太可能阻止8910端口。此外,这个问题与flask和python无关,它与路由器/ISP非常相关。请尝试
app.run(host='0.0.0.0',port=8080,debug=True)
尽管出于安全原因,您应该将
调试
设置为
错误
。我尝试了此操作,但仍然可以通过本地网络访问,但不能通过外部连接的设备(我的iphone未连接到wifi)。我的ISP是否可能阻止了特定的端口?有可能,但不太可能阻止8910端口。此外,这个问题与flask和python无关,它非常特定于路由器/ISP。