Post

Minha experiência com WSL2 (modo de rede espelhado)

Minha experiência com WSL2 (modo de rede espelhado)

Minha experiência com WSL2 (modo de rede espelhado)

Migrei meu setup principal para o Windows Subsystem for Linux 2 (WSL2) para trabalhar com Rails e Docker. O destaque foi o modo de rede espelhado, que simplifica VPNs e ajustes de rede.

Initial Setup: Choosing the Right Environment

Escolhi Ubuntu 22.04 LTS pela estabilidade:

1
wsl --install -d Ubuntu-22.04

Isso entrega um ambiente Linux completo dentro do Windows.

Managing System Resources and Enabling Mirrored Network Mode

Por padrão o WSL2 pode consumir todo CPU/RAM. Limitei os recursos e habilitei rede espelhada via .wslconfig (C:\Users\<username>):

1
2
3
4
[wsl2]
memory=24GB
processors=6
networkingMode=mirrored

Isso limita RAM/CPU e faz o WSL herdar a rede do Windows (incluindo VPNs).

Why Mirrored Network Mode Is a Game-Changer

Sem o modo espelhado eu cuidava das VPNs dentro do WSL (openconnect, etc.). Agora o Windows gerencia as VPNs e o WSL herda a conectividade—even com múltiplas VPNs—reduzindo atrito.

Setting Up Docker in WSL2

Dispensei o Docker Desktop e instalei o Docker direto no WSL2 para melhor performance e menos conflitos:

  1. Install Docker:

    1
    2
    
    sudo apt update
    sudo apt install docker.io
    
  2. Configure Docker to Run Without Root:

    1
    
    sudo usermod -aG docker $USER
    
  3. Restart your WSL environment to apply the changes.

Com Docker nativo e rede espelhada, registries privados e recursos acessíveis só via VPN funcionam sem configuração extra.

Developing with Rails in WSL2

Mantenho o código dentro do file system do WSL (não em \\wsl$) para evitar lentidão de IO. Com rbenv configurado:

1
export PATH="$HOME/.rbenv/bin:$PATH"

Ruby e Rails rodam normalmente, e eu debugo com RubyMine.

Workflow Optimizations: Choosing the Right Mode

Workflows que funcionaram melhor:

  1. Rails nativo no WSL2 — tudo dentro do WSL como num Linux normal. Simples e rápido.
  2. Editar no Windows, rodar no WSL — código fica no WSL; editores/IDEs no Windows acessam via \\wsl$. Bom equilíbrio para quem usa RubyMine.
  3. Full Docker no WSL2 — containers para app + dependências; mais setup, porém portátil.

Final Thoughts: Why Mirrored Network Mode Is Essential

Rede espelhada acabou com o incômodo de VPN e deixou o trabalho multiambiente mais suave. Se você usa várias VPNs, habilite.

Final Tips

Tenha um plano B: uma VM ou dual-boot com Ubuntu LTS caso o WSL quebre na hora errada.


References:

Esta postagem está licenciada sob CC BY 4.0 pelo autor.