Python 将域移植到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启动应用程序的一行代码: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
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。