我的主机操作系统是Ubuntu 20.04,虚拟机操作系统是CentOS 7.9。 VM 网络处于仅主机模式。我不知道为什么从主机到 VM 的套接字连接总是失败。
这是在虚拟机上运行的服务器的python代码:
import socket
s = socket.socket()
print ("Socket successfully created")
port = 12345
s.bind(('192.168.56.103', port))
print ("socket binded to %s" %(port))
s.listen(5)
print ("socket is listening")
while True:
c, addr = s.accept()
print ('Got connection from', addr )
c.send('Thank you for connecting'.encode())
c.close()
break
这是在主机上运行的客户端的python代码:
import socket
s = socket.socket()
port = 12345
s.connect(('192.168.56.103', port))
print (s.recv(1024).decode())
s.close()
服务器运行良好,但客户端不断报告
OSError: [Errno 113] No route to host
.
主机和 VM 可以相互 ping 和 ssh 没有问题。我确定端口没有被双方的另一个进程占用。有没有办法让主机在仅主机模式下通过套接字连接到虚拟机?