Лучше получать по 1% от усилий 100 человек, чем 100% только от своих собственных усилий.

J. Paul Getty
Меню сайта


Форма входа


Поиск


Архив записей


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


...
free counters


...
бесплатный счетчик посещений


...
Счетчик посетителей онлайн


...


PR-CY.ru



Приветствую Вас, Гость · RSS 10.05.2024, 04:00
Главная » 2011 » Февраль » 11 » VirtualBox и локальная сеть
13:38
VirtualBox и локальная сеть
Не так давно я писал статью о том как создать общую папку в Виртуальной машине чтобы можно было юзать общие документы, но потом понадобилось чтобы мою машину видела локалка и так немного покопавшись в нете наткнулся на статью.

И так запустим VirtualBox, так как у меня всего одна система установлена то открываю ее свойства.Пункт "Сеть" далее "Хост-интерфейс" в поле "Присоединен к". А ниже в поле "Имя интерфейса" пишем "vbox0" (конечно отпускаем при этом кавычки ) прилагается скрин.



После необходимо поставить пакет bridge-utils:
#sudo apt-get install bridge-utils
И добавляем в /etc/network/interfaces: строки можно открыть черзе nano либо через gedit т.е так sudo gedit /etc/network/interfaces
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 vbox0

Теперь редактируем /etc/vbox/interfaces:
vbox0 Имяюзверя br0
здесь же Имяюзверя - пользователь, под которым ты работаешь в системе.

Т.ж. нужно настроить права для /dev/net/tun, чтобы VirtualBox не ругался при запуске гостевой ОС:
sudo chown root:vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun

Чтобы не выполнять это каждый раз при запуске Ubuntu открываем файл /etc/udev/rules.d/20-names.rules и ищем строчку (у меня она была в самом низу файла)
KERNEL=="tun", NAME="net/%k"
и дописываем в ее конец пару слов и в итоге
KERNEL=="tun", NAME="net/%k", GROUP="vboxusers", MODE="0660"

Перезапустим сеть и демон виртуалбокса:
sudo /etc/init.d/networking restart
sudo /etc/init.d/virtualbox-ose restart

Все готово.

Т.к. IP мы получаем динамически, то надо в гостевой системе сделать соответствующие сетевые настройки, чтобы она получала IP от DHCP сервера из нашей локальной сети.
Если же ты не хочешь или не можешь по какой-то причине использовать DHCP сервер, то измени файл /etc/network/interfaces след. образом:
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0 vbox0
Теперь твоя гостевая система будет иметь IP 192.168.0.100. Т.ж. не забудь соответствующим образом изменить сетевые настройки гостевой системы.

И... никогда не забывай делать резервные копии, перед внесением изменений в какие-либо конфигурационные файлы!!! ;)

Также чтобы не мучаться можно прикрутить скрипт, но некоторые вещи все равно надо будет исправить ручками, данный скипт не мой.
#!/bin/sh
# Запускать от root'а
ISDHCP=0 # 1 = Использовать DHCP | 0 = Не оспользовать DHCP
ADDRESS=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
USER=`whoami`

# Устанавливаем пакет bridge-utils
apt-get install bridge-utils
NODHCP="auto eth0"
NODHCP+="iface eth0 inet manual"
NODHCP+=""
NODHCP+="auto br0"
NODHCP+="iface br0 inet dhcp"
NODHCP+=" bridge_ports eth0 vbox0"

YESDHCP="auto eth0"
YESDHCP+="iface eth0 inet manual"
YESDHCP+=""
YESDHCP+="auto br0"
YESDHCP+="iface br0 inet static"
YESDHCP+=" address $ADDRESS"
YESDHCP+=" netmask $NETMASK"
YESDHCP+=" gateway $GATEWAY"
YESDHCP+=" bridge_ports eth0 vbox0"

# Делаем бэкап /etc/network/interfaces
cp /etc/network/interfaces /etc/network/interfaces_`date +%Y%m%d`

# Настраиваем /etc/network/interfaces
if [ $ISDHCP=0 ] ; then
echo "$NODHCP" > /etc/network/interfaces
else
echo "$YESDHCP" > /etc/network/interfaces
fi

# Настраиваем /etc/vbox/interfaces
echo "vbox0 $USER br0" >> /etc/vbox/interfaces

# Настраиваем права для /dev/net/tun
chown root:vboxusers /dev/net/tun
chmod g+rw /dev/net/tun

# Делаем бэкап /etc/udev/rules.d/20-names.rules
cp /etc/udev/rules.d/20-names.rules /etc/udev/rules.d/20-names.rules_`date +%Y%m%d`

# Заменяем нужную строчку
grep -v 'KERNEL=="tun"' /etc/udev/rules.d/20-names.rules > /etc/udev/rules.d/20-names.rules
echo 'KERNEL=="tun", NAME="net/%k", GROUP="vboxusers", MODE="0660"' >> /etc/udev/rules.d/20-names.rules

# Перезапускаем демон виртуалбокса
sudo /etc/init.d/virtualbox-ose restart

# Перезапускаем сеть
sudo /etc/init.d/networking restart

Источник данной статьи
Просмотров: 2442 | Добавил: kritik | Теги: VirtualBox, локальная сеть | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Создать бесплатный сайт с uCoz