Продвинутое
WSL2 и Docker через Clash Verge
Прокси работает в Windows, а curl внутри WSL2 всё равно отваливается по таймауту. Это не баг: у WSL2 своя виртуальная сеть, и 127.0.0.1 там указывает на саму WSL, а не на хост.
Сначала разрешите доступ из локальной сети
Включите доступ из LAN в настройках, иначе ядро слушает только 127.0.0.1 и WSL до него не дотянется. На запрос брандмауэра Windows ответьте «разрешить». Подробности — в раздаче прокси по локальной сети.
Партнёрский материалОткуда взять ссылку на подписку?Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик.Получить быстрые серверыНаправляем WSL на хост
export hostip=$(ip route show | grep -i default | awk '{print $3}')
export http_proxy="http://$hostip:7897"
export https_proxy="http://$hostip:7897"
Адрес хоста может меняться при каждом перезапуске WSL, поэтому он читается из таблицы маршрутизации, а не прописан жёстко. Добавьте эти строки в ~/.bashrc — и больше их не набирать. Порт берите свой смешанный; если меняли, см. конфликт портов.
Зеркальный режим проще
Свежие сборки Windows 11 позволяют WSL зеркалировать сетевой стек хоста. В %USERPROFILE%\.wslconfig:
[wsl2]
networkingMode=mirrored
После wsl --shutdown и перезапуска внутри WSL напрямую работает 127.0.0.1:7897. В Windows 10 такого режима нет — там остаётся только вариант выше.
Docker
Изнутри контейнера хост доступен как host.docker.internal. Прокси для сборки образа передаётся отдельно: переменные окружения времени выполнения на этап сборки не наследуются:
docker build --build-arg http_proxy=http://host.docker.internal:7897 .
Включённый TUN тоже не гарантирует перехват трафика WSL2 — маршрутизацией этого виртуального адаптера заведует Hyper-V. Переменные окружения остаются надёжным способом.
Установщик Windows 64-бит · v2.5.1 · бесплатно и открыто