Еще один способ настройки сети в VirtualBox

Материал из MediaWiki
Перейти к навигации Перейти к поиску

Цель: настроить сеть так, чтобы хост и гость видели друг друга (например, хост мог зайти на гостя по SSH), плюс у гостя была возможность выхода в интернет. У меня хост - Fedora 15, гость - Debian Squeeze.

  • 1. В настройке сети гостя выбрал "Виртуальный адаптер хоста".

У меня виртуальный адаптер хоста vboxnet0 был не найден, поэтому пришлось добавить его на хосте командой

#/opt/VirtualBox/VBoxNetAdpCtl vboxnet0 add

Путь к команде VBoxNetAdpCtl может отличаться в зависимости от способа установки программы VirtualBox.
vboxnet0 получил адрес 192.168.56.1, сетевое устройства гостя 192.168.56.101.

  • 2. У гостя добавил маршрут
#route add default gw 192.168.56.1 eth0

Чтобы не добавлять его каждый раз вручную после загрузки системы, поместил эту команду в /etc/rc.local.

  • 3. У хоста в файле /etc/sysctl.conf изменил
net.ipv4.ip_forward = 0

на

net.ipv4.ip_forward на = 1

Этот шаг можно выполнить иначе, поместив в /etc/rc.local следующую команду

echo 1 > /proc/sys/net/ipv4/ip_forward

Путь к rc.local может отличаться, например у меня на хосте это /etc/rc.d/rc.local.

  • 4. На хосте добавил в файл /etc/sysconfig/iptables добавил два правила (перед REJECT'ом FORWARD'а)
-A FORWARD -s 192.168.56.1/24 -j ACCEPT
-A FORWARD -d 192.168.56.1/24 -j ACCEPT

Правила iptables у вас могут храниться в другом файле.
Если у вас нет правил в iptables, запрещающих FORWARD, то этот шаг можно пропустить.

  • 5. На хосте в /etc/rc.d/rc.local добавил
iptables -A POSTROUTING -t nat -s 192.168.56.1/24 -j SNAT --to-source 10.10.11.222

10.10.11.222 - адрес сетевого устройства хоста, подключенного к интернету.

Если вы сделали все так, как описано выше и у вас не заработало, перезагрузите хост. Обращайте внимание на пути к файлам, командам. ip-адреса тоже указывайте свои.