В случае если вам понравилась эта статья, то можете поддержать автора, став спонсором на Boosty.
Если вы думаете, что NetBird — это просто ещё одно VPN приложение, которое может объединять ваши устройства в mesh-сеть, то … частично, да, вы правы.
Но на практике — это гораздо более гибкий инструмент, который закрывает сразу несколько задач: приватная сеть, доступ к ресурсам и теперь ещё и публикация сервисов наружу.
Предисловие
В homelab всё обычно начинается одинаково:
Сначала ты поднимаешь сервисы локально — всё работает идеально.
Потом появляется желание зайти к ним извне.
И тут начинается: проброс портов, NAT, firewall, динамический DNS, домены, HTTPS и постоянная паранойя «а всё ли я закрыл»?
Дальше — больше: появляется VPN (речь не про обход блокировок, товарищ майор, а про безопасность). Но VPN тоже не всегда идеален: нужно поднимать сервер, настраивать клиентов, разбираться с маршрутизацией, чинить доступ с мобильных сетей.
И в какой-то момент ты понимаешь, что занимаешься не сервисами, а сетью.
Вот здесь и выходит на сцену Netbird.
Что такое NetBird
NetBird — это система, которая создаёт приватную mesh-сеть между всеми твоими устройствами. Проще говоря:
Все твои серверы, ноутбуки, телефоны и контейнеры становятся частью одной виртуальной сети.
И всё это:
- без проброса портов
- без ручной настройки WireGuard
- без сложной сетевой логики
Чем он отличается от Pangolin
Если коротко:
- Pangolin — публикует сервисы наружу (разной степени доступа конечно)
- NetBird — соединяет устройства между собой
Но сейчас граница размылась.
NetBird теперь умеет: делать приватную сеть (его основная функция); давать доступ к ресурсам; публиковать сервисы наружу через встроенный прокси. Последнее уже новая функция, которая полностью меняет восприятие этого приложения.
То есть он превращается в универсальный инструмент доступа.
Основная идея: mesh-сеть
Вместо классического VPN (клиент → сервер), NetBird использует mesh сеть:
- устройства соединяются напрямую
- если не получается — используется relay
- маршруты строятся автоматически
Под капотом используется wireguard, но ты с ним почти не взаимодействуешь.
Почему это удобно
1. Никаких открытых портов
Твой сервер сам инициирует соединение наружу.
Это значит, что: не нужно трогать роутер; не нужно открывать порты; меньше рисков, связанных с возможной компрометацией сервисов.
2. Всё шифруется
Трафик идёт через WireGuard. На практике - это значит современная криптография, высокая производительность, минимальные пинги
3. Zero Trust подход
NetBird не доверяет сети — только пользователю и устройству. Ты контролируешь: кто именно подключается; к каким ресурсам подключается пользователь и по каким правилам (вернее ролям, так как там внедрен RBAC, хотя и на начальной стадии )
4. Простота
Тебе не надо писать конфиги вручную, генерировать ключи и дебажишь iptables
Ты просто устанавливаешь агента, логинишься и получаешь сеть.
Безусловно это не все возможности приложения, но я надеюсь, что читатели меня простят, если я не буду просто переводить сайт с документацией NetBird
Новая фишка Netbird: публикация сервисов
Раньше NetBird был чисто про организацию приватной сети и получения к ней доступа. Теперь он умеет работать как обратный прокси. Это означает:
- ты можешь публиковать сервисы наружу;
- без прямого открытия портов на домашнем сервере;
- с контролем доступа.
Фактически, внутренний сервис → доступен по домену; трафик проходит через NetBird; доступ тонко регулируется политиками. Это делает его похожим на:
- Pangolin
- Cloudflare Tunnel
Но с важным отличием от Cloudflare Tunnel:
всё остаётся под твоим контролем
Как это работает
Общая схема
- У тебя есть management server (в нашем случае это self-hosted сервер на VPS)
- Устройства подключаются к нему
- Между ними строится mesh-сеть
- При необходимости поднимается relay или используется direct connection
Компоненты
Management Server
Центральная точка управления:
- пользователи
- устройства
- политики доступа
Agents
Клиенты, которые ставятся на:
- серверы
- ПК
- ноутбуки
- контейнеры
Relay (если нужен)
Используется, если прямое соединение невозможно (NAT, CGNAT и т.д.)
Встроенный прокси
Отвечает за:
- публикацию сервисов
- маршрутизацию трафика
- доступ извне
Ключевые сценарии использования
1. Доступ к homelab из любой точки
Ты просто подключаешься — и:
- открываешь Proxmox
- подключаешься к NAS
- подключаешься по SSH
Как будто ты дома.
2. Объединение нескольких организаций
Например дом, VPS, офис
Все они становятся одной сетью.
3. Публикация сервисов
Теперь можно открыть доступ к веб-приложению по доменному имени, выдать доступ конкретным пользователям, не светить IP
4. Безопасный доступ для команды
Можно дать доступ разработчикам, друзьям и коллегам. Но это если они у тебя конечно есть.
Можно все сделать и в обратную сторону и ограничить все только нужными сервисами и только нужными портами
Требования к развертыванию
Минимальный набор
- Сервер (VPS или локальный)
- Домен
- Интернет-доступ у клиентов
В этом требования у Pangolin и NetBird похожи
Варианты развертывания
Облачный (самый простой)
Использовать hosted-версию NetBird.
Плюсы:
- быстро
- не нужна предварительная настройка.
Минусы:
- меньше контроля
- доступ из России на дату публикации статьи затруднен
Self-hosted (рекомендуется для homelab) в 2026 году
Ты поднимаешь:
- management server с помощью установочного скрипта, который ты берешь на сайте разработчика, отвечаешь на пару вопросов, установка проходит в автоматическом режиме.
И полностью контролируешь инфраструктуру.
Подготовка сервера
Базовые шаги:
- создать пользователя (не root)
- настроить SSH
- включить firewall
- открыть нужные порты
(всё как обычно для любого VPS)
Ниже примерный перечень действий, которые можно будет реализовать на VPS до развертывания NetBird
Процесс подготовки VPS
Базовая настройка безопасности VPS
После получения VPS первым шагом необходимо выполнить базовую настройку безопасности, чтобы минимизировать риски несанкционированного доступа. В первую очередь следует отказаться от работы под пользователем root и создать отдельного пользователя с правами sudo.
Работать под пользователем root небезопасно, поэтому сначала создадим нового пользователя и добавим его в группу sudo:
1adduser youruser2usermod -aG sudo youruserПроверим, что всё работает:
1su - youruser2sudo whoamiНастройка SSH (смена порта и отключение root)
Открываем конфигурационный файл SSH:
1sudo nano /etc/ssh/sshd_configНаходим и изменяем следующие параметры:
1Port 2222 (ставить такой порт это большая ошибка)2PermitRootLogin noЭто:
- изменит стандартный порт SSH (22 → любой свободный нестандартный порт )
- полностью запретит вход под root
Отключение входа по паролю (крайне рекомендуется)
Для дополнительной защиты рекомендуется разрешить только вход по SSH-ключам:
Включайте этот параметр только если у вас уже настроены SSH-ключи, иначе можно потерять доступ к серверу.
1PasswordAuthentication noНастройка firewall (UFW)
Установим и включим UFW:
1sudo apt update2sudo apt install -y ufwРазрешим только необходимые порты для работы Pangolin:
1sudo ufw allow номерпортадляssh,еслитыневключилдоступтолькопоключам/tcp2sudo ufw allow 80/tcp3sudo ufw allow 443/tcp4sudo ufw allow 51820/udpАктивируем firewall:
1sudo ufw enable2sudo ufw statusПрименение изменений SSH
После внесения изменений перезапускаем SSH-сервис:
1sudo systemctl restart sshОбязательная проверка подключения
Перед тем как завершить текущую SSH-сессию, откройте новое подключение и убедитесь, что всё работает:
1ssh youruser@your_ip -p номерпортадляssh,еслитыневключилдоступтолькопоключамТолько после успешного подключения можно закрывать старую сессию.
Настройка DNS
Базовые DNS-записи
Вам потребуется создать записи типа A (или AAAA для IPv6), указывающие на IP-адрес вашего VPS.
1. Создание wildcard-записи

2. Ожидание распространения DNS
Изменения DNS могут распространяться от 5 минут до 48 часов по всему миру.
Reverse Proxy
Reverse Proxy в NetBird позволяет публиковать внутренние сервисы, запущенные на пирах (peers) или за сетевыми ресурсами, в публичный интернет. NetBird выполняет завершение TLS (TLS termination), при необходимости применяет аутентификацию и ограничения доступа, а также проксирует входящий трафик через mesh-сеть NetBird к целевому сервису — без необходимости открывать порты или настраивать firewall на внутренних машинах.
Доступность: функция Reverse Proxy в настоящее время находится в стадии beta.
Требование для self-hosted: в self-hosted развертываниях необходимо использовать Traefik в качестве внешнего reverse proxy. Это единственный поддерживаемый прокси, обеспечивающий TLS passthrough, необходимый для корректной работы функции Reverse Proxy.
Как это работает
При создании сервиса reverse proxy NetBird автоматически выделяет публичный домен с TLS-сертификатом. Входящий трафик к этому домену поступает в кластер прокси NetBird, затем пересылается через зашифрованный туннель NetBird к целевому пиру или сетевому ресурсу, где запущено ваше приложение.
Целевой сервис должен быть доступен только внутри сети NetBird — ему не требуется публичный IP-адрес или открытые порты.

NetBird поддерживает два типа сервисов:
- HTTP-сервисы (Layer 7)
TLS завершается на прокси, далее HTTP-запросы проксируются на backend.
Поддерживаются:- маршрутизация по пути (path-based routing)
- проброс заголовка Host
- переписывание редиректов
- браузерная аутентификация (SSO, пароль, PIN)
- L4-сервисы (TCP, UDP, TLS)
Работают на уровне транспорта (Layer 4).
Прокси пересылает соединения или датаграммы без анализа содержимого.
В режиме TLS используется SNI-маршрутизация без завершения TLS.
Можно включить аутентификацию и ограничить доступ по IP или стране.
Концепция
Services (Сервисы)
Сервис — это основная единица конфигурации reverse proxy.
Сервис включает:
- Режим сервиса — HTTP (L7) или TCP/UDP/TLS (L4)
- Домен — публичный URL
- Targets — backend-цели
- Аутентификация — SSO / пароль / PIN / заголовки
- Ограничения доступа — IP, страна, CrowdSec
- Настройки
- Включение/выключение
Service modes (Режимы)
| Режим | Уровень | Описание |
|---|---|---|
| HTTP | L7 | Завершение TLS + HTTP-прокси |
| TCP | L4 | Прямой TCP relay |
| UDP | L4 | UDP relay с отслеживанием сессий |
| TLS | L4 | TLS passthrough с SNI |
Особенности L4:
- используют отдельный порт
- нет HTTP-аутентификации
- можно использовать только ограничения доступа
Targets (Цели)
Target определяет, куда отправляется трафик внутри сети NetBird.
Типы:
- Peer — узел с агентом NetBird
- Host — IP-адрес
- Domain — доменное имя
- Subnet — подсеть (CIDR)
Для HTTP:
- Path (опционально)
- Protocol: HTTP / HTTPS
- Port (по умолчанию 80/443)
Для L4:
- только тип + порт
Domains (Домены)
Cloud
Формат:
{subdomain}.{nonce}.{cluster}.proxy.netbird.io
Пример:
myapp.abc123.eu.proxy.netbird.io
Self-hosted
{subdomain}.{proxy-domain}
Пример:
myapp.proxy.mycompany.com
DNS (self-hosted)
Необходимо:
- A-запись → сервер NetBird
- CNAME:
proxy*.proxy
Custom domains
Можно использовать собственные домены через CNAME.
Все домены получают автоматические TLS-сертификаты.
Authentication (Аутентификация)
| Метод | HTTP | L4 |
|---|---|---|
| SSO | Да | Нет |
| Password | Да | Нет |
| PIN | Да | Нет |
| Header | Да | Нет |
| Access restrictions | Да | Да |
Если нет защиты — сервис публичный.
Service statuses
| Статус | Значение |
|---|---|
| pending | создаётся |
| certificate_pending | выпускается TLS |
| active | активен |
| tunnel_not_created | туннель не создан |
| certificate_failed | ошибка TLS |
| error | общая ошибка |
Prerequisites
Перед созданием:
- есть peer или network
- есть домен
- (self-hosted) есть proxy-инстанс
- есть права доступа
Быстрый старт
Шаг 1
Dashboard → Reverse Proxy → Services → Add Service
Шаг 2
Настройки:
- режим (HTTP / L4)
- subdomain
- base domain
- порт (для L4)
- target
Шаг 3 (HTTP)
Аутентификация:
- SSO
- пароль
- PIN
- header
Шаг 3b
Access control:
- IP
- страна
- CrowdSec
Шаг 4
Доп. настройки:
HTTP:
- Pass Host Header
- Rewrite Redirects
L4:
- PROXY Protocol
- Session timeout (UDP)
⚠️ Backend должен доверять proxy (trusted proxies)
Шаг 5
Создание сервиса → ожидание active
Управление сервисами
- редактирование
- включение/выключение
- удаление
- управление targets
Порты L4
- один сервис = один порт
- возможен auto или manual выбор
- нельзя пересекаться
Особенности:
- HTTP и TLS могут делить порт через SNI
- TCP fallback при отсутствии SNI
⚠️ Нельзя использовать один hostname для HTTP и TLS
Path-based routing
Пример:
| Path | Target |
|---|---|
| / | app |
| /api | API |
| /docs | docs |
Более подробно как устанавливается это приложение у меня в видео ролике, и это тот случай, когда лучше один раз увидеть, чем сто раз прочитать.
Some information may be outdated