Опция -o позволяет создавать пользователей с не -уникальными идентификаторами, только если вы также указываете числовое значение их UID с опцией -u в той же строке, например.:
# useradd -o huey -u 501
# useradd -o dewey -u 501
# useradd -o louie -u 501
Это позволяет настроить нескольких пользователей с одинаковыми правами и привилегиями, но с разными домашними каталогами и паролями.
Вы должны сохранить чистоту опций. Я имею в виду, что вы не можете смешивать объявление сети
-net nic,model=virtio-net-pci,macaddr=... -net user,restrict=[on|off]
с
-device virtio-net-pci,netdev=net0,mac=... -netdev tap,ifname=tap0,id=net0,script=...,downscript=...
где первый вариант создает виртуальную локальную сеть частного диапазона 10.0.0.x/8, предоставляя гостевой виртуальной машине адрес DHCP 10.0.0.15, а (dis )позволяет гостевой виртуальной машине проходить через встроенный брандмауэр NAT. к сети хост-системы; в то время как показанная буквенная опция создает привязку виртуального интерфейса к интерфейсу tap0 хост-компьютера, где вы должны определить, к какому реальному интерфейсу подключен tap0.
Следовательно, если вы хотите соединить две виртуальные машины, скажем, VMA/tapA и VMB/tapB, вы можете соединить эти виртуальные машины вместе через мост, который можно определить, например, с помощью:
# ip link add name brAB type bridge
# ip link set dev brAB up
# ip link set dev tapA master brAB
# ip link set dev tapB master brAB
# ip link set dev tapA up
# ip link set dev tapB up
Эта конфигурация создает изолированную сеть, соединяющую только VMA и VMB ! . Чтобы связать эту сеть с какой-либо свободной сетевой картой хоста или настроить другие сетевые схемы, вам нужно больше узнать о сетевой конфигурации реального хост-компьютера, например. о витальном переключении (openvswitch )или других возможностях.
Конечно, фиктивные интерфейсы tapA или tapB необходимо создать в контейнере, прежде чем вы попытаетесь их использовать. Вы можете сделать это, например, с помощью:
# ip tuntap add name tapA mode tap
команда.
Мне нужно было следующее:
qemu.networkingOptions = [
"-device e1000,netdev=abc,mac=52:55:00:d1:55:01"
"-netdev tap,id=abc,ifname=tapA,script=no,downscript=no"
];
А во второй вм меняем адрес+интерфейс:
qemu.networkingOptions = [
"-device e1000,netdev=abc,mac=52:55:00:d1:55:02"
"-netdev tap,id=abc,ifname=tapB,script=no,downscript=no"
];
Как упомянул @schweik, мне также нужно было настроить сеть, для чего я использовал следующий скрипт:
for i in "$@"
do
case $i in
--down)
ip link delete brAB
ip link delete tapA
ip link delete tapB
;;
--up)
ip link add name brAB type bridge
ip link set dev brAB up
ip tuntap add dev tapA mode tap user $(whoami)
ip tuntap add dev tapB mode tap user $(whoami)
ip link set dev tapA master brAB
ip link set dev tapB master brAB
ip link set dev tapA up
ip link set dev tapB up
;;
esac
done