Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets qemu/kvm:无法将多台计算机连接到同一个套接字_Sockets_Networking_Port_Qemu_Kvm - Fatal编程技术网

Sockets qemu/kvm:无法将多台计算机连接到同一个套接字

Sockets qemu/kvm:无法将多台计算机连接到同一个套接字,sockets,networking,port,qemu,kvm,Sockets,Networking,Port,Qemu,Kvm,我尝试使用QEMU模拟一个由3台机器组成的小网络,其中一台机器(deb1)直接与主机连接,另外两台机器(deb2,deb3): deb1连接到两个不同的网络,一个(vlan 1)将deb1连接到主机,另一个(vlan 2)将deb1连接到其他两台机器,因此deb1必须从端口1234侦听: kvm -hda deb1.img -m 256 \ -net nic,vlan=1 -net user,vlan=1 -net nic,vlan=2,macaddr=52:54:00:12:34:57 \ -

我尝试使用QEMU模拟一个由3台机器组成的小网络,其中一台机器(deb1)直接与主机连接,另外两台机器(deb2,deb3):

deb1连接到两个不同的网络,一个(vlan 1)将deb1连接到主机,另一个(vlan 2)将deb1连接到其他两台机器,因此deb1必须从端口1234侦听:

kvm -hda deb1.img -m 256 \
-net nic,vlan=1 -net user,vlan=1 -net nic,vlan=2,macaddr=52:54:00:12:34:57 \
-net socket,vlan=2,listen=localhost:1234
deb2和deb3都必须连接到deb1,唯一的区别是它们的mac地址:

deb2:

deb3:

三台机器启动后,我只需设置它们的ip地址:

deb1:

deb2:

deb3:

问题是:
deb1
deb2
之间的连接工作正常, 但不是介于
deb1
deb3
之间的。当我关闭
deb2
时,
deb1
deb3
之间的连接开始工作。看起来
deb1
无法同时侦听
deb2
deb3

我做错了什么

实际上,我遵循了中所写的内容(查看第4.2节仅来宾网络:“当您想要使用三个以上的来宾操作系统时,只需连接到一个。使用不同的macaddr。”)

-netsocket,{listen | connect}=…
仅适用于1:1连接

netstat-anp46 | grepqemu
表明deb3和deb1的qemu之间没有联系

改用
-netsocket,mcast=…

kvm -hda deb1.img -m 256 \
-net nic,vlan=1 -net user,vlan=1 -net nic,vlan=2,macaddr=52:54:00:12:34:57 \
-net socket,vlan=2,listen=localhost:1234
 kvm -hda deb2.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:01 \
 -net socket,vlan=2,connect=localhost:1234
 kvm -hda deb3.img -m 256 -net nic,vlan=2,macaddr=52:54:00:12:34:02 \
 -net socket,vlan=2,connect=localhost:1234
ifconfig eth1 192.168.10.2
ifconfig eth0 192.168.10.3
ifconfig eth0 192.168.10.4