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.
ilyukhin 5400b546cb
Изменил(а) на 'README.md'
3 months ago
README.md Изменил(а) на 'README.md' 3 months ago
wg_ios1.png fix 1 year ago
wg_ios2.jpg wireguard ios guide 1 year ago
wg_win1.png wireguard windows guide 1 year ago
wg_win2.png wireguard windows guide 1 year ago
wg_win3.png wireguard windows guide 1 year ago

README.md

Запуск Docker-контейнера VPN-клиента

Для корректной работы необходимо добавить параметр --privileged.

Пример запуска контейнера с WireGuard:

docker run -d --rm --dns=8.8.8.8 --privileged --name wireguard_container wireguard_im

Чтобы скопировать конфигурационный файл для VPN-клиента с сервера, используйте команду:

scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .

Где peer5 — это идентификатор устройства. Рекомендуется заранее уточнить, какой номер у последнего выданного конфига, чтобы избежать конфликта при одновременном подключении нескольких устройств по одному конфигу.


Запуск Docker-контейнера через VPN-клиент

Чтобы контейнер работал через VPN-соединение, его необходимо подключить к контейнеру, в котором запущен VPN-клиент (обычно он называется wireguard_container).

Для этого при запуске контейнера укажите параметр --network container:wireguard_container.

Пример запуска контейнера через VPN:

docker run --rm --network container:wireguard_container -it ubuntu sh

Установка и запуск WireGuard на пользовательском устройстве

После загрузки конфигурационного файла необходимо настроить клиент WireGuard в зависимости от используемого устройства.

Шаг 0: Получение конфигурационного файла

scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .

Рекомендуется заранее уточнить, какой номер у последнего выданного конфига.

Шаг 1: Установка WireGuard

Перейдите на официальный сайт WireGuard и выберите версию для своей операционной системы.


Настройка WireGuard на разных платформах

Смартфоны (Android, iOS)

  1. Установите приложение WireGuard из магазина приложений.
  2. Откройте приложение и нажмите на кнопку + в верхнем правом углу.
  3. Выберите "Создать из файла или архива" и укажите загруженный файл peerN.conf.
  4. Альтернативный вариант: если известно, что подключение будет использоваться на смартфоне, можно скачать QR-код (peerN.png). Откройте его на компьютере и отсканируйте камерой телефона.

Примеры интерфейса на iOS:
WireGuard iOS 1
WireGuard iOS 2


Windows и macOS

  1. Установите WireGuard с официального сайта.
  2. Нажмите "Добавить туннель" в нижнем левом углу и выберите файл peerN.conf.
  3. Альтернативный вариант: вместо загрузки файла можно выбрать "Добавить пустой туннель" и вручную вставить содержимое peerN.conf.

Примеры интерфейса на Windows:
WireGuard Windows 1
WireGuard Windows 2
WireGuard Windows 3


Linux

  1. Установите WireGuard:

    sudo apt update && sudo apt install wireguard
    

    Для других дистрибутивов инструкции находятся на официальном сайте.

  2. Создайте папку /etc/wireguard, если ее нет:

    sudo mkdir -p /etc/wireguard
    
  3. Скопируйте загруженный конфиг в /etc/wireguard/:

    sudo cp peerN.conf /etc/wireguard/
    
  4. Запустите VPN:

    sudo wg-quick up peerN
    

    Где peerN — это название конфигурационного файла (например, peer5).

  5. Чтобы отключиться:

    sudo wg-quick down peerN
    
  6. Если не удалось подключиться и появляются ошибки, установите необходимые пакеты:

    sudo apt update && sudo apt install iproute2 iptables
    

Дополнительно: настройка маршрутов

По умолчанию весь трафик идет через VPN. Это регулируется параметром AllowedIPs в файле .conf.

Вариант 1: Разрешить только определенные IP-адреса через VPN

Можно использовать онлайн-калькулятор:
WireGuard AllowedIPs Calculator

В нем можно указать список исключений, после чего скопировать и вставить сгенерированные IP-адреса в AllowedIPs.

Вариант 2: Использование ip route для настройки исключений (Linux)

Добавьте в конфигурационный файл WireGuard (peerN.conf) исключения, которые должны проходить мимо VPN:

[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), используйте команду:

ip address

Для проверки маршрутов выполните:

ip route show table main