You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask服务器无法被其他设备访问,RESTful API跨设备通信故障排查

解决Flask服务器局域网无法访问的问题

我来帮你排查这个局域网访问Flask服务器的问题,按下面的步骤一步步来,应该能解决:

1. 修改Flask的监听地址

Flask默认只绑定127.0.0.1,这个地址只有本机能访问。要让局域网内其他设备能连接,你需要让Flask监听所有可用的网络接口,也就是0.0.0.0。

修改你的启动代码:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)  # port换成你实际使用的端口号

如果你用命令行启动Flask(比如flask run),可以直接加参数:

flask run --host=0.0.0.0 --port=5000

这样设置后,Flask会响应来自任何网卡的请求,包括局域网的IP地址。

2. 检查服务器防火墙设置

这是最常见的阻塞原因:服务器的防火墙挡住了外部设备对Flask端口的访问。

  • Windows:打开「Windows Defender防火墙」→「高级设置」→添加入站规则,允许你的Flask程序(或指定端口5000)通过私有网络访问。也可以临时关闭防火墙做测试,但测试后记得重新开启并配置规则。
  • Linux:如果用ufw防火墙,运行sudo ufw allow 5000/tcp开放端口;如果用iptables,需要添加允许该端口的规则。
  • macOS:打开「系统设置」→「网络」→「防火墙」→「防火墙选项」,确保你的Python程序被允许接收连接,或者添加端口5000的允许规则。

3. 确认服务器的局域网IP正确

你使用的10.0.0.54可能不是服务器当前的有效局域网IP,先确认一下:

  • Windows:打开命令提示符,运行ipconfig,找到「以太网适配器」或「Wi-Fi」下的「IPv4地址」。
  • Linux/macOS:打开终端,运行ip addr(Linux)或ifconfig(macOS),找到对应的网络接口下的IPv4地址。

确保客户端设备访问的是这个正确的IP,比如http://正确IP:5000。

4. 测试局域网连通性

在客户端设备(手机或另一台电脑)上,先测试能不能ping通服务器:

  • 打开终端/命令提示符,运行:ping 10.0.0.54(换成你的服务器IP)
    • 如果ping不通:说明两台设备不在同一个局域网,或者路由器开启了AP隔离(可以去路由器后台关闭AP隔离功能)。
    • 如果ping通但还是访问不了Flask:回到前面的步骤,检查Flask监听地址和防火墙设置。

5. 检查端口是否正确且未被占用

确保客户端访问的端口和Flask启动时的端口完全一致(比如你用的是5000,就不能写成5001)。另外,也可以在服务器上检查端口是否被其他程序占用:

  • Windows:netstat -ano | findstr :5000
  • Linux/macOS:lsof -i :5000
    如果端口被占用,要么换一个未被占用的端口,要么关闭占用该端口的程序。

按照这些步骤排查,应该就能解决局域网设备无法访问Flask服务器的问题了。

内容的提问来源于stack exchange,提问作者Omer Setty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:08:26