如何解决如何在 esxi 6.7 中使用 vsock?
我在 esx 中运行脚本(不是在 VM 中,而是在 esx 本身上),当我尝试使用 socket.AF_VSOCK
时,它说它不存在。我在 esx 上的 Windows 机器上收到相同的消息。我安装了 vm-tools 并且 vmci_socket.h
存在。
esxi 版本是 6.7,python 版本是 3.5
更新:我发现这个系列是 40
,它适用于 linux 但不适用于 esxi
esxi:
import socket
s = socket.socket(40,socket.SOCK_STREAM)
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/build/mts/release/bora-14320388/bora/build/esx/release/vmvisor/sys-boot/lib64/python3.5/socket.py",line 134,in __init__
OSError: [Errno 97] Address family not supported by protocol
Linux:
In [2]: s = socket.socket(socket.AF_VSOCK,socket.SOCK_STREAM)
In [3]: s
Out[3]: <socket.socket fd=13,family=AddressFamily.AF_VSOCK,type=SocketKind.SOCK_STREAM,proto=0,laddr=(4294967295,4294967295)>
更新2:
ESXi 上有 /dev/vsock
设备,它返回 2
作为 CID(如预期)
>>> import fcntl
>>> with open("/dev/vsock","rb") as f:
... r = fcntl.ioctl(f,1977," ")
>>> r
b'\x02\x00\x00\x00'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。