Python socket 客户端无法连接,出现socket.error: [Errno 10060]错误如何解决?
被一个问题快搞疯了。求助。
用 python 写了一个 socket server 和一个 client. 在本机跑没问题, 正常连接。 局域网跑也没问题, 正常连接。
但是, 把 server 放在服务器上跑之后。 client 端一直无法成功连接。一直显示连接超时。 错误 Errno 10060
server 端设置是 sock.bind(('0.0.0.0',9999)) client 端设置是 sock.connect(('服务器 ip',9999))
ps:我是第一次玩服务器 centOS。是不是什么地方没有设置对?
Python socket 客户端无法连接,出现socket.error: [Errno 10060]错误如何解决?
0.检查 服务器 是否有防火墙,如果有是否开了白名单给客户端
1.如果不知道怎么检查,那么就来个黑盒的,在 客户端 telnet 服务端 IP 服务端端口,检查网络是否可达
2.如果 telnet 无法连接,那么网络问题
这个错误通常意味着连接超时,客户端在指定时间内没收到服务器的响应。最常见的原因是网络问题或服务器没开。
先检查这几点:
- 服务器确实在运行吗? 用
netstat -an | findstr 端口号(Windows) 或netstat -tuln | grep 端口号(Linux/Mac) 确认服务在监听。 - IP和端口对了吗? 确保客户端连接的是服务器正确的IP和监听的端口。
- 防火墙挡了吗? 检查服务器和客户端的防火墙是否允许该端口的连接。
如果这些都排除了,可以给客户端socket设置一个明确的超时时间,这样能更快失败并抛出可读的异常,而不是一直卡住:
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置连接超时时间为10秒
client_socket.settimeout(10.0)
try:
client_socket.connect(('服务器IP', 端口号))
print("连接成功")
# ... 后续通信代码
except socket.timeout:
print("错误:连接超时,服务器无响应")
except ConnectionRefusedError:
print("错误:连接被拒绝,服务器可能未启动或端口错误")
except Exception as e:
print(f"连接出错: {e}")
finally:
client_socket.close()
总结:先检查服务器状态和网络配置。
多半防火墙
systemctl stop firewalld
还有 selinux
/etc/init.d/iptables stop
我输入 firewall-cmd --state 显示 not running
我输入 firewall-cmd --state 显示 not running
感谢回复, 我看了 ,防火墙是关闭的呀
感谢回复, 我看了 ,防火墙是关闭的呀
你服务器哪里的?如果是云上,还得看云的防火墙……
云服务器有安全组设置,看看有没有放行
看下 selinux
解决了 谢谢大家 防火墙的问题

