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 1cf562446b
Создал(а) '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

ЗАПУСК ДОКЕР-КОНТЕЙНЕРА ВПН КЛИЕНТА

Для корректной работы необходимо добавить параметр --privileged
Пример: docker run -d --rm --dns=8.8.8.8 --privileged --name wireguard_container wireguard_im

Для копирования конфига для внп-клиента можно выполнить следующую команду:
scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .

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

ЗАПУСК ДОКЕР-КОНТЕЙНЕРА

При запуске контейнера, чтобы он работал через сеть ВПН сервера, необходимо подключить его к докер контейнеру, внутри которого запущен ВПН-клиент. Обычно он называется (wireguard_container), образ этого контейнера лежит в wireguard_im.

Доп параментр для запуска: --network container:wireguard_container
Пример: docker run --rm --network container:wireguard_container -it ubuntu sh

УСТАНОВКА И ЗАПУСК WIREGUARD НА ПОЛЬЗОВАТЕЛЬСКОМ УСТРОЙСТВЕ

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

0.0) Перед установкой необходимо получить конфиги, если они уже есть, то можно переходить к пункту 1.1.
scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .

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

1.1) Идем на официальный сайт и ищем нашу ОС https://www.wireguard.com/install/

2.1) Для смартфонов устанавливаем Wireguard из магазина приложений
2.1.1) Запускаем и нажимаем на плюсик в верхнем правом углу
2.1.2) Далее выбираем "создать из файла или архива" и находим наш скачанный peerN.conf
2.1.3) Альтернативно, если мы знаем, что хотим установить впн на смартфон, то можно скачать с сервера файл не .conf, а .png. Это будет файл с qr-кодом, открыв который на компьютере и отсканировав на телефоне, конфиг добавится автоматически.

Alt Text

Alt Text

2.2) Для Windows и Mac похожая ситация
2.2.1) Достаточно нажать на кнопку "Добавить туннель" слева снизу и выбрать файл peerN.conf
2.2.2) Альтернативно, можно нажать ни на саму кнопку "Добавить туннель", а немного правее, и выбрать там пункт "Добавить пустой туннель". После чего, в появившееся окно вставить содержимое файла peerN.conf

Alt Text

Alt Text

Alt Text

2.3) Для Linux
2.3.1) В зависимости от используемого дистрибутива необходимо установить wireguard, способы установки описаны в пункте 1.
2.3.2) Далее необходимо создать папку wireguard, если ее нет в /etc/wireguard и поместить туда наш скачанный конфиг
2.3.3) Запустить подключение с помощью команды
wg-quick up peerN , где peerN - это название нашего файла peerN.conf
2.3.3.1) Чтобы отключиться можно выполнить по аналогии
wg-quick down peerN
2.3.3.2) Если не удалось подключиться, и повалились ошибки, необходимо проверить установленные пакеты, и если их нет, то доустановить:
apt update && apt install iproute2 iptables

Дополнительно

Настройка маршрутов

По умолчанию во всех конфигурационных файлах клиентов весь трафик будет идти через ВПН. За это отвечает параметр AllowedIPs.

В файле .conf он выставлен как AllowedIPs = 0.0.0.0/0. Понять это можно, как - данные по любому IP адресу отправляй через ВПН.

Если вы хотите пропускать только конкретные IP через ВПН, а остальные игнорировать, то есть несколько вариантов:

  1. Первый вариант использовать сайт https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/

    Там есть инструкция по тому, как с ним работать (кроме того, там довольно неплохо расписаны построения маршрутов, так что советую прочитать).

    Всё, что вам нужно будет оттуда, это скопировать получившиеся IP адреса для AllowedIPs и вставить в ваш конфигурационный сайт (список может быть очень большим).

  2. Второй вариант использовать ip route. В отличие от первого, который должен работать на всех устройствах, данный вариант работает только на Linux.

    Для этого в вашем конфигурационном файле в блоке [Interface] добавьте следующие строки:

[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 через 192.168.1.1 используя интерфейс eth0. А после отключения от ВПН, мы удаляем эти правила.

ВАЖНО: если мы хотим, чтобы трафик шел в интренет, то eth0 должен быть интерфейсом, предоставляющим эту возможность.

Узнать, какой интерфейс использовать можно через команду:

ip address

Проверить получившиеся маршруты можно через:

ip route show table main