You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
7.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### **Запуск 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:**<br/>
![WireGuard iOS 1](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_ios1.png) <br/>
![WireGuard iOS 2](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_ios2.jpg) <br/>
---
#### **Windows и macOS**
1. Установите WireGuard с [официального сайта](https://www.wireguard.com/install/).
2. Нажмите **"Добавить туннель"** в нижнем левом углу и выберите файл `peerN.conf`.
3. Альтернативный вариант: вместо загрузки файла можно выбрать **"Добавить пустой туннель"** и вручную вставить содержимое `peerN.conf`.
**Примеры интерфейса на Windows:**<br/>
![WireGuard Windows 1](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win1.png) <br/>
![WireGuard Windows 2](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win2.png) <br/>
![WireGuard Windows 3](https://git.ai.infran.ru/ilyukhin/docker-wireguard-client/raw/branch/main/wg_win3.png) <br/>
---
#### **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
```