NetBird combines zero-configuration peer-to-peer networking with a centralized access control layer. This platform allows you to build a secure private network for professional or personal use while bypassing the complexities typically associated with traditional VPNs.
Technically, NetBird functions as an overlay network built on top of WireGuard. It automatically establishes encrypted tunnels between devices, removing the need to open ports, manage convoluted firewall rules, or maintain a dedicated VPN gateway. Access policies remain granular and are managed through a single web console, ensuring secure remote access remains functional regardless of your underlying infrastructure.
curl -fsSL https://pkgs.netbird.io/install.sh | sh
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
# For the CLI only:
sudo apt-get install netbird
# For CLI and GUI:
sudo apt-get install netbird-ui
sudo tee /etc/yum.repos.d/netbird.repo <<EOF
[netbird]
name=netbird
baseurl=https://pkgs.netbird.io/yum/
enabled=1
gpgcheck=0
gpgkey=https://pkgs.netbird.io/yum/repodata/repomd.xml.key
repo_gpgcheck=1
EOF
# For the CLI only:
sudo yum install netbird
# For CLI and GUI:
sudo yum install libappindicator-gtk3 libappindicator netbird-ui
# For Fedora 40 or earlier / Amazon Linux 2023 (DNF 4):
sudo dnf config-manager --add-repo /etc/yum.repos.d/netbird.repo
# For Fedora 41 or later (DNF 5):
sudo dnf config-manager addrepo --from-repofile=/etc/yum.repos.d/netbird.repo
# For the CLI only:
sudo dnf install netbird
# For CLI and GUI:
sudo dnf install libappindicator-gtk3 libappindicator netbird-ui
Note: On recent GNOME versions, you may require the AppIndicator extension:
sudo dnf install gnome-shell-extension-appindicator
sudo gnome-extensions enable [email protected]
Under X11, restart GNOME Shell by pressing Alt+F2, typing r, and hitting Enter. Wayland users must log out and back in.
sudo zypper addrepo https://pkgs.netbird.io/yum/ netbird
# For MicroOS (immutable with SELinux):
transactional-update pkg in netbird
reboot
# For Tumbleweed or Leap:
zypper in netbird
configuration.nix:{ config, pkgs, ... }:
{
services.netbird.enable = true; # Enables the service and CLI
environment.systemPackages = [ pkgs.netbird-ui ]; # Optional GUI
}
sudo nixos-rebuild switch
curl -L -o ./netbird_<VERSION>.tar.gz https://github.com/netbirdio/netbird/releases/download/v<VERSION>/netbird_<VERSION>_<OS>_<Arch>.tar.gz
Replace VERSION, OS (linux/darwin/windows), and Arch with the values corresponding to your system.
tar xzf ./netbird_<VERSION>.tar.gz
sudo mv netbird /usr/bin/netbird
sudo chown root:root /usr/bin/netbird
sudo chmod +x /usr/bin/netbird
sudo netbird service install
sudo netbird service start
If installed via a package manager, use the standard system update commands. For manual script installations, use:
netbird down
curl -fsSLO https://pkgs.netbird.io/install.sh
chmod +x install.sh
./install.sh --update
netbird up
C:\Program Files\NetBird and registers a background daemon service.curl -fsSL https://pkgs.netbird.io/install.sh | sh
.pkg file. The application is placed in /Applications and the daemon service is configured automatically.sudo netbird service stop
sudo netbird service uninstall
brew unlink netbird
# For the CLI only:
brew install netbirdio/tap/netbird
# For CLI and GUI:
brew install --cask netbirdio/tap/netbird-ui
For CLI-only installations, initialize the service:
sudo netbird service install
sudo netbird service start
Define your NB_SETUP_KEY and execute:
docker run --rm --name netbird-client --hostname netbird-peer --cap-add=NET_ADMIN --cap-add=SYS_ADMIN --cap-add=SYS_RESOURCE -d -e NB_SETUP_KEY=<SETUP_KEY> -v netbird-client:/etc/netbird netbirdio/netbird:latest
services:
netbird:
container_name: netbird
hostname: <HOSTNAME>
cap_add:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE
network_mode: host
environment:
- NB_SETUP_KEY=<SETUP_KEY>
volumes:
- netbird-client:/etc/netbird
image: netbirdio/netbird:latest
volumes:
netbird-client:
name: netbird-client
In this example, we will connect a MacBook and an AWS EC2 Linux instance.
Install and connect your workstation:
netbird up in your terminal.Connect the EC2 Node:
curl -fsSL https://pkgs.netbird.io/install.sh | sh
netbird up --setup-key <YOUR_SETUP_KEY>
In the Peers section of the dashboard, both devices should now be listed as online. Verify the peer-to-peer connection via ping:
ping ec2-node.netbird.cloudping macbook.netbird.cloudpion/ice library) to discover potential connection paths for peer-to-peer links.
DeepSeek OCR: Extract Text and Visual Data With This React FastAPI App
Code-Run: A Lightning-Fast Browser Editor for Vue, ESM, and Instant Previews
Fast RAG: Deploy a Private Hybrid Search RAG Stack Locally
Qwen3-ASR-Toolkit: Transcribe Long Audio Files Beyond the 3-Minute Limit
AI Podcast Transcriber Turns Audio Into Clean Text and Smart Summaries
Open Deep Research: Customizable AI Agents for Automated Report Generation
UTCP Explained: A Universal Tool Calling Protocol for APIs, LLMs, and Beyond
TikTok Scraper: Download Watermark-Free Videos Without Login
ERPNext Open Source ERP: Installation Guide for Accounting and Inventory
Extract2MD: Convert PDF to Markdown using Local LLMs and OCR
Tabby Terminal: A Cross-Platform Emulator with SSH, Serial Support, and Plugins
Anyi VPN Review: Free 365-Day Trial with No Data Caps or Ads