How to Configure WSL 2 Auto-Proxy in Windows 11 Using PowerShell

Developers operating inside enterprise corporate networks frequently contend with mandatory forward HTTP/HTTPS proxies, PAC configuration scripts, and corporate authentication firewalls. In traditional WSL 2 setups, Linux distributions remain unaware of Windows host proxy settings, forcing engineers to configure environment variables (http_proxy, https_proxy) manually and reconfigure apt.conf. Windows 11 incorporates native auto-proxy integration into WSL 2, automatically forwarding host proxy rules directly into Linux.

Understanding WSL 2 Auto-Proxy Mechanics

The auto-proxy subsystem bridges host and guest networking seamlessly:

  • Dynamic Host Synchronization: When the Windows host connects to a corporate network and configures proxy settings (manual proxies, WPAD, or PAC scripts), WSL 2 automatically routes outbound Linux web traffic through the same proxy tunnel.
  • Zero Configuration in Linux: Eliminates the need to export static proxy environment variables in ~/.bashrc or configure proxy certificates inside individual package managers.
  • Seamless Roaming: When transitioning between office corporate networks and home Wi-Fi, WSL 2 adapts immediately without requiring distribution restarts or configuration rollbacks.

Configuring Auto-Proxy in .wslconfig via PowerShell

To enable native auto-proxy routing globally across all WSL 2 distributions using PowerShell:

# Define global WSL configuration path
$wslConfigPath = "$HOME\.wslconfig"

# Construct modern experimental configuration payload
$configContent = @"
[wsl2]
networkingMode=mirrored
autoProxy=true
dnsTunneling=true
"@

# Write configuration file with UTF8 encoding
Set-Content -Path $wslConfigPath -Value $configContent -Encoding UTF8
Write-Host "Auto-proxy successfully configured in $wslConfigPath" -ForegroundColor Green

This automated script pairs autoProxy=true with dnsTunneling=true to guarantee clean corporate DNS and proxy resolution simultaneously.

Restarting WSL to Initialize Auto-Proxy

To apply the newly defined configuration parameters:

  1. Open an elevated PowerShell prompt and execute:
    wsl --shutdown
  2. Relaunch your Linux distribution:
    wsl
  3. Test external connectivity inside Linux through the corporate proxy:
    curl -I https://digitash.com
  4. The connection completes successfully through the corporate proxy without requiring any local proxy environment variables.

Configuring auto-proxy in WSL 2 eliminates corporate network friction, allowing developers to focus on building code seamlessly.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.