Перейти к содержимому
Главная страница » Установка NetBird на VPS с Docker — полное руководство по развертыванию

Установка NetBird на VPS с Docker — полное руководство по развертыванию

Узнайте, как установить NetBird на VPS с Docker за 15–20 минут. В этом руководстве мы развернем собственный VPN-сервер, настроим защищенную mesh-сеть, подключим Windows, Linux и мобильные устройства, а также рассмотрим архитектуру NetBird и лучшие практики эксплуатации.

Что такое NetBird

Если вам нужен современный VPN без сложной настройки WireGuard, постоянного редактирования конфигураций и ручного обмена ключами, NetBird — одно из лучших решений.

В отличие от классического WireGuard, где администратор самостоятельно управляет каждым пиром, NetBird автоматизирует практически весь процесс:

  • обмен ключами;
  • регистрацию новых устройств;
  • управление доступом;
  • маршрутизацию;
  • работу через NAT;
  • ACL;
  • подключение новых пользователей.

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

Когда стоит использовать NetBird

NetBird отлично подходит для:

  • домашней лаборатории (Homelab);
  • удаленного доступа к серверу;
  • объединения нескольких офисов;
  • безопасного подключения сотрудников;
  • доступа к Kubernetes;
  • защищенного SSH;
  • DevOps-инфраструктуры;
  • резервного VPN между дата-центрами.

Почему именно Docker

Официальная self-hosted версия NetBird распространяется именно через Docker Compose.

Это дает множество преимуществ.

  • быстрое развертывание
  • простое обновление
  • изоляция сервисов
  • удобное резервное копирование
  • переносимость между VPS

Практически вся установка занимает несколько минут.

Вариант 1: Запуск клиента NetBird (Agent)

Этот сценарий подходит, если у вас уже есть развернутый экземпляр NetBird (облачный или self-hosted), и вы хотите добавить к нему новую машину через Docker.

1. Базовый запуск с Setup Key

Для подключения к сети вам понадобится Setup Key, который можно создать в веб-интерфейсе вашего экземпляра NetBird .

Самый простой способ запустить клиента — использовать переменную окружения NB_SETUP_KEY:

bash

docker run --rm --name netbird-client \
  --hostname my-docker-host \
  --cap-add=NET_ADMIN --cap-add=SYS_ADMIN --cap-add=SYS_RESOURCE \
  -d \
  -e NB_SETUP_KEY="<ВАШ_SETUP_KEY>" \
  -v netbird-client:/var/lib/netbird \
  netbirdio/netbird:latest

Разбор параметров:

  • --cap-add=... : Добавляет необходимые ядерные возможности для работы WireGuard и eBPF .
  • -v netbird-client:/var/lib/netbird : Создает том для сохранения состояния клиента (ключи, конфигурация), чтобы при перезапуске контейнера не требовалась повторная авторизация .
  • NB_SETUP_KEY : Ключ для регистрации пира в сети .

Если вы используете Self-Hosted версию, необходимо указать URL вашего сервера через переменную NB_MANAGEMENT_URL:

bash

docker run ... -e NB_SETUP_KEY="..." -e NB_MANAGEMENT_URL="https://ваш-домен:443" ...

2. Запуск через Docker Compose

Для более удобного управления конфигурацией можно использовать docker-compose.yml :

yaml

services:
  netbird-client:
    container_name: netbird-client
    hostname: my-docker-host
    cap_add:
      - NET_ADMIN
      - SYS_ADMIN
      - SYS_RESOURCE
    devices:
      - /dev/net/tun
    network_mode: host
    environment:
      - NB_SETUP_KEY=<ВАШ_SETUP_KEY>
      - NB_MANAGEMENT_URL=https://ваш-домен:443  # Опционально для self-hosted
    volumes:
      - netbird-client:/var/lib/netbird
    image: netbirdio/netbird:latest

volumes:
  netbird-client:
    name: netbird-client

Важно: Режим network_mode: host часто требуется для корректной работы и упрощения маршрутизации, особенно если вы планируете использовать контейнер как роутер для трафика других сервисов на хосте .

3. Беспривилегированный режим (Rootless)

Если вы не можете или не хотите выдавать контейнеру повышенные привилегии, существует образ rootless. Он использует пользовательский стек WireGuard (Netstack) и не требует NET_ADMIN.

bash

docker run --rm --name netbird-client \
  -e NB_SETUP_KEY="<ВАШ_SETUP_KEY>" \
  -v netbird-client:/var/lib/netbird \
  netbirdio/netbird:rootless-latest

Ограничение: Rootless-режим подходит для входящих подключений, но может не поддерживать исходящий трафик в обход SOCKS-прокси .

4. Проверка статуса

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

bash

docker exec -it netbird-client netbird status

Вариант 2: Развертывание сервера NetBird (Self-Hosted)

Этот сценарий разворачивает полную инфраструктуру NetBird (Management, Signal, Relay, Dashboard) на вашем собственном сервере.

1. Быстрый старт (Quickstart Script)

Разработчики NetBird предлагают официальный скрипт быстрой установки, который автоматически генерирует файлы docker-compose.yml и config.yaml .

  1. Скачайте и запустите скрипт:bashbash <(curl -s https://raw.githubusercontent.com/netbirdio/netbird/main/scripts/quickstart.sh)Либо клонируйте репозиторий вручную:bashgit clone —depth 1 —branch $LATEST_TAG https://github.com/netbirdio/netbird.git cd netbird/infrastructure_files/ ./configure.sh
  2. Во время работы скрипт запросит:
    • Домен: Например, netbird.example.com. Должен быть направлен на IP вашего сервера .
    • Reverse Proxy (рекомендуется Traefik): Для автоматического получения TLS-сертификатов через Let’s Encrypt .
    • Email: Для уведомлений Let’s Encrypt.

2. Структура сгенерированных файлов

После выполнения скрипта в папке появятся файлы :

  • docker-compose.yml : Оркестрация контейнеров.
  • config.yaml : Основная конфигурация сервера (порты, хранилище, настройки аутентификации).
  • dashboard.env : Переменные окружения для веб-интерфейса.

3. Запуск и управление сервисами

Запустите все сервисы командой:

bash

docker compose up -d

Полезные команды управления :

КомандаОписание
docker compose psПроверить статус контейнеров
docker compose logs -fПосмотреть логи всех сервисов
docker compose pull && docker compose up -dОбновить образы и перезапустить сервисы
docker compose down --volumesОсторожно! Остановить и удалить все данные (включая БД)

4. Начальная настройка

После запуска откройте в браузере https://ваш-домен. Вы будете перенаправлены на страницу /setup для создания первого администратора (если пользователей еще нет) .

Порты: Для работы сервера требуется открыть порты 443 (HTTPS) и 3478/UDP (STUN).
Persistent Volume: Том netbird_data хранит базу данных SQLite. 
Обязательно делайте резервные копии этого тома, чтобы не потерять конфигурацию пиров и политик .
Управление ключами: Для автоматизации создания пиров используйте Setup Keys, а не интерактивный логин через браузер .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *