Hyper‑V: в виртуальной машине нет интернета — настраиваем виртуальный коммутатор и DHCP (2025)

Чаще всего у ВМ нет интернета из‑за неверного типа коммутатора или потому, что адаптер ВМ «подвис» на несуществующем vSwitch. Ниже — правильные варианты подключения и быстрые команды.

Коротко: варианты

  • External — ВМ как обычное устройство в вашей сети, IP выдаёт роутер.
  • Internal + NAT — ВМ в отдельной подсети, интернет через NAT хоста.
  • Private — изолированная сеть между ВМ (без доступа к хосту/интернету).
Сделаю понятно. Настрою vSwitch, верну интернет в гостя, подправлю драйверы и правила брандмауэра.

1) External‑коммутатор: простой вариант

  • Откройте «Диспетчер Hyper‑V» → «Диспетчер виртуальных коммутаторов» → «Создать виртуальный коммутатор» → Внешняя сеть.
  • Выберите физический адаптер (Ethernet/Wi‑Fi). Оставьте отмеченным «Разрешить операционной системе управление этим адаптером».
  • В настройках ВМ → «Сетевой адаптер» → выберите созданный коммутатор.

PowerShell (Администратор) — выполнять по одной:

$nic = (Get-NetAdapter | Where-Object { $_.Status -eq 'Up' -and $_.ConnectorPresent } | Select-Object -First 1).Name
New-VMSwitch -Name "vExternal" -NetAdapterName $nic -AllowManagementOS $true

2) Internal + NAT: изолированная подсеть

PowerShell (Администратор) — вставить целиком:

# Создаём internal‑коммутатор
New-VMSwitch -Name "vInternal" -SwitchType Internal

# Назначаем IP шлюзу хоста в новой подсети
New-NetIPAddress -InterfaceAlias "vEthernet (vInternal)" -IPAddress 192.168.200.1 -PrefixLength 24

# Включаем NAT из этой подсети в интернет
New-NetNAT -Name "NAT200" -InternalIPInterfaceAddressPrefix 192.168.200.0/24

Подключите ВМ к «vInternal», внутри гостя установите IP/DNS автоматически или вручную: IP 192.168.200.x, шлюз 192.168.200.1, DNS — адрес вашего роутера или публичный.

3) Внутри гостя: IP и драйвер

Командная строка гостя — выполнять по одной:

ipconfig /all
ping 8.8.8.8
ping ya.ru

Если IP 169.254.x.x — DHCP не отвечает. Проверьте тип коммутатора и подключение ВМ. В гостях Windows поставьте «Службы интеграции» (для старых систем) и убедитесь, что сетевой адаптер «Подключен».

4) Когда ничего не помогает

PowerShell (Администратор на хосте) — выполнять по одной:

# Переустановить компоненты виртуального коммутатора на физическом адаптере
Disable-NetAdapterBinding -Name "*" -ComponentID vms_pp
Enable-NetAdapterBinding -Name "*" -ComponentID vms_pp

# Удалить и создать заново проблемный vSwitch
Get-VMSwitch | Where-Object Name -eq "vExternal" | Remove-VMSwitch -Force
New-VMSwitch -Name "vExternal" -NetAdapterName (Get-NetAdapter | ? Status -eq Up | Select -First 1).Name -AllowManagementOS $true

Также проверьте в свойствах физического адаптера, что галочка «Hyper‑V Extensible Virtual Switch» включена.

Читайте также: