ВОЙТИ
    opened image

    WireGuard — это новейший VPN-сервер, привлекающий внимание своей высокой производительностью, безопасностью и простотой настройки. Однако управление WireGuard может стать еще проще, если использовать графический интерфейс пользователя (GUI) в среде Docker. В этом руководстве мы рассмотрим, как установить и настроить WireGuard GUI с помощью Docker и Docker-compose.

     

    1. Подготовка к установке Docker:

     

    Перед тем как начать, обновим пакетный менеджер и установим необходимые компоненты:

    apt-get update 
    apt-get install ca-certificates curl gnupg

     

    Следующий этап — добавление ключа репозитория Docker:

     

    install -m 0755 -d /etc/apt/keyrings 
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 
    chmod a+r /etc/apt/keyrings/docker.gpg

     

    Теперь добавим сам репозиторий Docker:

     

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

     

    Обновляем и устанавливаем Docker:

     

    apt-get update 
    apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

     

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

    docker --version

     

     

    Активируем автозапуск Docker при загрузке системы:

    systemctl enable docker

     

     

    2. Установка Docker-compose:

    Для установки Docker-compose выполним следующие команды:

    
     
    curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 
    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 
    chmod +x /usr/local/bin/docker-compose

     

    Для проверки:

     

    docker-compose --version

     

     

    3. Установка и настройка WireGuard GUI:

    Перейдите или создайте каталог для конфигурации:

    mkdir -p /home/wireguard && cd /home/wireguard

     

    Создайте файл docker-compose.yaml:

    vim docker-compose.yaml

     

    Вставьте в файл следующую конфигурацию:

     
    version: '3'
    
    services:
      wg-easy:
        image: weejewel/wg-easy
        container_name: WG-GUI
        restart: unless-stopped
        ports:
          - "51000:51820/udp"
          - "51000:51821/tcp"
        volumes:
          - ~/.wg-easy:/etc/wireguard
        environment:
          - WG_HOST=YOUR_SERVER_IP
          - PASSWORD=YOUR_ADMIN_PASSWORD
          - WG_PORT=51000
          - WG_MTU=1420
          - WG_PERSISTENT_KEEPALIVE=25
          - WG_DEFAULT_ADDRESS=10.0.0.x
          - WG_DEFAULT_DNS=1.1.1.1, 1.1.0.0
          - WG_ALLOWED_IPS=0.0.0.0/0
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv4.ip_forward=1
    

     

     

    Не забудьте заменить YOUR_SERVER_IP и YOUR_ADMIN_PASSWORD на соответствующие значения.

    В разделе environment в docker-compose.yml файле вы можете добавить следующие переменные:

     
    environment:
      - WG_HOST=vpn.myserver.com # Публичное доменное имя вашего VPN-сервера.
      - PASSWORD=foobar123       # Пароль для входа в Web UI.
      - WG_PORT=12345            # Публичный UDP-порт вашего VPN-сервера. WireGuard всегда будет слушать на порту 51820 внутри Docker-контейнера.
      - WG_MTU=1420              # MTU, который будут использовать клиенты. Сервер использует MTU по умолчанию от WireGuard.
      - WG_PERSISTENT_KEEPALIVE=25 # Значение в секундах для поддержания "соединения" открытым.
      - WG_DEFAULT_ADDRESS=10.6.0.x  # Диапазон IP-адресов клиентов.
      - WG_DEFAULT_DNS=8.8.8.8, 8.8.4.4 # DNS-сервер, который будут использовать клиенты.
      - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24 # Разрешенные IP-адреса, которые будут использовать клиенты.
    

     

    WG_ALLOWED_IPS определяет, какие IP-адреса и сети разрешены для трафика через WireGuard. Это определение того, какой трафик будет направляться через VPN.

     

    Когда вы подключаетесь к VPN, ваше устройство отправляет трафик в интернет через этот VPN-сервер. Но не весь трафик обязательно должен проходить через VPN; вы можете определить, какой именно трафик следует направлять через VPN, используя разрешенные IP-адреса.

    Пример:

    • WG_ALLOWED_IPS=0.0.0.0/0, ::/0: Это значит, что весь трафик (IPv4 и IPv6) будет направляться через VPN. 0.0.0.0/0 охватывает все IPv4-адреса, а ::/0 охватывает все IPv6-адреса.
    • WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24: Это значит, что только трафик, предназначенный для IP-адресов в диапазонах 192.168.15.0 - 192.168.15.255 и 10.0.1.0 - 10.0.1.255, будет направляться через VPN. Весь остальной трафик будет идти напрямую, минуя VPN.

    Таким образом, WG_ALLOWED_IPS позволяет вам контролировать, какой именно трафик будет передаваться через VPN-туннель. Это может быть полезно, например, если вы хотите, чтобы только определенные приложения или устройства использовали VPN, а остальной трафик шел напрямую.

     

    Важно также учесть, что если вы меняете значение WG_PORT, то также необходимо изменить настроенные порты в разделе ports вашего docker-compose.yml файла. Например, если вы устанавливаете WG_PORT=12345, то порты должны выглядеть так:

    ports:
      - "12345:51820/udp"
      - "12345:51821/tcp"
    

     

     

    Затем просто запустите WireGuard GUI:

     

    docker-compose up -d

     

     

    Теперь у вас есть функционирующий WireGuard с графическим интерфейсом пользователя, доступным через ваш браузер! 

    Вы можете подключиться по IP:PORT. В этом случае IP:55444 Пароль в панель мы задали в блоке environment.

     

     

     


     

    WireGuard GUI в среде Docker предоставляет простое и эффективное решение для управления вашим VPN. Это руководство поможет вам быстро настроить и начать использовать этот инструмент, обеспечивая высокую степень безопасности и удобства для вашей сети.