2

Я веб-разработчик, и до недавнего времени я использовал Ubuntu в качестве моей ОС. По многим причинам я переключился обратно на окна. Я все еще хочу сохранить свой сервер на платформе Linux, поэтому я настроил свой локальный сервер как виртуальную машину. Все отлично работает, но я немного борюсь с сетью. Поскольку я работаю в разных местах и хожу по клиентам, я подключаюсь к разного рода сетям с разными настройками. Это означает, что возможный диапазон IP-адресов очень динамичен, что вызывает проблемы при работе на локальном сервере. На данный момент у меня есть динамический IP на моем хосте и статический IP на моем госте. Таким образом, я могу получить доступ к серверу с моего хоста (добавив запись в файл hosts). У меня также есть подключение к интернету на гостя. Но как только я меняю сети, это не работает (при условии, что сеть имеет другую конфигурацию).

У меня вопрос, как настроить хост-гостевую сеть, поэтому независимо от того, к какой сети я подключаюсь, я могу сохранить свой статический IP-адрес на гостевой, который зарегистрирован в файле hosts на моем хосте, чтобы я мог получить доступ к веб-серверу, а также у меня будет интернет на госте?

Надеюсь, это имеет смысл.

Спасибо

5 ответов5

7

Кажется, вы используете сетевой режим моста для своей виртуальной машины. Это в основном соединяет вашего гостя с любой сетью, к которой подключен ваш хост - и требует соответствующей конфигурации.

Если ваша сетевая конфигурация часто меняется, вам лучше использовать NAT-сеть. Ваш хост действует как "маршрутизатор" для вашей виртуальной машины, поэтому вам не нужно постоянно адаптировать конфигурацию сети на гостевой.

Ваш хост также назначает (через DHCP) IP-адрес вашему гостю в частной сети. Вы можете просто назначить статический IP-адрес вашей виртуальной машине в той же сети и соответственно изменить файл hosts на вашем хосте.

Например: вы настраиваете сеть NAT для своей виртуальной машины, а вашему гостю назначается 192.168.15.3 через DHCP. Вы измените это вручную на 192.168.15.250, и на вашем хосте вы добавите 192.168.15.250 myserver в ваш файл hosts .

Затем вы можете даже переадресовывать отдельные порты (например, 80 или 443 для http и https), чтобы к вашей виртуальной машине можно было подключаться и с других компьютеров. Это более подробно описано в главе 6 руководства VirtualBox , а также доступны различные сетевые режимы.

2

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

Это позволит вам использовать основной адаптер в конфигурации NAT в соответствии с рекомендацией rhubee (которая предоставит вашей гостевой виртуальной машине доступ в Интернет), тогда как второй адаптер имеет статический IP-адрес для внутренней сети, который не будет меняться между хостом и гостем. Подойдет часть тестирования / настройки, так как вам, возможно, потребуется настроить некоторые статические маршруты, чтобы обеспечить трафик для маршрутов служб / портов через правильный интерфейс.

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

0

Нет необходимости регистрировать вашу виртуальную машину в сети как отдельную машину. Нет необходимости в записи файла hosts, просто NAT вашей виртуальной машины, вы можете получить доступ к ней как http://localhost:8000 если вы используете эту процедуру:

Зайдите в настройки для вашей виртуальной машины в VirtualBox => Сеть => Включить сетевой адаптер, подключенный к NAT. Advanced => Port Forwarding => введите это: Гостевой порт 80 Хост-порт 8000.

0

Я попытался бы использовать оба адреса, динамически назначаемые сетевым DHCP- сервером (в какой бы сети вы ни находились, я предполагаю, что будет иметь DHCP-сервер). Затем подключитесь к гостю, используя имя гостя..., для которого вам может потребоваться отредактировать файл hosts. Но, по крайней мере, вы уверены, что с точки зрения подсети оба будут на одном. Я понимаю, что вам, похоже, не нужно редактировать файл hosts, но вам, вероятно, нужно будет только время от времени редактировать его в зависимости от разрешения DNS сети хоста, к которой вы присоединились.

0

Это очень легко сделать ... В Windows откройте настройки вашей сети (ncpa.cpl). Перейдите в свою конфигурацию IPv4 и нажмите ADVANCED. Назначьте фиксированный IP-адрес в диапазоне вашей виртуальной машины, чтобы и Windows, и Linux находились в одной подсети. Ваша основная конфигурация Windows должна оставаться на DHCP. Таким образом, ваша сетевая карта идентифицирует себя как с внешней, так и с локальной сетью, и вы сможете связаться со всеми в обеих сетях.

Единственная проблема заключается в том, что вы можете вызвать конфликт IP-адресов, если посещающая сеть находится в том же диапазоне, и этот IP-адрес уже назначен кому-то другому. Если вы немного умны в своем выборе, вы действительно можете ограничить вероятность этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .