Любой инструмент удаленного доступа, который вам не принадлежит, — это риск. Коммерческие VPN-шлюзы логируют ваш трафик, SaaS-платформы zero-trust хранят у себя ключи ваших пиров. А плата «за пользователя», которая выглядит разумной для маленькой команды, быстро растет вместе со штатом.
NetBird — это open-source overlay-сеть на базе WireGuard, которую вы хостите сами. Приватные ключи не покидают ваши девайсы, а политики доступа лежат на вашем собственном сервере.
В этом гайде — реальная установка NetBird на тариф Start от is*hosting. К концу у вас будет рабочая панель управления, первый подключенный пир и настроенные политики доступа.
Что делает NetBird
NetBird — это платформа zero-trust сети, которая собирает четыре компонента в единый разворачиваемый стек.
Management service — это control plane. Он хранит карту сети, раздает публичные ключи WireGuard между авторизованными пирами, назначает адреса из блока 100.64.0.0/10, управляет правилами контроля доступа, обслуживает приватный DNS и логирует сетевую активность. Работает как контейнер netbird-server — он объединяет то, что в старых развертываниях NetBird крутилось в четырех отдельных контейнерах (management, signal, relay и STUN).
Signal service отвечает за обнаружение пиров. Прежде чем два пира смогут общаться напрямую, им нужно обменяться ICE-кандидатами. Signal — брокер этого обмена. Он ничего не хранит и ничего не видит: сообщения шифруются point-to-point. Как только соединение установлено, Signal выходит из процесса.
Relay service — это запасной путь. Когда прямые WireGuard-туннели не работают из-за carrier-grade NAT или строгих файрволов, трафик идет через реле. Шифрование WireGuard при этом сохраняется, так что оператор реле не видит ничего полезного.
Client agent запускается на каждом пире: ваш VPS, ваш ноутбук, рабочая станция разработчика. Он генерирует локальный приватный ключ, который никогда не покидает машину, регистрируется в Management и настраивает WireGuard-туннель.
Две вещи по умолчанию выключены и требуют ручных шагов:
- Проверки состояния устройства (device posture — проверка, что подключающаяся машина соответствует вашему базовому уровню безопасности) требуют облачного плана Business или эквивалентной self-hosted конфигурации.
- Внешний SSO с провайдерами вроде Okta или Azure AD требует дополнительной настройки identity provider после первичной установки. Быстрый старт использует встроенный IdP NetBird на базе Dex — он обслуживает локальные учетные записи и позволяет добавить внешних провайдеров позже прямо из панели.
NetBird работает на Linux, Windows, macOS, iOS, Android, в Docker-контейнерах и на роутерах. Самому серверу управления нужен Linux.
NetBird против NetBird Cloud: когда есть смысл в селф-хостинге
Облачная версия бесплатна до 5 пользователей. Как только понадобится шестой, вы переходите на план Team — $6 за пользователя в месяц со всех сразу, то есть 6 человек стоят $36 в месяц. VPS на тарифе Start от is*hosting закрывает то же развертывание за $10,19 в месяц (при годовой оплате) — без потолка по пользователям, без лимита на машины, и с ключами пиров и логами доступа, которые остаются на вашей инфраструктуре.
Аргумент про юрисдикцию важен для команд, работающих с регулируемыми данными. С 40+ локациями серверов у is*hosting вы можете разместить сервер управления NetBird в том же регионе, что и остальная инфраструктура. Так координационный трафик пиров не уходит в сторонние сети, и выполняются требования к тому, где движутся данные control plane.
Для маленьких команд, у которых на VPS уже есть другие сервисы, добавить NetBird на тот же сервер стоит ноль. Три контейнера рядом с остальными Docker-нагрузками съедают около 580 MB RAM.
Что понадобится перед установкой
Прежде чем запускать инсталлер, подготовьте:
- Доменное имя с A-записью, указывающей на публичный IP вашего VPS (например, netbird.yourdomain.com). Инсталлеру это нужно для выпуска TLS-сертификатов.
- Установленные на сервере curl, jq и Docker с плагином Compose.
- Открытые входящие TCP-порты 80 и 443 и открытый входящий UDP-порт 3478 для STUN-согласования пиров.
- Root-доступ по SSH.
Минимальные требования NetBird — 1 CPU и 2 GB RAM. Тариф Start покрывает это с запасом.
|
Размер команды / сценарий |
RAM |
CPU |
Тариф is*hosting |
|
До ~10 пиров, легкая нагрузка по политикам |
2 GB |
2 CPU |
Start ($10,19/мес, годовая оплата) |
|
10–50 пиров, с включенным логированием активности |
4 GB |
3 CPU |
Medium ($21,24/мес, годовая оплата) |
Все тарифы is*hosting по умолчанию включают 1 выделенный IPv4 — он выбран заранее при оформлении заказа и не может быть удален. NetBird требует публично доступный IP для Let's Encrypt-челленджа инсталлера и для сигналинга пиров, так что это требование уже закрыто.
Еженедельные бэкапы VPS тоже входят во все тарифы. Docker не предустановлен — вы поставите его на Шаге 1.
Закажите VPS на is*hosting. Выберите в качестве операционной системы CentOS 9 x64. Тариф Start (2 CPU / 2 GB RAM / 30 GB SSD) за $10,19/мес (годовая оплата) — хороший выбор для первого развертывания NetBird. Start идет с 3 ТБ трафика по счетчику; трафик control plane у NetBird легкий, так что этот потолок вряд ли станет проблемой.
VPS
KVM VPS с выделенным IPv4 в комплекте, 2 GB RAM и CentOS 9 — хватит для полного стека NetBird, в 40+ локациях рядом с вашей инфраструктурой.
Как установить NetBird на VPS

Шаг 1. Установить Docker
Подключитесь к серверу по SSH под root и установите Docker:
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
Проверьте, что и движок Docker, и плагин Compose работают:
docker --version
docker compose version
Вывод будет похож на то, что мы получили на тестовом сервере для этого гайда:
Docker version 29.6.0, build fb59821
Docker Compose version v5.2.0
Одно, о чем стоит помнить на CentOS 9: если установлен podman-docker (он идет по умолчанию в некоторых образах CentOS 9), он конфликтует с Docker CE. Удалите его перед запуском скрипта установки:
dnf remove -y podman-docker
Docker управляет своими правилами iptables/nftables и из коробки не дружит с firewalld. Если firewalld запущен, он может при перезагрузке перезаписать или сбросить цепочку DOCKER и сломать сеть контейнеров. Проверьте статус после установки:
systemctl status firewalld
Если он активен и больше ни для чего на этой машине не нужен, отключите его:
systemctl disable --now firewalld
Если firewalld нужен для других сервисов, вместо полного отключения добавьте цепочку Docker в trusted-зону — точное правило смотрите в заметках Docker по firewalld.
Шаг 2. Направить домен на VPS
В панели вашего DNS-регистратора добавьте A-запись для выбранного поддомена (например, netbird.yourdomain.com), указывающую на публичный IP VPS. Инсталлер прогоняет Let's Encrypt-челлендж через порт 80, прежде чем сможет продолжить.
Распространение DNS может занять от нескольких минут до нескольких часов — зависит от регистратора. Если шаг с TLS падает с ошибкой выпуска сертификата, значит домен еще не разрезолвился.
Убедитесь, что запись распространилась, прежде чем продолжать:
dig +short netbird.yourdomain.com
Вывод должен вернуть IP-адрес вашего сервера.
Шаг 3. Запустить инсталлер NetBird
Задайте домен и запустите скрипт установки:
export NETBIRD_DOMAIN=netbird.yourdomain.com
curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash
Скрипт спросит, какой обратный прокси использовать:
Which reverse proxy will you use?
[0] Traefik (recommended - automatic TLS, included in Docker Compose)
[1] Existing Traefik (labels for external Traefik instance)
[2] Nginx (generates config template)
[3] Nginx Proxy Manager (generates config + instructions)
[4] External Caddy (generates Caddyfile snippet)
[5] Other/Manual (displays setup documentation)
Enter choice [0-5] (default: 0):
Нажмите Enter, чтобы принять вариант по умолчанию (Traefik). Так поднимется контейнер Traefik, который автоматически выпускает TLS-сертификаты через Let's Encrypt.
Дальше скрипт спросит email для уведомлений Let's Encrypt, а затем — включать ли сервис NetBird Proxy:
Do you want to enable the NetBird Proxy service?
The proxy allows you to selectively expose internal NetBird network resources
to the internet. You control which resources are exposed through the dashboard.
Enable proxy? [y/N]:
Нажмите Enter, чтобы пропустить. Включить его можно позже из панели.
Скрипт генерирует docker-compose.yml, config.yaml и dashboard.env, затем тянет три образа и поднимает стек. На тарифе Start это заняло 3 минуты 16 секунд от старта до работающих контейнеров. Когда все поднято, инсталлер печатает:
==========================================
NETBIRD SETUP COMPLETE
==========================================
You can access the NetBird dashboard at:
https://netbird.yourdomain.com
Traefik is handling TLS certificates automatically via Let's Encrypt.
If you see certificate warnings, wait a moment for certificate issuance to complete.
Open ports:
- 443/tcp (HTTPS - all NetBird services)
- 80/tcp (HTTP - redirects to HTTPS)
- 3478/udp (STUN - required for NAT traversal)
Проверьте, что контейнеры запущены:
docker compose ps
Ожидаемый вывод:
NAME IMAGE COMMAND SERVICE CREATED STATUS
netbird-dashboard netbirdio/dashboard:latest "/usr/bin/supervisor…" dashboard 5 seconds ago Up 4 seconds 80/tcp, 443/tcp
netbird-server netbirdio/netbird-server:latest "/go/bin/netbird-ser…" netbird-server 5 seconds ago Up 4 seconds 0.0.0.0:3478->3478/udp
netbird-traefik traefik:v3.6 "/entrypoint.sh --lo…" traefik 5 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
netbird-dashboard и netbird-traefik обрабатывают входящий HTTPS; netbird-server — единственный контейнер, который напрямую биндит UDP-порт (3478 для STUN). Весь трафик management, signal и relay идет через Traefik на 443.
Шаг 4. Создать первую учетную запись администратора
Откройте браузер и перейдите на https://netbird.yourdomain.com. Сервер перенаправит на страницу настройки /setup. Вы увидите форму с тремя полями:
- Email address
- Your name
- Password
Заполните их и нажмите Create Account. Так создается первый администратор. После этого маршрут /setup закрывается навсегда, и последующие визиты ведут на стандартную страницу входа.
Войдите с только что созданными данными. Панель загрузится с пустым разделом Peers.
Как пользоваться NetBird: добавить пиры и управлять доступом

Добавляем первый пир
Для headless Linux-серверов правильный подход — setup keys. Браузерный SSO не нужен, что удобно для автоматической или неконтролируемой регистрации.
В панели перейдите в Peers и нажмите Add Peer — или зайдите в Settings → Setup Keys и нажмите Create Setup Key. Одноразовый ключ со сроком жизни 24 часа — самый безопасный вариант по умолчанию для регистрации одного сервера.
На машине-пире установите клиент NetBird:
curl -fsSL https://pkgs.netbird.io/install.sh | sh
Затем подключите ее к вашему self-hosted серверу управления с помощью setup key:
netbird up --setup-key <YOUR_SETUP_KEY> --management-url https://netbird.yourdomain.com
Терминал сразу подтвердит соединение:
Connected
Пир появляется в списке Peers в панели за несколько секунд, с автоматически назначенным адресом 100.64.x.x. Проверьте статус с самого пира:
netbird status
Здоровое соединение выглядит так:
Daemon status: Connected
Management: Connected
Signal: Connected
Relayed: false
Relayed: false означает, что между пирами установлен прямой WireGuard-туннель. Если стоит true — пиры за NAT-конфигурациями, которые блокируют прямой путь, и трафик идет через реле.
Создаем политику доступа
По умолчанию все пиры одного аккаунта видят друг друга. Чтобы применить принцип наименьших привилегий, зайдите в Access Control → Policies и нажмите Add Policy.
Сначала распределите пиры по именованным группам: зайдите в Peers, выберите пир и назначьте его в группу (например, «servers» или «devs»). Вернувшись в Policies, задайте группу-источник, группу-назначение и при желании укажите, какие порты и протоколы разрешены. Сохраните политику — NetBird сразу раздаст обновленные правила всем подключенным пирам.
Читаем лог активности
Зайдите в Activity в боковом меню. Каждое подключение и отключение пира, изменение политики и действие пользователя появляется здесь с временной меткой. Удобно для аудита — кто и когда получал доступ к каким ресурсам, без сбора логов с отдельных машин.
Как обновлять NetBird
Перед тем как тянуть новые образы, сделайте бэкап конфигурационных файлов и базы данных. Конфиги лежат в директории, откуда вы запускали инсталлер (по умолчанию /root):
mkdir backup
cp docker-compose.yml dashboard.env config.yaml backup/
Сделайте бэкап базы данных сервиса Management:
docker compose stop netbird-server
docker compose cp -a netbird-server:/var/lib/netbird/ backup/
docker compose start netbird-server
Затем тяните и пересоздавайте:
docker compose pull netbird-server dashboard
docker compose up -d --force-recreate netbird-server dashboard
Панель показывает индикатор обновления в левом нижнем углу навигации, когда доступна новая версия.
Тарифы VPS от is*hosting включают бесплатные еженедельные бэкапы на уровне сервера на всех планах. Эти снапшоты покрывают полное состояние сервера. Но точечный бэкап приложения выше восстанавливается быстрее, когда обновление сломало что-то конкретное: вы восстанавливаете два файла и директорию базы, а не откатываете весь VPS.
Хранилище бэкапов
Бесплатные еженедельные бэкапы VPS на всех тарифах — чтобы сломавшееся обновление NetBird не вынудило пересобирать ключи пиров и политики доступа с нуля.
Что у вас теперь работает
На тарифе Start от is*hosting (2 CPU / 2 GB RAM / 30 GB SSD, $10,19/мес при годовой оплате) полный стек NetBird ставится за минут 5. Установка тянет три образа общим весом около 760 MB и добавляет 1,3 GB на диск (с 1,8 GB занятого до 3,1 GB). Три контейнера (netbird-server, netbird-dashboard, netbird-traefik) под нагрузкой съедают вместе около 580 MB RAM.
Что у вас есть с этого момента: mesh-сеть на базе WireGuard, которая назначает каждому пиру стабильный адрес 100.64.x.x; веб-панель для управления пирами и политиками; TLS-защищенный management-трафик через Traefik с автопродлением сертификатов Let's Encrypt; локальные учетные записи через встроенный Dex IdP с возможностью позже добавить SSO от Google или Microsoft; лог активности; и приватный DNS, чтобы пиры находили друг друга по хостнейму.
Для команд, переросших бесплатный порог из пяти человек, селф-хостинг режет счет с $36/мес (6 пользователей на Team) до $10,19/мес (годовая оплата Start VPS) — независимо от размера штата. А для тех, у кого на VPS уже крутятся сервисы, добавить NetBird — это развернуть один Docker-стек, а не еще одну строчку в SaaS-счете.
Разбор первичной настройки VPS перед развертыванием любых инструментов — в гайде по настройке Linux VPS: там про харденинг SSH и базовую настройку системы. Если собираете self-hosted стек, гайд по Uptime Kuma покрывает добавление слоя мониторинга, который работает на том же VPS с NetBird.
Управляемый выделенный сервер
Мы позаботимся о настройке, обновлениях, мониторинге и поддержке сервера. А вы занимайтесь своими проектами.
От $66.67/месяц