Как маршрутизировать TCP-порты / сокеты внутри QEMU?

Я пытаюсь запустить

person thatjames    schedule 02.06.2020    source источник


Ответы (1)


Я бы рекомендовал попробовать все варианты, перечисленные в руководстве по сети qemu:
- SLIRP: -netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9
- TAP: -netdev tap,id=mynet0
- РОЗЕТКА: -netdev socket,id=mynet0,listen=:1234 и -netdev socket,id=mynet0,connect=:1234

И в руководстве есть еще много всего. Вы также можете принять во внимание то, что вам может быть сложно перенаправить порт напрямую с виртуальной машины, которая вам нужна, на хост, и может быть проще подключить эту виртуальную машину к другой виртуальной машине и портировать- переадресовать с этой второй виртуальной машины на ваш хост.

Звучит немного странно, но это то, что мне нужно было сделать раньше. Я считаю, что для разговора между двумя виртуальными машинами лучше всего используется сокеты. Они работают как «виртуальный перекрестный кабель».

Этот метод виртуальной машины в виртуальную машину позволит вам просто настроить соответствующие статические IP-адреса и подсети на каждой виртуальной машине, и тогда ncat будут работать между ними. Избавьтесь от всей сложности DHCP-сервера и любого вида переадресации портов.

person Lenna    schedule 14.06.2020
comment
Спасибо за предложения. Я сделал 2 версии кода: одна запускает задачу сервера, а другая - задачу клиента. Я изменил сетевую часть вызова qemu на -nic socket,id=n1,mac=00:17:34:51:68:65,listen=:2222 и -nic socket,id=n2,mac=00:17:34:51:68:66,connect=127.0.0.1:2222 соответственно. Теперь задача клиента прогрессирует больше, чем раньше, но сервер по-прежнему не подключается. Я продолжу взламывать его, но любые другие предложения будут оценены. - person thatjames; 16.06.2020
comment
Держись! Не сдавайся. При разработке с помощью QEMU всегда появляется сообщение "Я сделал что-то не так с моей командой QEMU?" и я что-то делаю не так со своей виртуальной машиной ?. Наилучший подход - это сначала, и быть уверенным в том, как виртуализировать вашу среду. Я считаю, что вы правильно поняли команду QEMU. А теперь пора задать сетевой вопрос. - person Lenna; 16.06.2020