Windows客户端请求Linux服务器报WinError 10061错误排查
问题原因分析
错误"Failed to establish a new connection: [WinError 10061]"的核心原因是服务器拒绝了客户端的连接请求:你的Flask服务启动时绑定了localhost(即127.0.0.1),这个地址仅允许服务器本机访问,局域网内的Windows客户端无法通过服务器的局域网IP(192.168.43.227)连接到服务。
修复方案
只需修改Flask启动时的host参数,将其绑定到所有可用网络接口(0.0.0.0)或服务器的具体局域网IP(192.168.43.227):
修改后的服务器代码:
from flask import Flask, request, jsonify import threading app = Flask(__name__) @app.route('/get_info', methods=['GET', 'POST']) def authorization_func(): if request.method == 'POST': data = jsonify(request.json) print(data) return data if __name__ == '__main__': # 绑定所有网络接口,允许局域网设备访问 threading.Thread(target=lambda: app.run(host='0.0.0.0', port=8080, debug=True, use_reloader=False)).start()
额外验证步骤
- 检查Linux服务器防火墙是否拦截8080端口,可临时开放测试:
# 针对ufw防火墙 sudo ufw allow 8080 # 针对firewalld防火墙 sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload - 确认服务器局域网IP正确性:在Linux终端执行
ip a查看对应网卡的IP地址,确保和客户端请求的192.168.43.227一致。 - 统一请求路径:客户端URL末尾的
/可去掉,改为http://192.168.43.227:8080/get_info,避免Flask自动重定向。
内容的提问来源于stack exchange,提问作者Pro_Noob_228
相关产品推荐
相关产品推荐

