### **Запуск Docker-контейнера VPN-клиента** Для корректной работы необходимо добавить параметр **`--privileged`**. **Пример запуска контейнера с WireGuard:** ```bash docker run -d --rm --dns=8.8.8.8 --privileged --name wireguard_container wireguard_im ``` Чтобы скопировать конфигурационный файл для VPN-клиента с сервера, используйте команду: ```bash scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf . ``` Где **peer5** — это идентификатор устройства. Рекомендуется заранее уточнить, какой номер у последнего выданного конфига, чтобы избежать конфликта при одновременном подключении нескольких устройств по одному конфигу. --- ### **Запуск Docker-контейнера через VPN-клиент** Чтобы контейнер работал через VPN-соединение, его необходимо подключить к контейнеру, в котором запущен VPN-клиент (обычно он называется **wireguard_container**). Для этого при запуске контейнера укажите параметр **`--network container:wireguard_container`**. **Пример запуска контейнера через VPN:** ```bash docker run --rm --network container:wireguard_container -it ubuntu sh ``` --- ### **Установка и запуск WireGuard на пользовательском устройстве** После загрузки конфигурационного файла необходимо настроить клиент WireGuard в зависимости от используемого устройства. #### **Шаг 0: Получение конфигурационного файла** ```bash scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf . ``` Рекомендуется заранее уточнить, какой номер у последнего выданного конфига. #### **Шаг 1: Установка WireGuard** Перейдите на официальный сайт [WireGuard](https://www.wireguard.com/install/) и выберите версию для своей операционной системы. --- ### **Настройка WireGuard на разных платформах** #### **Смартфоны (Android, iOS)** 1. Установите приложение WireGuard из магазина приложений. 2. Откройте приложение и нажмите на кнопку `+` в верхнем правом углу. 3. Выберите **"Создать из файла или архива"** и укажите загруженный файл `peerN.conf`. 4. Альтернативный вариант: если известно, что подключение будет использоваться на смартфоне, можно скачать QR-код (`peerN.png`). Откройте его на компьютере и отсканируйте камерой телефона. **Примеры интерфейса на iOS:**
![WireGuard iOS 1](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_ios1.png)
![WireGuard iOS 2](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_ios2.jpg)
--- #### **Windows и macOS** 1. Установите WireGuard с [официального сайта](https://www.wireguard.com/install/). 2. Нажмите **"Добавить туннель"** в нижнем левом углу и выберите файл `peerN.conf`. 3. Альтернативный вариант: вместо загрузки файла можно выбрать **"Добавить пустой туннель"** и вручную вставить содержимое `peerN.conf`. **Примеры интерфейса на Windows:**
![WireGuard Windows 1](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win1.png)
![WireGuard Windows 2](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win2.png)
![WireGuard Windows 3](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win3.png)
--- #### **Linux** 1. Установите WireGuard: ```bash sudo apt update && sudo apt install wireguard ``` Для других дистрибутивов инструкции находятся [на официальном сайте](https://www.wireguard.com/install/). 2. Создайте папку `/etc/wireguard`, если ее нет: ```bash sudo mkdir -p /etc/wireguard ``` 3. Скопируйте загруженный конфиг в `/etc/wireguard/`: ```bash sudo cp peerN.conf /etc/wireguard/ ``` 4. Запустите VPN: ```bash sudo wg-quick up peerN ``` Где `peerN` — это название конфигурационного файла (например, `peer5`). 5. Чтобы отключиться: ```bash sudo wg-quick down peerN ``` 6. Если не удалось подключиться и появляются ошибки, установите необходимые пакеты: ```bash sudo apt update && sudo apt install iproute2 iptables ``` --- ### **Дополнительно: настройка маршрутов** По умолчанию весь трафик идет через VPN. Это регулируется параметром `AllowedIPs` в файле `.conf`. #### **Вариант 1: Разрешить только определенные IP-адреса через VPN** Можно использовать онлайн-калькулятор: [WireGuard AllowedIPs Calculator](https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/) В нем можно указать список исключений, после чего скопировать и вставить сгенерированные IP-адреса в `AllowedIPs`. #### **Вариант 2: Использование `ip route` для настройки исключений (Linux)** Добавьте в конфигурационный файл WireGuard (`peerN.conf`) исключения, которые должны проходить **мимо VPN**: ```ini [Interface] PrivateKey = ... Address = ... # Добавляем маршруты перед включением WireGuard PreUp = ip route add 1.2.3.4 via 192.168.1.1 dev eth0 PreUp = ip route add 5.6.7.0/24 via 192.168.1.1 dev eth0 # Удаляем маршруты после отключения WireGuard PostDown = ip route del 1.2.3.4 via 192.168.1.1 dev eth0 PostDown = ip route del 5.6.7.0/24 via 192.168.1.1 dev eth0 [Peer] PublicKey = ... AllowedIPs = 0.0.0.0/0 ``` В этом примере: - `1.2.3.4` и `5.6.7.0/24` будут направляться через основной интерфейс `eth0`, а не через VPN. - После отключения WireGuard исключения удаляются. Чтобы правильно указать интерфейс (`eth0`), используйте команду: ```bash ip address ``` Для проверки маршрутов выполните: ```bash ip route show table main ```