1

Я использую Laravel Homestead с Vagrant, и я подумал, что будет разумнее использовать Hyper-V вместо Virtual Box, поскольку он интегрирован с Windows.

Здесь моя проблема. Время от времени моя виртуальная машина Hyper-v получает новый IP-адрес, обычно 172.20.83.X. Это портит мой файл hosts, когда я использую ips для тестирования доменов. Таким образом, каждый раз, когда мой сервер hyper-v получает новый ip, мне приходится повторно вводить новый ip, который быстро становится очень утомительным.

Я задаюсь вопросом, есть ли способ, которым я могу установить IP-адрес всегда одинаковым на моей машине.

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

2 ответа2

1

Похоже, что внешний DHCP-сервер с областью действия 172.20.23.X предоставит IP-адреса для ваших виртуальных машин. Вы можете использовать фильтры в консоли DHCP, чтобы запретить DHCP-серверу выдавать адреса этим машинам, введя mac-адрес виртуальной машины. Как показано ниже:

Затем вы можете использовать другой DHCP для установки зарезервированных адресов для вашей виртуальной машины (насколько я понимаю, вы не хотите получать адрес в 172.20.83.X scope, поэтому используйте другой DHCP) или вручную настройте статические адреса так, чтобы их информация совпадала с содержимым вашего файла хоста.

0

Аскер и все, кто имеет подобный вариант использования, скорее всего, работают на рабочей станции (не в редакции Windows Server) для целей локальной разработки, и в этом случае существует относительно простое решение.

Создать переключатель

В диспетчере Hyper-V создайте новый виртуальный коммутатор на Actions panel -> Virtual Switch Manager... -> Create Virtual Switch . Предполагая, что виртуальная машина должна иметь возможность подключаться к Интернету, выберите тип External коммутатора.

На следующем экране присвойте коммутатору имя, например, с поддержкой internet-enabled , и выберите физический сетевой интерфейс, подключенный к Интернету.

Результирующий переключатель должен выглядеть примерно так:

Жесткий код IP-адреса коммутатора (шлюз для виртуальной машины)

Найдите сетевой адаптер, связанный с новым коммутатором, т. Е. В разделе Control Panel -> Network and Internet -> Network Connections ; его имя будет отражать имя, данное на предыдущем шаге, например, vEthernet (internet-enabled) . Щелкните правой кнопкой мыши адаптер и выберите « Properties .

Затем нажмите « Internet Protocol Version 4 (TCP/IPv4) и нажмите « Properties . Введите 192.168.10.1 для IP address и 255.255.255.0 для Subnet mask . Настройки должны выглядеть так:

Назначить статический IP-адрес в гостевой виртуальной машине

Последний шаг - назначить статический IP-адрес в гостевой виртуальной машине.

К сожалению, Vagrant не поддерживает (начиная с v2.2.1) статическую конфигурацию IP (см. Https://github.com/hashicorp/vagrant/issues/8384 ), поэтому этот статический IP нельзя назначить до подготовки виртуальной машины.

Пока Vagrant не поддерживает эту возможность, можно просто подготовить ВМ в обычном режиме и впоследствии отредактировать конфигурацию сети.

Процесс установки статического IP-адреса варьируется в зависимости от гостевой ОС, но в Ubuntu 18.04 LTS, например, это так же просто, как редактировать /etc/netplan/01-netcfg.yaml чтобы включить значения, которые соответствуют конфигурации виртуального коммутатора сверху (пробелы должен быть точным!)

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.10.10/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

После сохранения файла примените изменения с помощью:

$ sudo netplan apply

ВМ должна немедленно отражать статический IP-адрес, что можно подтвердить с помощью ifconfig:

$ sudo ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::215:5dff:fe38:12a  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:38:01:2a  txqueuelen 1000  (Ethernet)
        ...

Хост теперь может пинговать гостя в 192.168.10.10 , а гость может пинговать хоста в 192.168.10.1 .

Рекомендации:

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