Я пытаюсь установить соединение между Windows 10 под управлением контейнера Docker (Linux), в котором запущен QEMU для размещения ОС QNX. Эта картинка должна прояснить ситуацию: Структура
Хочу выделить то, чего мне удалось достичь:
Команды, используемые для запуска среды:
#add new network interface
ip tuntap add mode tap dev tap0
ip addr add 192.168.56.1/24 dev tap0
ip link set dev tap0 up
#start vde switch connected to tap0
vde_switch -F -d -sock /tmp/myswitch -tap tap0
#start QEMU
qemu-system-x86_64 \
-m 1024 \
-cpu qemu64 \
-smp 2 \
-netdev vde,id=t0,sock=/tmp/myswitch \
-device e1000,netdev=t0,mac=52:54:00:12:34:50 \
-drive file=/qnx/qnx_vm_x86_64-qemu.img \
-D /var/log/qemu_err.log \
-serial file:/var/log/qemu_out.log \
-display none -daemonize
Команда для запуска контейнера докеров:
docker run -it --rm --network=host --cap-add=NET_ADMIN --privileged qemu_qnx
Чего не хватает, так это возможности подключения между хостом и QNX. Можно ли например перенаправить соединение с Hvint0 на Tap0?
Примечание: на хосте Linux я могу запустить контейнер Docker с помощью network = host, и я могу легко получить к нему доступ с хоста, но, к сожалению, это не сработает на хосте Windows.
То, что я пробовал до сих пор, к сожалению, не повезло:
#flush iptables rules
iptables -F
iptables -t nat -F
#Add rule
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.56.51:22
#Save the iptables rule :
sudo iptables-save | sudo tee /etc/iptables.up.rules
-device e1000,netdev=net0
-netdev user,id=net0,hostfwd=tcp::2222-:22
Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.