今天在虚拟机上部署了一个socket服务,使用python socket模组进行端口连接时一直报错,
>>> import socket
>>> s=socket.socket()
>>> s.connect(('192.168.137.141',9988))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 113] No route to host
>>>
通过netstat -anp 9988 查看确定服务已经启动,而且ping也能ping通说明网络没问题
[root@localhost nlpplat]# netstat -anp|grep 9988
tcp6 0 0 :::9988 :::* LISTEN 33758/java
[root@localhost ~]# telnet 192.168.137.141 9988
Trying 192.168.137.141...
telnet: connect to address 192.168.137.141: No route to host
最终定位为防火墙问题
把防火墙关掉就行了
systemctl status firewalld
systemctl stop firewalld
或者把对应的端口放开
firewall-cmd --zone=public --add-port=9988/tcp --permanent
firewall-cmd --reload