Python socket.error:[Errno 113]没有路由到主机,但ping工程
问题描述:
我想连接使用TCP。在客户端,我有以下代码Python socket.error:[Errno 113]没有路由到主机,但ping工程
import socket
BUFFER_SIZE = 1024
server_addres = ('172.16.1.52',3201)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(server_addres)
data = s.recv(BUFFER_SIZE)
s.close()
print "received data:", data
我使用运行它:
sudo python myProgram.py
此错误出现
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 113] No route to host
但是,如果我运行:
sudo ping 172.16.1.52
ping工作正常。我需要运行ping为sudo,因为运行它没有sudo给出ping: icmp open socket: Operation not permitted
答
它最终成为一个无线接口的路由策略。它不允许TCP数据包。该规则由IT部门设定,无法更改。
我达到sendind TCP数据包使用另一个接口的其他主机后得出这一结论(即我的代码工作)
我确信有一个路线。我手动设置特定IP的路由表,并确保来自远程主机的输入策略被设置为接受TCP数据包。
检查任何防火墙。同时使用[\ [die.net \]:'traceroute'](https://linux.die.net/man/8/traceroute)检查路线。 – CristiFati