Персональный VPN-сервер WireGuard с удобным веб-интерфейсом

Установка и настройка персонального сервера WireGuard может быть выполнена с помощью всего нескольких команд благодаря проекту WG-Easy. Этот проект основан на технологии Docker и разворачивается за несколько секунд. VPN-сервер WG-Easy не требователен к ресурсам сервера, поэтому может быть развернут на VPS (конфигурация VPS зависит от планируемого количества пользователей). Компания Introserv d.o.o. предлагает широкий выбор VPS по низким ценам в 9 локациях на 4 континентах, что особенно важно для настройки частных VPN-серверов. Образ сервера Docker по умолчанию настроен для работы с подсетями IPv4 и IPv6.

Процесс установки на сервер с ОС Linux

1. подключитесь к серверу по SSH

2. Установите движок Docker Engine:

curl -sSL https://get.docker.com | sh

3. Добавьте своего пользователя в группу Docker:

sudo usermod -aG docker $(whoami)

4. Запустите контейнер docker одной командой. Стандартная команда выглядит следующим образом:

docker run -d --name=wg-easy -e WG_HOST=YOUR_SERVER_IP -e PASSWORD=YOUR_ADMIN_PASSWORD -v ~/.wg-easy:/etc/wireguard -p 51820:51820/udp -p 51821:51821/tcp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv4.ip_forward=1" --restart unless-stopped weejewel/wg-easy

Важно! Перед выполнением команды необходимо заменить несколько переменных. Ниже мы приводим описание параметров, которые необходимо заменить на собственные значения:
"WG_HOST=" укажите IP-адрес вашего сервера вместо значения "YOUR_SERVER_IP".
"PASSWORD=" укажите пароль, который будет использоваться для входа в веб-панель вместо значения "YOUR_ADMIN_PASSWORD"

Необязательно. По умолчанию параметр "Разрешенный ip" имеет значение 0.0.0.0/0 - это означает, что весь трафик подключенного клиента будет проходить через VPN-сервер. При необходимости этот параметр можно настроить в загруженной конфигурации на стороне клиентского приложения.

Если необходимо изменить порт подключения к серверу WireGuard, то команда будет выглядеть иначе. Будет добавлен параметр -e WG_PORT=PORT_NUMBER, а также изменен параметр проброса порта в контейнер. Пример команды с измененным портом:

docker run -d --name=wg-easy -e WG_HOST=YOUR_SERVER_IP -e PASSWORD=YOUR_ADMIN_PASSWORD -e WG_PORT=2345 -v ~/.wg-easy:/etc/wireguard -p 2345:51820/udp -p 51821:51821/tcp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv4.ip_forward=1" --restart unless-stopped weejewel/wg-easy

5. После запуска контейнера перейдите по ссылке в браузере - YOUR_SERVER_IP:51821 и вы увидите форму для ввода пароля.

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

Эти конфигурации можно загрузить в виде файла для последующего импорта в клиентское приложение.

Или же конфигурация может быть применена на мобильном устройстве с камерой путем сканирования QR-кода.

Когда клиент подключен к серверу, активность будет видна в виде красного маркера, а также интенсивность потребления трафика


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

docker stop wg-easy

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

 docker rm wg-easy