无法从局域网设备访问Windows 11上运行的Flask API(端口5000)
局域网内无法访问Flask API的排查与解决步骤
确认网络基础配置
- 打开命令提示符执行
ipconfig,核实开发电脑当前生效的IPv4地址确实是192.168.0.100,避免路由器自动分配了新IP(即使设置了IP预留也需确认)。 - 确保手机、测试笔记本和开发电脑连接同一局域网:手机禁用移动数据,所有设备连同一WiFi或有线网段。
- 打开命令提示符执行
验证Flask服务绑定状态
- 启动Flask时,使用命令
flask run --host=0.0.0.0 --port=5000,或在代码中明确设置app.run(host='0.0.0.0', port=5000)。 - 执行
netstat -ano | findstr :5000,检查输出的监听地址是否包含0.0.0.0:5000,若仅显示127.0.0.1:5000,说明服务未正确绑定到所有网卡。
- 启动Flask时,使用命令
细化防火墙规则设置
- 添加入站规则时,确保规则应用到所有网络类型(域、专用、公网),部分WiFi可能被系统识别为公网,仅放行专用网络会导致拦截。
- 直接放行Flask关联进程:在防火墙高级设置中新建“程序”规则,选择你的Python解释器或Flask启动进程,放行该程序的所有连接,比单独放行端口更可靠。
排查路由器限制
- 检查路由器是否开启AP隔离(客户端隔离),该功能会禁止局域网内设备互相访问,需在路由器后台关闭。
- 局域网内访问无需设置端口转发,建议暂时删除路由器上的5000端口转发规则,避免干扰。
测试网络连通性
- 在测试设备上(手机可用Termux等工具)执行
ping 192.168.0.100,若ping不通,先解决网络连通问题(如检查路由器IP分配、设备连接状态)。 - 若ping通但API超时,执行
telnet 192.168.0.100 5000测试端口开放情况,telnet不通说明端口仍被拦截,回到防火墙或服务绑定排查。
- 在测试设备上(手机可用Termux等工具)执行
排除其他干扰因素
- 暂时关闭电脑上的VPN、代理工具,这类软件可能修改网络路由,导致局域网访问失败。
- 部分杀毒软件自带防火墙,即使关闭Windows防火墙,仍可能拦截连接,可暂时关闭杀毒软件测试。
内容的提问来源于stack exchange,提问作者Johnson Peter
相关产品推荐
相关产品推荐

