运行Python代码从AWS EC2传输文件到本地出现TimeoutError如何解决
问题修复步骤
- 服务端监听地址修正
你当前EC2服务端代码中TCP_IP = 'localhost'仅允许EC2实例本地进程连接,公网请求无法被监听到。将该配置修改为:
TCP_IP = '0.0.0.0'
即可监听EC2实例所有网卡的接入请求,包括公网网卡的外部请求。
端口配置统一
服务端绑定端口为9001,但客户端代码中配置的目标端口为60001,两侧端口不匹配会直接导致连接失败,请保持两侧端口一致,例如统一使用9001:
服务端:TCP_PORT = 9001
客户端:TCP_PORT = 9001EC2网络访问规则配置
- 登录AWS控制台,进入对应EC2实例的安全组配置页,添加入站规则:允许TCP协议、对应端口(如9001)的访问请求,源地址可以先填你本地设备的公网IP,调试阶段也可临时设置为
0.0.0.0/0(调试完成后请及时收紧权限保证安全) - 检查EC2实例内部的系统防火墙设置,Ubuntu系统可执行
sudo ufw allow 9001/tcp放行端口,CentOS系统可执行sudo firewall-cmd --add-port=9001/tcp --permanent && sudo firewall-cmd --reload
- 补充校验项
确认客户端代码中TCP_IP填写的是EC2实例的公网IP,而非EC2的私网IP;同时确认EC2实例所属子网为公有子网,已绑定公网IP且路由表配置了互联网网关。
内容的提问来源于stack exchange,提问作者SwaggerLagger10
相关产品推荐
相关产品推荐

