使用本地域名访问树莓派Flask服务报Connection refused是哪里的问题?
问题原因
这是Flask配置问题,与树莓派系统配置无关。
- Flask默认启动时如果没有显式指定
host参数,只会绑定到localhost(即127.0.0.1回环地址),仅会接收来自127.0.0.1的请求。 - 你的域名
brs-tv.local解析到的地址是127.0.1.1,不属于Flask监听的绑定地址范围,因此访问时会触发Connection refused报错,你本地用localhost(对应127.0.0.1)能连通也符合这个逻辑。
修复方法
修改你的Flask启动代码,在app.run中添加host参数,绑定到0.0.0.0即可允许所有地址的请求访问服务:
# 修改前 app.run(port=8087, debug=config.DEBUG, use_reloader=False) # 修改后 app.run(host='0.0.0.0', port=8087, debug=config.DEBUG, use_reloader=False)
修改后重启Flask服务,再执行sudo netstat -lptu可以看到监听地址变为0.0.0.0:8087,此时通过brs-tv.local、本地localhost、同局域网其他设备访问树莓派IP都可以正常连通。
内容的提问来源于stack exchange,提问作者Wes Modes
相关产品推荐
相关产品推荐

