Настройка сетевого доступа для VirtualBox

NAT

В простейшем случае работу сети внутри гостевой системы в VirtualBox можно обеспечить через NAT.
Достаточно выбрать тип эмуляции сетевого интерфейса – NAT, а в гостевой ОС получить IP по DHCP или установить вручную из диапазона 10.0.2.0/24, шлюз 10.0.2.2, DNS 10.0.2.3.

Проброс портов

Для проброса портов из вне можно использовать:

1
2
3
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

где, «freebsd» – это имя виртуальной машины, а pcnet тип эмулируемой карты.
Заходя на 2222 порт хостовой машины мы будем переброшены на 22 порт виртуального окружения.

Для обеспечения полноценного сетевого окружения для виртуального сервера необходимо поднять виртуальный сетевой интерфейс.

Устанавливаем пакеты:

sudo apt-get install uml-utilities bridge-utils

Настраиваем бриждинг, редактируем /etc/network/interfaces в случае если IP хост-система получает динамически (DHCP):

1
2
3
4
5
6
7
8
9
10
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 vbox0

# The loopback network interface
auto lo
iface lo inet loopback

eth0 – сетевой интерфейс, br0 – создаваемый бридж, vbox0 – имя устройства, используемого в VirtualBox
Если виртуальных окружений несколько, можно написать:
bridge_ports eth0 vbox0 vbox1 vbox2 vbox3 vbox4

В случае со статическим IP настройки примут вид:

1
2
3
4
5
6
7
8
9
10
11
12
13
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 vbox1

# The loopback network interface
auto lo
iface lo inet loopback

При использовании статического IP в eth0, его настройки должны совпадать с br0

Перезапускаем сетевую подсистему:

sudo /etc/init.d/networking restart

В сетевых настройках VirtualBox определяем виртуальные интерфейсы.
Для этого редактируем файл /etc/vbox/interfaces:

1
2
3
4
# Each line should be of the format :
# interface name user name [bridge]
vbox0  br0
vbox1  br0

Перезапускаем virtualbox для принятия изменений:
Для OpenSource версии:

sudo /etc/init.d/virtualbox-ose restart

Для проприетарной сборки:

sudo /etc/init.d/vboxnet restart

Не забываем убедиться в наличии прав доступа на чтение и запись для пользователей группы vboxusers для устройства /dev/net/tun

sudo chown root:vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun

Чтобы права автоматически установились после перезагрузки в /etc/udev/rules.d/20-names.rules меняем

KERNEL=="tun", NAME="net/%k"

на

KERNEL=="tun", NAME="net/%k",  GROUP="vboxusers", MODE="0660"

В настройках VirtualBox для гостевого окружения выбираем «host networking» указав имя созданного виртуального интерфейса.

Дополнительное чтиво: VirtualBox networking HOWTO

Благодарности уходят pomaskin

Тэги: ,

Эта запись была оставлена Вторник, апреля 21, 2009 в 20:41 и относится к категориям: How To. Вы можете отслеживать комментарии по RSS 2.0 ленте. Вы можете оставить комментарий или trackback с Вашего сайта.

Оставить комментарий

Надо-бы залогиниться, чтоб оставить комментарий.