产品介绍:
NetBird 是一个开源的零信任网络平台,可让您为组织或家庭创建安全的私有网络。我们设计的 NetBird 简单易用、速度快,几乎无需任何配置,也无需您费心设置端口、复杂的防火墙规则、VPN 网关等等。
NetBird 的软件定义网络(SDN)消除了管理虚拟专用网(VPN)网关和防火墙配置的复杂性,能够直接且安全地连接您的资源,且不存在单点故障。
相比于传统的虚拟专用网络(VPN)在虚拟专用网络网关和防火墙的配置及管理方面增加了复杂性,从而提高了安全风险并增加了维护成本。
NetBird支持精细的网络分段,确保只有授权用户才能访问特定资源,同时让您能够从单一位置无缝管理所有内容。

软件部署:
一、 云服务器部署
netbird推荐使用云服务器部署,这样会提高nat效率,节点之间使用p2p连接效率更高。
基础要求:
至少配备1 个 CPU和2GB内存的 Linux 虚拟机。
虚拟机应可通过TCP端口80、443、33073、10000和33080以及UDP端口3478、49152-65535公开访问。
指向虚拟机的公共域名。
软件要求:
在虚拟机上安装了带有 docker compose 插件的 Docker或版本为 2 或更高版本的带有 docker-compose 的 Docker。
jq已安装。在大多数发行版中,通常可在官方软件仓库中找到,并可通过以下命令安装。
# debian、Ubuntu等使用apt进行包管理系统
sudo apt install jq
# centos、rocky等使用yum进行包管理系统
sudo yum install jqcurl已安装。通常可在官方软件仓库中找到,并可通过以下命令安装:
# debian、Ubuntu等使用apt进行包管理系统
sudo apt install curl
# centos、rocky等使用yum进行包管理系统
sudo yum install curl一键安装脚本:
注意:将netbird.example.com替换为自己的域名,云服务器安全组放行上述所需端口、虚拟机关闭防火墙或放行端口并确认解析生效后在安装(不然Zitadel IdP会初始化失败),一键安装脚本会自动为域名申请SSL证书。
export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash
二、无80、443端口
适用于无80、443端口或端口被占用的情况下安装netbird。
注意:将netbird.example.com替换为自己的域名,云服务器安全组放行上述所需端口、虚拟机关闭防火墙或放行端口并确认解析生效后在安装(不然Zitadel IdP会初始化失败)。
需要提前申请域名证书,并放在docker-compose.yml所在目录的certs文件夹内以域名.key和域名.pem进行命名,例如:netbird.example.com.key 、netbird.example.com.pem 。
export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://raw.githubusercontent.com/jiangslee/netbird/refs/heads/main-jsl/infrastructure_files/getting-started-with-zitadel.sh | bash该脚本会询问自定义映射端口,按提示修改即可。
三、常见报错问题
1. Zitadel初始化失败
Unable to connect to Zitadel for more than 45s, please check the output above, your firewall rules and the caddy container logs to confirm if there are any issues provisioning TLS certificates . . . . . . . . . . . . . . . . . . . . . . . . . .
网络映射:家宽需要在路由器或防火墙上做公网映射才能访问。
域名解析:PING 域名是否解析到当前公网IP。
容器状态:
docker compose ps -a确认有没有处于stop或者create状态的容器。域名证书:检查域名证书是否放置正确。
cat docker-compose.yml
# 检查caddy容器的映射目录是否正常
volumes:
- netbird_caddy_data:/data
- ./Caddyfile:/etc/caddy/Caddyfile
- ./certs:/etc/caddy/ccerts
certs是指当前目录中的certs,证书应该放在此文件夹
2.WEB登录后一直处于加载界面

GeoLite数据库未下载,下载后放置在/var/lib/docker/volumes/netbird_netbird_management/_data目录
# 重启容器
docker compose restart