Прокси для WSL2 и Docker

WSL2 и контейнеры Docker живут в собственных сетях и попросту не знают, что на хосте работает прокси, — apt, pip и docker pull продолжают отваливаться по таймауту. Есть два пути: явно указать им адрес прокси или перехватить всё через режим TUN.

Вариант 1: режим TUN, самый простой

  1. Включите режим TUN в Clash Verge — настройка описана в руководстве по TUN.
  2. Включите и «Разрешить локальную сеть», иначе трафик контейнеров и WSL не будет перехвачен.
  3. Выполните в WSL curl -I https://www.google.com и убедитесь, что запрос проходит.
Партнёрский материал Откуда взять ссылку на подписку? Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик. Получить быстрые серверы

Вариант 2: указать адрес прокси вручную

  1. Включите «Разрешить локальную сеть» в настройках Clash Verge, чтобы смешанный порт принимал внешние подключения — см. раздачу прокси в локальной сети.
  2. Узнайте адрес хоста изнутри WSL2: строка nameserver в выводе cat /etc/resolv.conf. При включённом зеркальном режиме сети используйте 127.0.0.1.
  3. Допишите в ~/.bashrc строки export http_proxy=http://АДРЕС_ХОСТА:7897 и export https_proxy=$http_proxy, затем выполните source ~/.bashrc.
  4. Образы Docker тянет демон, а не ваша оболочка, поэтому переменные окружения на него не действуют. В Docker Desktop укажите тот же адрес в Settings → Resources → Proxies.