|
|
### **Запуск 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/>
|
|
|
 <br/>
|
|
|
 <br/>
|
|
|
|
|
|
---
|
|
|
|
|
|
#### **Windows и macOS**
|
|
|
1. Установите WireGuard с [официального сайта](https://www.wireguard.com/install/).
|
|
|
2. Нажмите **"Добавить туннель"** в нижнем левом углу и выберите файл `peerN.conf`.
|
|
|
3. Альтернативный вариант: вместо загрузки файла можно выбрать **"Добавить пустой туннель"** и вручную вставить содержимое `peerN.conf`.
|
|
|
|
|
|
**Примеры интерфейса на Windows:**<br/>
|
|
|
 <br/>
|
|
|
 <br/>
|
|
|
 <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
|
|
|
``` |