ОБНОВИТЬ
В любом случае, если кто-нибудь наткнется на этот пост. Приведенное ниже решение действительно работает, голосование по этому вопросу без какой-либо обратной связи / конструктивной критики или выявления ошибок кажется неоправданным.
Цель
Мне нужен лучший способ настроить гостевой сервер ubuntu vbox6.1, чтобы иметь доступ в Интернет и включить хост рабочего стола ubuntu 20.04 для ssh в поле.
Прогресс / Исследования
Хотя использование двух комбинаций сетевых адаптеров с серверами виртуальных боксов для установления связи между хостом и гостем и доступа в Интернет для виртуального бокса является очень распространенным решением, эти распространенные методы имеют определенные оговорки.
комбинированный метод мостового адаптера и адаптера NAT - безусловно, самый простой и быстрый метод, но он поставляется с оговоркой, что если вы используете killswitch с вашим брандмауэром / VPN UFW, то очень часто вам придется настраивать параметры брандмауэра в зависимости от того, какой Wi-Fi сеть, к которой вы подключены, потому что адреса шлюза меняются (общая проблема для тех, кто использует статические IP-адреса в vbox). Если вы очень хорошо разбираетесь в правилах брандмауэра, то этот метод для вас.
Комбинированный метод адаптера NAT и адаптера только для хоста. Адаптер nat обеспечивает легкий доступ в Интернет внутри коробки, а адаптер только для хоста обеспечивает гостевую связь хоста для таких приложений, как apache. Предупреждение здесь заключается в том, что некоторые приложения настраиваются на основе IP-адреса основного адаптера при установке (это моя текущая проблема) и, поскольку IP-адрес NAT не может связаться с хостом, это создает проблему.
Решение, над которым я работаю, которое, возможно, немного сложно настроить на начальном этапе, заключается в настройке адаптера только для хоста для доступа в Интернет через основной сетевой адаптер хоста.
СМЫСЛ
ОДИН Адаптер vboxnet0 только для хоста для обеспечения ssh, связи между хостом и гостем и внешнего доступа в Интернет для любого количества vbox, которое вы хотите, со статическим или динамическим ips ... больше никаких головных болей с подключением vbox.
Вот плюсы и минусы вместе с моими шагами.
Шаг 1
Создайте адаптер только для хоста для вашей машины (vboxnet0)
У моего IP-адрес 192.168.51.1.
PRO:
у вас есть возможность включить DHCP-сервер, если вы планируете иметь несколько vbox на одном адаптере только для хоста.
Шаг 2:
Создайте статическую конфигурацию IP для вашего vbox (мой сервер Ubuntu 20.04). При желании вы можете пропустить этот шаг и просто использовать динамический ip
Я использую
сеть:
версия: 2
визуализатор: сетевой
Ethernet:
enp0s3:
адреса: ['192.168.51.47/24']
шлюз4: 192.168.51.1
серверы имен:
адреса: [127.0.0.1, 192.168.51.1, 8.8.8.8]
Про
Со статическим IP-адресом на вашей машине вы можете подключиться по SSH без использования второго адаптера NAT.
Шаг третий
Создайте простое, минимальное правило брандмауэра UFW для связи между хостом и гостем.
Это все, что требуется для настройки host-only адаптера для работы с UFW:
ufw разрешить вход | выход на vboxnet0
Про
- Используя этот метод, вы можете мгновенно создать связь хост-гость для нескольких виртуальных ящиков, используя одно правило брандмауэра, если каждый ящик находится в vboxnet0 (отлично, если вы планируете создать много виртуальных ящиков, которым требуется связь хост-гость).
Шаг четвертый
Создавать постоянный доступ в Интернет для vboxnet0 путем совместного использования основного сетевого адаптера хост-машины с помощью MASQUERADE
это мой текущий ПРОБЛЕМА. Я могу создать временный доступ в Интернет только для vboxnet0, потому что я недостаточно знаком с ip-таблицами и MASQUERADE.
В качестве временного решения я использую эти 4 команды внутри сценария bash:
sudo iptables -A FORWARD -o wg0 -i vboxnet0 -s 192.168.51.0/24 -m conntrack --ctstate NEW -j ПРИНЯТЬ
sudo iptables -A FORWARD -m conntrack --ctstate УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ
sudo iptables -t nat -F РАЗМЕЩЕНИЕ
sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
Где wg0 — основной сетевой адаптер моей хост-машины.
На этом этапе вы сможете пропинговать 8.8.8.8 изнутри vbox, чтобы убедиться, что у него есть доступ в Интернет.
Я получил вышеуказанные команды от:
https://help.ubuntu.com/community/Internet/ConnectionSharing
Может ли кто-нибудь закончить / отполировать метод адаптера только для хоста для создания доступа в Интернет для одного или нескольких vbox?
Похоже, это может помочь многим пользователям Ubuntu. С помощью этого метода ваши vbox'ы "сетевой портативный" и иметь доступ к Интернету с минимальными усилиями после первоначальной настройки.
Единственный минусы вот:
Сложная первоначальная настройка и виртуальные ящики недоступны для других компьютеров в вашей локальной сети, что незначительно, если вы просто занимаетесь локальной веб-разработкой.