Еще один способ настройки сети в VirtualBox - dim13/lor GitHub Wiki

Цель: настроить сеть так, чтобы хост и гость видели друг друга (например, хост мог зайти на гостя по 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-адреса тоже указывайте свои.