The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Доступ к веб-серверу виртуальной машины qemu извне с использова, !*! dcc0, 25-Дек-24, 02:08  [смотреть все]
Продублирую сюда, чтобы не потерялась.
Речь именно о доступе к сайту, который внутри гостевой машины,
т.е. с хоста.
Прим.: возможно, что в этом руководстве есть лишние действия (трудно проверить, так как виртуализация у меня сильно тормозит), но именно следующие действия привели к работоспособности (собрано из разных ресурсов в сети).

Памятка (может, кому-то пригодится),
Настройка осуществлялась: в 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

nano .config

Находим CONFIG_BRIDGE и редактируем
Далее закрываем и сохраняем
make && make modules_installl

Не помню, надо ли копировать образ ядра, но монтируем 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

  • Доступ к веб-серверу виртуальной машины qemu извне с использова, !*! shadow_alone, 03:00 , 25-Дек-24 (1)
    зачем так сложно то делать всё.
    Если уж добавляете интерфейсы в бридж, так выдавайте сразу адрес из локалки, зачем колхоз городить то? А если просто порт надо прокинуть на вируталку, так прокиньте порт - думаю что вам именно это и нужно было.
    • Доступ к веб-серверу виртуальной машины qemu извне с использова, !*! Аноним, 13:51 , 25-Дек-24 (2)
      > зачем так сложно то делать всё.
      > Если уж добавляете интерфейсы в бридж, так выдавайте сразу адрес из локалки,
      > зачем колхоз городить то? А если просто порт надо прокинуть на
      > вируталку, так прокиньте порт - думаю что вам именно это и
      > нужно было.

      Колхоз это передовое хозяйство. Тут (с атомом и хп) натуральный бизнес.

    • Доступ к веб-серверу виртуальной машины qemu извне с использова, !*! dcc0, 14:56 , 25-Дек-24 (3)
      > зачем так сложно то делать всё.
      > Если уж добавляете интерфейсы в бридж, так выдавайте сразу адрес из локалки,
      > зачем колхоз городить то? А если просто порт надо прокинуть на
      > вируталку, так прокиньте порт - думаю что вам именно это и
      > нужно было.

      Да. Спасибо. Можно вообще через ssh:

      Дополнение:
      Получить доступ к веб-серверу виртуальной машины можно,
      пробросив порт 80 через клиент ssh на ней.

      1) На хосте запускается sshd - сервер ssh.

      2) С клиентской машины используем 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.


      Вот интересно: заработает ли в виртуальной машине Yggdrasil?
      Раз вариант с ssh работает, то должен заработать.

      • Доступ к веб-серверу виртуальной машины qemu извне с использова, !*! dcc0, 02:01 , 30-Дек-24 (4)
        >[оверквотинг удален]
        > 1) На хосте запускается sshd - сервер ssh.
        > 2) С клиентской машины используем 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.
        > Вот интересно: заработает ли в виртуальной машине Yggdrasil?
        > Раз вариант с ssh работает, то должен заработать.

        В putty в разделе ssh->tunnels чуть выше ставим "ставим птичку" возле: Local ports accept connections from other hosts.  




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру