|
Доступ к веб-серверу виртуальной машины qemu извне с использование wifi. Мост. Он же Bridge. Памятка. Речь именно о доступе к сайту, который внутри гостевой машины, т.е. с хоста. Прим.: возможно, что в этом руководстве есть лишние действия (трудно проверить, так как виртуализация у меня сильно тормозит), но именно следующие действия привели к работоспособности (собрано из разных ресурсов в сети). Памятка (может, кому-то пригодится), Настройка осуществлялась: в Gentoo Linux на нетбуке hp mini (Atom n570). Виртуальная машина: XP с веб-сервером AppServ 2.5.1. 1) Становимся root su 2) Разрешаем форвардинг пакетов echo 1 > /proc/sys/net/ipv4/ip_forward 3) В ядре следует включить CONFIG_BRIDGE=y Если не включен, то идём cd /usr/src/linux vi .config Находим CONFIG_BRIDGE и редактируем Далее закрываем и сохраняем make && make modules_install Не помню, надо ли копировать образ ядра, но монтируем boot и копируем в него: mount /boot cp arch/x86_64/boot/bzImage /boot/kernel-5.15.75-gentoo 4) Перезагрузка. reboot 5) Ставим программы для работы с мостом emerge net-misc/bridge-utils 6) Создаем мост: brctl addbr br0 7) Для интерфейса wifi (vlan0 (у меня wlp1s0b1) можно добавить только в режиме точки доступа, вычитал в сети), поэтому: ifconfig wlp1s0b1 down 8) ifconfig wlp1s0b1 192.168.43.1/24 - если вай-фай, то переводим в режим точки доступа, иначе не заработает) 9) Добавляем в мост brctl addif br0 wlp1s0b1 10) Разрешаем от пользователя доступ к мосту (я так понял): mkdir -p /etc/qemu echo "allow br0" >> /etc/qemu/bridge.conf 11) Запускаем qemu от пользователя (у меня так примерно) : qemu-system-x86_64 -accel tcg -hda win.img -m 512 -netdev bridge,id=br0,br=br0 -device rtl8139,netdev=br0 12) В гостевой машине прописываем сетевому интефейсу адрес: 10.0.2.15; маску подсети: 255.255.255.0; шлюз: 10.0.2.2 13) Смотрим от root, что получилось ifconfig -a У нас должны быть интерфейсы br0 и tap0 (после запуска qemu) 14) Далее я добавил для tap0 адрес ifconfig tap0 10.0.2.3 up и для br0 ifconfig br0 10.0.2.2 up 15) Добавил tap0 в мост, т.е. в br0 brctl addif br0 tap0 (Возможно, последние действия лишние) После этого сайт виртуальной машины стал доступен по адресу: 10.0.2.15 P.S. Для создания моста, как мне подсказали, можно использовать ip ( iproute2) Дополнение Получить доступ к веб-серверу виртуальной машины можно, пробросив порт 80 через клиент ssh на ней. На хосте запускается sshd С клиентской машины используем reverse forwarding ssh -N -R localhost:8181:localhost:80 -l user 10.0.2.2 Т.е. с хоста, набрав в браузере localhost:8181, должны попасть на веб-сервер виртуальной машины. В putty для Windows идём в ssh -> tunnels -> source=8181, Destination=localhost:80 Ставим галку на Remote. Чуть выше "ставим птичку" возле: Local ports accept connections from other hosts. 06.01.26 |