Configuring Proxies in WSL (Windows Subsystem for Linux)
Introduction
WSL (Windows Subsystem for Linux) allows running Linux within Windows. Configuring proxies in WSL differs from a standard Linux setup due to the specifics of WSL's network stack.
Basic Configuration
WSL2 and Proxies
WSL2 uses a virtual network. The host's IP from WSL2:
cat /etc/resolv.conf | grep nameserver
Configure proxies in ~/.bashrc or ~/.profile:
export http_proxy=http://host_ip:port
export https_proxy=http://host_ip:port
export no_proxy=localhost,127.0.0.1
Automatic Host IP Detection
The host's IP changes when WSL2 restarts. Automate this with a script:
HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export http_proxy=http://$HOST_IP:port
WSL1
WSL1 uses the host's network directly. Proxies are configured as in a standard Linux environment. Windows system proxies are not automatically passed through.
Advanced Configuration
Environment Variables
Most tools support standard environment variables for proxies:
- HTTP_PROXY / http_proxy — proxy for HTTP requests
- HTTPS_PROXY / https_proxy — proxy for HTTPS requests
- NO_PROXY / no_proxy — list of exceptions (addresses that bypass the proxy)
- ALL_PROXY / all_proxy — proxy for all protocols
SSL and Self-Signed Certificates
Corporate proxies often use their own SSL certificates. To work through them, you need to:
1. Obtain the proxy's CA certificate from the administrator
2. Add it to the system certificate store
3. Or disable SSL verification (for testing only)
Authentication
Two main authentication methods are supported:
By username and password — standard HTTP Basic authentication. Credentials are sent with each request. URL format: http://user:pass@proxy_ip:port
By IP address (whitelist) — your IP is added to a whitelist. No credentials need to be sent.
Verification
After configuration, verify:
1. Perform a test request through the proxy
2. Ensure the IP has changed
3. Check connection speed
4. Ensure there are no DNS leaks
Troubleshooting
Proxy Connection Issues
- Check the address and port for correctness
- Ensure the firewall is not blocking the connection
- Check proxy accessibility from your network
SSL Errors
- For corporate proxies, add the CA certificate
- For testing, temporarily disable SSL verification
- Update SSL libraries to the latest version
Authentication Errors
- Check the username and password
- Ensure the credentials format is correct
- Try URL encoding special characters in the password
Best Practices
- Use environment variables — for flexibility and security
- Do not hardcode credentials — use environment variables or configuration files
- Configure exceptions — do not proxy localhost and internal addresses
- Document settings — in the project's README or team wiki
- Test after changes — any configuration change requires verification
Conclusion
Correct proxy configuration ensures stable tool operation and secure connections. Follow the recommendations in this guide and always verify functionality after setup.