
我對 Linux 的網路知識非常有限,我一直在嘗試為每個虛擬機器分配靜態 IP 位址,因為它們需要相互通訊。
我一直在閱讀一些有關 TUN/TAP 介面的網路 QEMU 文檔,以及使用 qemu-ifup 和 qemu-ifdown 配置 br0。不過,我剛從完全失去 Wi-Fi 連線的情況中恢復過來。所以我決定看看是否能得到一些關於到底該怎麼做的指導。
本質上,配置需要從主機建立 3 個虛擬機器並分配靜態 IP,以便它們可以相互通訊以及與主機通訊。目前,所有虛擬機器共用相同的 MAC 和 IP 位址。
我使用基本上相同的命令啟動虛擬機,我認為-net
需要修改參數。
QEMU VM 啟動範例:
sudo ./qemu-system-x86_64 \
-drive file=drive.img,format=raw \
-boot d \
-k en-us \
-object can-bus,id=canbus0 \
-object can-bus,id=canbus1 \
-device mioe3680_pci,canbus0=canbus0,canbus1=canbus1 \
-object can-host-socketcan,id=canhost0,if=can0,canbus=canbus0,if=vcan0 \
-object can-host-socketcan,id=canhost1,if=can1,canbus=canbus1,if=vcan1 \
-m size=2048 \
-nic user,hostfwd=tcp::6022-:22 \
-netdev bridge,id=hn0, \
-smp 4 \
-enable-kvm &
我能夠透過 ssh 進入這個ssh user@localhost -p 6022
可以運行的虛擬機器。但為了讓我嘗試編寫的軟體能夠運作,這些虛擬機器需要靜態 IP 位址,因為它們之間必須進行 TCP 通訊。
我的主機運行 Ubuntu 20.04,我的一個虛擬機器運行 Ubuntu 16.04 Xenial,另一個運行 Centos 7。
所以基本上我想要的配置是:
host = 192.168.1.80
vm1 = 192.168.1.2
vm2 = 192.168.1.22
vm3 = 192.168.1.3