大家好,我希望能够在树莓派上托管API并从其他网络上的计算机访问它。
这是我的简单代码,仅供测试,因为我只需要能够使用公共ip远程访问它即可。
import flask
from flask import request
app = flask.Flask(__name__)
@app.route('/', methods=['GET'])
def home():
return '123'
app.run(host='0.0.0.0', port=3138)
因此,我在路由器选项中的与树莓派的静态内部ip链接的端口3138上创建了一个转发端口,我尝试像这样远程访问它:
答案 0 :(得分:1)
您可以做一些测试吗?
您是否尝试过首先从本地网络访问它(以确保端口已打开)?
还可以尝试在树莓上运行netcat(以排除程序无法运行):“ nc -l 3138”然后从手机访问端口(不应连接到网络)>
将您的PC设置为使用相同的IP并断开树莓派的连接(以确保端口处于打开状态)
检查您是否具有公用IP,因此它不是电信级NAT(https://en.wikipedia.org/wiki/Carrier-grade_NAT)。检查您的IP是否以10.x.x.x,172.16.x.x或192.168.x.x开头(这可能表示其CGNAT)
答案 1 :(得分:0)
不建议您在生产中使用flask开发服务器。我建议您使用适合生产的WSGI(您可以使用服务生):
1. pip install waitress
2. create a file server.py (or whatever name suites you)
#content of server.py
from waitress import serve
import main #import flask app main file
serve(main.app, host='0.0.0.0', port=8080)
3. run server.py
4. access you app via:
http://<public_ip>:8080