Сервер Virtualbox / Топология клиента

У меня есть настольный компьютер с Ubuntu 14.04, на котором установлен VirtualBox. Я делаю две виртуальные машины, один сервер Ubuntu, другой клиент Lubuntu. Настройки по умолчанию позволяют мне подключать Интернет от гостей к Интернету через 3G-модем, подключенный к хост-компьютеру, так как гости по умолчанию используют NAT, но я не могу подключиться от клиента к серверу.

Я хочу разместить двух гостей в отдельной сети и разрешить гостевому серверу подключаться к Интернету через NAT с другим сетевым интерфейсом, а также заставить гостевого клиента подключаться к Интернету через гостевой сервер.

Я сделал следующее:

  • На гостевом сервере я добавил два сетевых интерфейса, один для локальной сети, а другой для NAT.
  • На гостевом клиенте я добавил только локальный сетевой интерфейс.

Что я должен сделать, чтобы гостевой сервер подключился к Интернету, а затем чтобы гостевой клиент также подключился к Интернету, но через гостевой сервер?

1 ответ

Решение

У вас есть список сетевых режимов VirtualBox в его документации.

В обеих системах вам нужна внутренняя сеть. Вы должны дать ему имя, вы можете создать несколько сетей в этом режиме. VirtualBox соединит всех гостей в одной внутренней сети, поэтому имена должны совпадать на обеих виртуальных машинах. По умолчанию должен работать прямо из коробки.

Серверу нужна внутренняя сеть с тем же именем и другой, которая подключается к миру, в вашем случае NAT.

Теперь гостевой сервер должен иметь возможность подключаться к Интернету через интерфейс NAT.

Дайте IP на машины

Чтобы клиент и сервер достигли друг друга, их интерфейсы должны быть настроены в одной сети. Вы можете сделать это вручную (статические адреса) или настроить DHCP-сервер на сервере.

Вот шаги, чтобы сделать это вручную:

root@server:~# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
root@client:~# ifconfig eth0 192.168.1.5 netmask 255.255.255.0

Вы можете установить любой IP-адрес, который вы хотите, но они должны быть в той же сети. Вот, eth0 на сервере машина ссылается на внутренний интерфейс, если вы установите интерфейс 1 как внутренний и 2 как NAT, вышеуказанные команды будут работать нормально.

Теперь вы должны быть в состоянии ping друг с другом, но пакеты с клиентского компьютера пока не смогут проходить через сервер, только на сервер.

Примечание. Эти изменения будут потеряны при следующей перезагрузке. Чтобы изменения были постоянными, их необходимо отредактировать и настроить. /etc/network/interfaces, Если вы настраиваете клиент с GUI с рабочего стола, пропустите настройку CLI.

Настроить пересылку

Вам необходимо настроить переадресацию. Вы могли бы просто сделать

root@server:~# echo 1 > /proc/sys/net/ipv4/ip_forward

но это будет работать только до перезагрузки машины. Вам нужно отредактировать /etc/sysctl.conf и раскомментируйте #net.ipv4.ip_forward=1 так это выглядит так:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Это настроит сервер на пересылку пакетов (при следующей перезагрузке).

Включить маскировку

Это настроит сервер для маскировки IP.

root@server:~# modprobe iptable_nat
root@server:~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
root@server:~# iptables -A FORWARD -i eth0 -j ACCEPT

Заботиться о eth0 а также eth1 здесь 2-я строка должна быть -o NAT_interface и 3-я строка -i Internal_interface,

Настройте клиент для прохождения через сервер

Этот параметр должен быть уже установлен, либо в графическом помощнике, либо путем редактирования /etc/network/interfaces/, На всякий случай, если он не применяется, добавьте маршрут по умолчанию через серверный компьютер:

root@client:~# route add default gw 192.168.1.1

Настроить DNS

Теперь вы сможете общаться с клиентского компьютера, но если вы настроили IP-адреса вручную, вам все равно нужно предоставить DNS-серверы, чтобы вы могли разрешать имена.

редактировать /etc/resolv.conf и добавьте серверы, которые вам нравятся:

nameserver 4.2.2.1
nameserver 4.2.2.2
nameserver 8.8.8.8
nameserver 8.8.4.4

Если вы настроили DHCP на серверном компьютере, вы уже должны были указать DHCP-серверу, какие DNS-серверы использовать (если нет, сделайте это сейчас).

Опять же, если вы настроили клиента с помощником GUI, просто убедитесь, что DNS действителен и пропустите этот раздел.

Другие вопросы по тегам