quinta-feira, 15 de maio de 2025

Permitir que o shell em WSL possa acessar uma VM do Hyper-V

Se você tentar acessar uma VM do Hyper-V utilizando a console do WSL no Windows, você verá que não irá funcionar, mesmo que o Powershell você consiga pingar a VM. O WSL 2 roda em uma máquina virtual leve e tem seu próprio endereço IP interno. Para acessar serviços rodando no WSL a partir da VM (ou vice-versa), você precisa garantir que as duas faixas de IP conversem entre si. 

Por exemplo, minha VM é um Ubuntu e o IP retornado pelo comando `ip address` é mostrado abaixo:


Se tento acessar via shell do WSL, o ping não funciona


Para resolver isto entre o command prompt do Windows ou no powershell e entre com o comando `ipconfig`. Você verá um conjunto de adaptadores de rede com diversos endereços. No meu caso, a informação importante estava no final da lista, como mostrado abaixo. O primeiro adaptador é do Hyper-V e o segundo é para o WSL.



São necessários dois comandos para liberar o acesso à estas redes. Você precisa entrar comandos abaixo no PowerShell em modo administrador para ter as permissões de liberação.

Set-NetIPInterface -ifAlias "vEthernet (Default Switch)" -Forwarding enable
Set-NetIPInterface -ifAlias "vEthernet (WSL (Hyper-V firewall))" -Forwarding enable


Estes dois comandos não retornam nenhum informação indicando que eles funcionaram (veja abaixo).


Contudo, você verá que o ping no WSL irá começar a responder.





Nenhum comentário:

Postar um comentário

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...