NetBird создаёт зашифрованную WireGuard-сеть между устройствами без традиционного VPN-сервера и ручного обмена ключами. В этом материале мы разберём установку агента NetBird на Ubuntu, Debian, RHEL и Rocky Linux, подключим первое устройство и проверим статус, чтобы убедиться, что защищённое соединение работает корректно.
Представьте, что у вас есть ноутбук, сборочный сервер и сервер баз данных, каждый в своей сети за NAT. Обычно для их взаимодействия приходится настраивать межсетевые экраны, открывать порты и управлять ключами VPN, что быстро усложняет задачу.
NetBird значительно упрощает этот процесс: каждое устройство подключается к координационному сервису, ключи WireGuard обмениваются автоматически, а защищённые пиринговые соединения устанавливаются при любой возможности.
Что на самом деле делает NetBird
WireGuard сочетает высокую скорость, легковесность и надёжное шифрование сетевого трафика. Однако при самостоятельном использовании WireGuard приходится вручную генерировать ключи, создавать конфигурационные файлы и настраивать каждое подключаемое устройство.
NetBird упрощает этот процесс, работая поверх WireGuard и автоматизируя всю настройку.
Каждое устройство запускает небольшой агент NetBird, который подключается к управляющему сервису, будь то облачный NetBird Cloud или собственный сервер NetBird, развёрнутый самостоятельно.
После аутентификации устройства NetBird автоматически обменивается ключами WireGuard с другими авторизованными устройствами и, по возможности, устанавливает защищённое пиринговое соединение.
При создании соединения NetBird поднимает сетевой интерфейс WireGuard с именем wt0. Если прямое пиринговое соединение установить не удаётся из-за ограничений сети, NetBird автоматически направляет трафик через релейный сервер, так что связь продолжает работать без какой-либо ручной настройки.
Процесс, описанный в этом руководстве, проверен на Ubuntu 26.04 и RHEL 10, но аналогично работает на актуальных версиях Debian, Ubuntu, Fedora, Rocky Linux и других дистрибутивах на базе RHEL, использующих systemd.
Установка NetBird на Ubuntu и Debian
NetBird предоставляет простой установщик одной командой, который автоматически определяет ваш дистрибутив Linux и устанавливает нужный пакет. Это самый быстрый способ запустить агент NetBird на отдельной системе.
curl -fsSL https://pkgs.netbird.io/install.sh | sh
Если вы собираетесь устанавливать NetBird на множество систем, лучше добавить официальный репозиторий APT. Это позволит получать будущие обновления через обычные команды apt update и apt upgrade.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg -y
curl -sSL https://pkgs.netbird.io/debian/public.key | sudo gpg --dearmor --output /usr/share/keyrings/netbird-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main' | sudo tee /etc/apt/sources.list.d/netbird.list
sudo apt-get update
sudo apt-get install netbird -y
sudo apt-get updateобновляет локальный индекс пакетов, чтобы APT знал о последних доступных версиях.sudo apt-get install ca-certificates curl gnupg -yустанавливает инструменты, необходимые для безопасной загрузки и проверки пакетов.curl -sSL ... | sudo gpg --dearmor ...загружает публичный ключ NetBird и преобразует его в формат, используемый APT.echo 'deb ...' | sudo tee ...добавляет репозиторий NetBird в систему, чтобы APT мог устанавливать и обновлять пакеты NetBird.sudo apt-get updateснова обновляет индекс пакетов, чтобы включить только что добавленный репозиторий.sudo apt-get install netbird -yустанавливает агент NetBird.
Команда sudo запускает каждую команду с привилегиями администратора, поскольку установка ПО и запись файлов в /etc/apt/ требуют прав суперпользователя. Без sudo вы получите ошибки доступа.
Установка NetBird на RHEL и Rocky Linux
На RHEL, Rocky Linux, Fedora и других дистрибутивах на базе RHEL NetBird устанавливается из официального DNF/YUM-репозитория.
Сначала создайте файл конфигурации репозитория:
sudo tee /etc/yum.repos.d/netbird.repo <<EOF
[netbird]
name=netbird
baseurl=https://pkgs.netbird.io/yum/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.netbird.io/yum/repodata/repomd.xml.key
repo_gpgcheck=1
EOF
Затем установите пакет NetBird:
sudo dnf install netbird -y
sudo tee /etc/yum.repos.d/netbird.repo <<EOF создаёт новый файл конфигурации репозитория с помощью heredoc, позволяя записать несколько строк в файл прямо из терминала.
Записи между EOF и закрывающим EOF определяют репозиторий NetBird, включая его расположение и GPG-ключ, используемый для проверки пакетов.
sudo dnf install netbird -y загружает и устанавливает агент NetBird из только что добавленного репозитория.
Использование tee с heredoc удобно для создания конфигурационных файлов из командной строки, особенно при автоматизации развёртывания серверов или написании скриптов установки.
Если вы используете RHEL 7, замените dnf на yum.
sudo yum install netbird -y
Подключение первого пира
После установки агента NetBird следующий шаг: подключение машины к вашей NetBird-сети.
Выполните:
sudo netbird up
Команда запускает агент NetBird и начинает процесс регистрации устройства.
При первом запуске NetBird покажет URL в терминале. Откройте ссылку в браузере, войдите в свою учётную запись NetBird (или в панель управления собственного сервера NetBird) и подтвердите устройство.
Через несколько секунд агент завершит настройку и назначит машине IP-адрес из диапазона 100.64.0.0/10. Это частная сеть NetBird, отделённая от вашей локальной сети.
После установки соединения вы увидите вывод, похожий на:
NetBird status: Connected
Management: Connected
Signal: Connected
Relays: 2/2 Available
Peers count: 3/3 Connected
Вот что означает каждая строка:
- NetBird status: показывает, подключён ли локальный агент NetBird.
- Management: состояние подключения к управляющему сервису.
- Signal: доступность сигнального сервиса, используемого для установки пиринговых соединений.
- Relays: количество доступных релейных серверов на случай, если прямое соединение установить не удастся.
- Peers count: число авторизованных пиров, с которыми установлено соединение.
Наиболее информативна строка Peers count. Например, значение 3/3 Connected означает, что машина установила защищённые соединения со всеми тремя пирами, с которыми общение разрешено.
Если отображается 0/3, устройство успешно прошло аутентификацию, но ещё не соединилось ни с одним пиром.
Использование установочного ключа для серверов без монитора
Если вы устанавливаете NetBird на сервер без браузера, можно использовать установочный ключ вместо ручного подтверждения. Сгенерируйте ключ в панели управления NetBird и выполните:
sudo netbird up --setup-key <SETUP_KEY>
Замените <SETUP_KEY> на настоящий ключ, полученный в панели управления NetBird. Угловые скобки (< >) при вводе команды не указывайте.
Проверка статуса и работоспособности туннеля
Вы можете быстро проверить работу NetBird с помощью команды status. Для получения детальной информации о каждом подключённом устройстве добавьте опцию --detail.
netbird status --detail
Команда показывает информацию о каждом пире в вашей сети NetBird.
Обратите внимание на поле Status у каждого пира:
- Connected (P2P) означает, что устройство установило прямое пиринговое соединение WireGuard, обеспечивающее максимальную производительность.
- Connected (Relayed) означает, что прямое соединение установить не удалось и трафик идёт через релейный сервер. Соединение остаётся полностью зашифрованным, но задержка может быть чуть выше.
Также можно убедиться, что создан сетевой интерфейс WireGuard, проверив наличие wt0:
ip link show wt0
Если интерфейс существует, вы увидите информацию об устройстве wt0, что подтверждает активность туннеля WireGuard.
Если wt0 отсутствует, возможно, не загружен модуль ядра WireGuard. Такое бывает на минимальных установках Linux или устаревших системах, где модуль не загружается автоматически.
Загрузите модуль вручную:
sudo modprobe wireguard
После загрузки модуля повторно выполните netbird status или ip link show wt0, чтобы убедиться, что интерфейс успешно создан.
Типичная ошибка: отсутствует устройство TUN
Если netbird up сообщает об ошибке, связанной с отсутствием устройства TUN, сначала проверьте, существует ли оно в системе:
ls -l /dev/net/tun
Если команда показывает устройство, интерфейс TUN присутствует. Если возникает ошибка No such file or directory, устройство TUN отсутствует.
Такое часто встречается на минимальных установках Linux, в контейнерах или некоторых облачных образах, где устройство TUN не создаётся автоматически.
Его можно создать вручную следующими командами:
sudo mkdir -p /dev/net
sudo mknod /dev/net/tun c 10 200
sudo chmod 0755 /dev/net/tun
Пояснение команд:
sudo mkdir -p /dev/netсоздаёт каталог/dev/net, если его нет.sudo mknod /dev/net/tun c 10 200создаёт символьное устройство TUN с необходимыми старшим и младшим номерами.sudo chmod 0755 /dev/net/tunустанавливает нужные права доступа.
После создания устройства TUN снова выполните команду подключения:
sudo netbird up
Если проблема была в отсутствии TUN, теперь NetBird сможет создать интерфейс wt0 и установить VPN-соединение.
Открытие нужных портов в брандмауэре
NetBird использует UDP-порт 3478 для STUN (Session Traversal Utilities for NAT), что помогает устройствам определять свои публичные IP-адреса и устанавливать прямые пиринговые соединения через NAT.
Если этот порт заблокирован брандмауэром, NetBird всё равно сможет подключаться через релейные серверы, но прямое соединение может не устанавливаться, что повысит задержки.
На Ubuntu и Debian
Если вы используете UFW (Uncomplicated Firewall), разрешите UDP-порт 3478 командой:
sudo ufw allow 3478/udp
На RHEL и Rocky Linux
Если используется firewalld, выполните:
sudo firewall-cmd --add-port=3478/udp --permanent
sudo firewall-cmd --reload
Пояснение команд:
--add-port=3478/udp --permanentнавсегда разрешает входящий UDP-трафик на порт3478.--reloadприменяет новое правило без перезагрузки системы.
После обновления правил снова выполните netbird status --detail. Если сеть позволяет прямое соединение, пиры, ранее отображавшиеся как Connected (Relayed), теперь могут показываться как Connected (P2P).
Просмотр журналов NetBird
Если пиры по-прежнему не подключаются после открытия нужного порта, проверьте журнал службы NetBird.
Выполните:
sudo journalctl -u netbird -f
Команда показывает журнал NetBird в реальном времени, что помогает заметить проблемы подключения или аутентификации по мере их возникновения.
Параметры:
-u netbirdвыводит сообщения только от службы NetBird.-fнепрерывно отслеживает журнал, показывая новые записи по мере появления.
Оставьте эту команду работающей и повторите netbird up или переподключите пир. Пока агент пытается установить соединение, вы увидите статусные сообщения, ошибки и другую полезную информацию, которая поможет выяснить причину.
Чтобы глубже разобраться в анализе системных журналов, рекомендуем наше подробное руководство по journalctl, где вы научитесь фильтровать записи по времени, приоритету, службе и многому другому.
Отключение и удаление NetBird
Если требуется временно отключить машину от сети NetBird без удаления программы, выполните:
sudo netbird down
Команда останавливает туннель WireGuard, но сохраняет агент NetBird и его конфигурацию, чтобы позже можно было снова подключиться командой netbird up.
Если NetBird больше не нужен, остановите службу и удалите программу.
Сначала остановите и деинсталлируйте службу:
sudo netbird service stop
sudo netbird service uninstall
Затем удалите пакет NetBird с помощью пакетного менеджера вашего дистрибутива.
На Ubuntu и Debian:
sudo apt-get remove netbird -y
На RHEL и Rocky Linux:
sudo dnf remove netbird -y
Эти команды удаляют пакет NetBird из системы. Оставшиеся конфигурационные файлы при необходимости можно удалить вручную после деинсталляции.
Заключение
В этом руководстве вы узнали, как установить NetBird на Ubuntu, Debian, RHEL и Rocky Linux, подключить первое устройство к сети NetBird и убедиться в корректной работе VPN-туннеля.
Также вы научились проверять статус пиров, устранять типичные проблемы (отсутствие устройства TUN, заблокированный порт брандмауэра), просматривать журналы службы и безопасно отключать или удалять NetBird, когда он перестаёт быть нужным.
Всего несколькими командами NetBird позволяет легко построить защищённую ячеистую сеть на основе WireGuard между вашими устройствами без ручного управления ключами и файлами конфигурации.
Если у вас есть несколько систем в разных сетях, попробуйте соединить их через NetBird и убедитесь, что они отображаются как подключённые пиры. Это простой способ подтвердить, что ваша mesh-сеть работает как ожидалось.
Если у вас возникли вопросы или проблемы при настройке NetBird, сообщите нам в комментариях. Мы с радостью поможем.






Пока нет комментариев. Будьте первым!