Руководство / Продвинутое

Как направить WSL2 и Docker Desktop через Clash

Продвинутое · Обновлено 2025-09-22 · ~2 мин чтения

WSL2 работает в отдельной виртуальной сети, поэтому системная настройка прокси Windows для неё ничего не значит. Чтобы curl, apt или git внутри подсистемы ходили через прокси, их нужно вручную направить на хост.

Шаг первый: разрешить подключения из локальной сети

Включите Allow LAN на странице General. Без этого Clash слушает только 127.0.0.1, и соединения с виртуального адаптера WSL отвергаются сразу — это самая частая причина, по которой всё сделано по инструкции, а связи нет.

Партнёрский материалОткуда взять ссылку на подписку?Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик.Получить быстрые серверы

Шаг второй: указать адрес хоста внутри WSL

Адрес хоста в виртуальной сети может меняться после каждой перезагрузки, поэтому читать его из /etc/resolv.conf надёжнее, чем прописывать вручную. Добавьте в ~/.bashrc:

export hostip=$(grep nameserver /etc/resolv.conf | awk '{print $2}')
export http_proxy="http://$hostip:7890"
export https_proxy="http://$hostip:7890"

Если WSL2 работает в зеркальном сетевом режиме (networkingMode=mirrored в .wslconfig, только Windows 11), подсистема разделяет сетевой стек с хостом и достаточно обычного 127.0.0.1:7890 — строки выше не нужны.

Docker Desktop

Образы тянет демон Docker, а он не смотрит на переменные окружения внутри контейнеров. Впишите http://host.docker.internal:7890 в Settings → Resources → Proxies. Заставить ходить через прокси программы внутри контейнера — отдельная задача: передавайте -e http_proxy=... при docker run.

Последняя ловушка — брандмауэр Windows. Первое соединение из WSL блокируется вообще без запроса, так что проверьте правила для входящих и разрешите Clash for Windows в частных сетях.