Сервер 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 действителен и пропустите этот раздел.