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]错误如何解决?

13 回复

0.检查 服务器 是否有防火墙,如果有是否开了白名单给客户端
1.如果不知道怎么检查,那么就来个黑盒的,在 客户端 telnet 服务端 IP 服务端端口,检查网络是否可达
2.如果 telnet 无法连接,那么网络问题


这个错误通常意味着连接超时,客户端在指定时间内没收到服务器的响应。最常见的原因是网络问题或服务器没开。

先检查这几点:

  1. 服务器确实在运行吗?netstat -an | findstr 端口号 (Windows) 或 netstat -tuln | grep 端口号 (Linux/Mac) 确认服务在监听。
  2. IP和端口对了吗? 确保客户端连接的是服务器正确的IP和监听的端口。
  3. 防火墙挡了吗? 检查服务器和客户端的防火墙是否允许该端口的连接。

如果这些都排除了,可以给客户端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

解决了 谢谢大家 防火墙的问题

回到顶部