Настройка прокси-сервера в WSL2: Полное руководство для разработчиков

Что такое WSL2 и зачем ему прокси-сервер?

Windows Subsystem for Linux 2 (WSL2) позволяет запускать Linux-дистрибутивы прямо в Windows 10/11. Но при работе в корпоративных сетях или для доступа к геоблокированным ресурсам часто требуется прокси-сервер. WSL2 имеет собственную виртуальную сеть, что усложняет настройку прокси по сравнению с обычной Windows. Правильная конфигурация решает проблемы:

  • Доступ к npm/pip/gem репозиториям из-под Linux
  • Обход корпоративных firewall-ограничений
  • Безопасное шифрование трафика
  • Ускорение загрузки пакетов через кэширование

3 рабочих метода настройки прокси в WSL2

Метод 1: Переменные среды в .bashrc

  1. Откройте терминал WSL2
  2. Введите: nano ~/.bashrc
  3. Добавьте в конец файла:
    export http_proxy='http://ваш_прокси:порт'
    export https_proxy='http://ваш_прокси:порт'
    export no_proxy='localhost,127.0.0.1'
  4. Сохраните (Ctrl+O) и перезагрузите: source ~/.bashrc

Метод 2: Проброс Windows-прокси через .wslconfig

  1. Создайте файл C:UsersВаш_Пользователь.wslconfig
  2. Добавьте конфигурацию:
    [wsl2]
    networkingMode=bridged
    vmSwitch=Default Switch
  3. В WSL выполните: sudo ip route del default
  4. Настройте прокси в Windows как для основной системы

Метод 3: Локальный прокси-сервер (например, Squid)

  1. Установите Squid: sudo apt install squid
  2. Настройте /etc/squid/squid.conf:
    http_port 3128
    acl localnet src 192.168.0.0/16
    http_access allow localnet
  3. Перезапустите службу: sudo service squid restart

Типичные проблемы и решения

  • “Прокси игнорируется после перезагрузки”: Добавьте переменные в /etc/environment вместо .bashrc
  • Ошибки сертификатов: Скопируйте корневые сертификаты из Windows в WSL2 командой: sudo cp /mnt/c/Windows/System32/certutil.exe /usr/local/bin/
  • Конфликт VPN: Отключите GenerateResolvConf в /etc/wsl.conf и укажите DNS вручную
  • Медленная скорость: В .wslconfig добавьте memory=4GB и processors=2

FAQ: Частые вопросы о WSL2 и прокси

Q: Как проверить работу прокси?
A: Выполните curl -v http://ifconfig.me – в выводе должен отобразиться IP прокси.

Q: Почему не работают DNS-запросы?
A: Добавьте в resolv.conf DNS-серверы: nameserver 8.8.8.8

Q: Как настроить прокси для Docker в WSL2?
A: Создайте файл ~/.docker/config.json с содержимым:

{
  "proxies": {
    "default": {
      "httpProxy": "http://прокси:порт",
      "httpsProxy": "http://прокси:порт"
    }
  }
}

Q: Можно ли использовать прокси только для конкретных приложений?
A: Да, например для apt: создайте файл /etc/apt/apt.conf.d/80proxy с:

Acquire::http::Proxy "http://прокси:порт";

Q: Как синхронизировать настройки с Windows?
A: Экспортируйте переменные через setx WSLENV "HTTP_PROXY/up:HTTPS_PROXY/up" в PowerShell

Proxy Ninja
Добавить комментарий