Как настроить соединение с Wireguard через Windows Subsystem for Linux (WSL)?

Как можно обеспечить доступ к гиту через Wireguard на WSL (Ubuntu 22.04), когда VPN-соединение запущено на основной ОС и не распространяется на WSL? Wireguard на WSL не устанавливается без дополнительных манипуляций. Какие есть стандартные способы решения этой проблемы?
  • 19 сентября 2023 г. 12:58
Ответы на вопрос 2
Для настройки соединения с Wireguard через Windows Subsystem for Linux (WSL) вам понадобится выполнить следующие шаги:

1. Установите WSL на ваш компьютер, если еще не установлено. Вы можете найти подробные инструкции по установке WSL в документации Microsoft.

2. Установите Ubuntu 22.04 на WSL. Вы можете найти его в Microsoft Store или воспользоваться командой `wsl --install --distribution ubuntu-2204`.

3. Установите Wireguard на WSL. Для этого выполните следующие команды в терминале WSL:

```
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt update
sudo apt install wireguard
```

4. Создайте конфигурационный файл Wireguard на WSL. Вы можете создать файл с именем `wg0.conf` в директории `/etc/wireguard/` и добавить в него необходимые настройки для вашего VPN-соединения. Пример файла конфигурации вы можете найти в документации Wireguard.

5. Запустите Wireguard на WSL, выполнив команду `sudo wg-quick up wg0` в терминале WSL.

Теперь вы можете использовать Wireguard на WSL для доступа к гиту, когда VPN-соединение запущено на основной ОС. 

Чтобы обеспечить доступ к гиту через Wireguard на WSL, вам нужно настроить маршрутизацию между WSL и основной ОС. Для этого выполните следующие шаги:

1. Откройте командную строку Windows с правами администратора.

2. Введите команду `netsh interface portproxy add v4tov4 listenport=22 listenaddress=127.0.0.1 connectport=22 connectaddress=<адрес_WSL>` для перенаправления трафика порта 22 TCP с основной ОС на WSL. Замените `<адрес_WSL>` на IP-адрес вашей WSL-установки (вы можете узнать его, выполнив команду `ip addr show eth0` в терминале WSL).

Теперь вы можете использовать Wireguard на WSL для доступа к гиту, просто используя localhost:22 в качестве адреса сервера гита. Например, `git clone ssh://git@localhost:22/repo.git`.
Попробуйте установить клиент WG внутри вашей виртуальной машины WSL или Docker контейнера. Если вы используете Windows, необходимо проверить, возможно ли это. Альтернативный вариант - создание полноценной виртуальной машины. Внутри этой виртуальной машины можно запустить Ubuntu Server и настроить Docker. По мере необходимости, установите клиент WG в Docker - все должно работать. Если используется NAT-сеть на виртуальной машине, то если WG включен на хосте, весь трафик из виртуальной машины также будет проходить через WG. Даже если WG включен в саму виртуальную машину, трафик из Docker тоже будет проходить через WG. Важно правильно настроить окружение уже на этапе настройки.
Похожие вопросы