今天在试socket的时候出现了一个问题:问题概述是这样的:
1.linux采用centOS7(mini)版本,虚拟机版本VMware12,网卡设置NAT
2.服务器和客户端都在windows上,通讯正常
3.服务器和客户端都在linux上,通讯正常
4.服务器在linux上,客户端在windows上,通讯失败,错误提示:
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
解决思路:
1.在windows和linux互相ping对方ip,连接正常。
2.先用secureCRT连了虚拟机,ssh客户端工作正常,说明linux和windows组网是成功的。
3开启windows功能中的telnet客户端后,在cmd内ping linux的端口号,连接失败。说明ip是通的,但端口无法连接。
4.第3条的原因是linux的防火墙工作导致,关掉防火墙
centOS7内的防火墙关闭方法
查看状态:systemctl status firewalld
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
[root@localhost ~]# systemctl stop firewalld
重新在cmd内
C:\Users\Aaron>telnet 190.168.75.130 9999
回车,成功。
可以把防火墙关闭,也可以对防火墙开放一个固定的端口,使用时会比较安全。