Введение
В данной заметке разберем установку своего сервиса Wireguard с помощью Docker, вы можете выбрать любимого хостера и повторить все из данной инструкции.
Подготовка к установке Wireguard
Я буду производить установку на Debian 11
1. Для начала установим Docker с помощью официального скрипта:
curl https://get.docker.com -o install.sh && sh install.shsystemctl enable docker.service
systemctl enable dockerusermod -aG docker $USER2. Далее создадим нужные нам директории и наш docker-compose.yml:
mkdir -p /app/wireguardnano /app/wireguard/docker-compose.ymlУстановка Wireguard с помощью Docker
1. Будем использовать docker-compose.yml следующего содержания:
version: "2.1"
services:
  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - SERVERURL=auto
      - SERVERPORT=51820
      - PEERS=10
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=0.0.0.0/0
    volumes:
      - ./config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: alwaysНемного о параметрах нашего docker-compose.yml файла:
- PUID=1000 — ID пользователя запускающего наш контейнер (смотрим командой id -u от нашего пользователя)
- PGID=1000 — ID группы от которой запускаем контейнер (смотрим командой id -u от нашего пользователя)
- TZ=Europe/London — указываем часовой пояс (например Europe/London)
- SERVERURL=auto — вписываем свой домен для удобства или оставляем auto
- SERVERPORT=51820 — порт wireguard
- PEERS=10 — количество конфигов которые будут созданы, можно вписать именами (например tel, homepc, denis и т.д.)
- PEERDNS=auto — можем вписать известный вам DNS (8.8.8.8, 1.1.1.1 и т.д.) или оставить значение auto
- INTERNAL_SUBNET=10.13.13.0 — внутренняя виртуальная сеть
- ALLOWEDIPS=0.0.0.0/0 — диапазоны ip к которым узлы смогут подключаться с помощью VPN
- ./config:/config — место для хранения конфигов нашего контейнера
2. Далее запускаем наш контейнер:
docker compose up -dГотово, конфиги наших клиентов хранятся в директории /app/wireguard/config/, можем скопировать файл конфигурации клиента peerНОМЕР.conf с сервера с помощью WinSCP или другим удобным для вас способом или вывести QR код прямо в терминале командой приведенной ниже

Полезные команды
Показать QR код клиента в терминале:
docker exec -it wireguard /app/show-peer НОМЕР_ИЛИ ИМЯПросмотр логов контейнера для отладки проблем:
docker logs -f wireguardПодключиться в сам контейнер:
docker exec -it wireguard /bin/bashКак обновить Wireguard в Docker
1. Переходим в нашу директорию с Wireguard:
cd /app/wireguard2.Скачиваем новый образ, пересобираем контейнер и чистим от старых образов:
docker compose pull wireguard
docker compose up -d wireguard
docker image pruneКак удалить Wireguard
Остановим наш контейнер с Wireguard:
docker stop wireguard
Удалим контенер:
docker rm wireguard
Удалим образ Wireguard:
docker rmi ghcr.io/linuxserver/wireguard
Удалим директорию с конфигурационными файлами Wireguard:
rm -rf /app/wireguardКлиенты для использования Wireguard
Клиентов для Windows, macOS, Android, IOS, Linux можно скачать на официальном сайте.
Вывод
В данной небольшой заметке разобрали установку своего сервиса в Docker под названием Wireguard
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально:
