NetBird 新一代基于 WireGuard 组网神器
简介
NetBird 是一个构建于 WireGuard 之上的开源网络管理平台,它允许计算机、设备和服务器通过快速加密隧道实现直接连接,无需进行任何配置或依赖中央 VPN 服务器。它为专用网络提供了卓越的安全性,创建出一个安全可靠的专用网络,即使在没有手动配置和专业人员协助的情况下,也能够实施安全措施。NetBird 网络广泛适用于云、本地、边缘以及容器环境,能够避免打开端口、设置复杂防火墙规则和使用 VPN 网关等繁琐操作,为用户带来极大的便利。
它与 Tailscale 很像,但是区别也比较明显。Tailscale 是在用户态实现了 WireGuard 协议,无法使用 WireGuard 原生的命令行工具来进行管理。而 NetBird 直接使用了内核态的 WireGuard,可以使用命令行工具 wg 来查看和管理。
如果你是 WireGuard 原生党,墙裂建议使用 NetBird。
NetBird 不依赖集中式的 VPN 服务器,您的计算机、设备、机器以及服务器可直接通过快速加密隧道实现相互连接。只需简单点击几下,NetBird 就能将位于任何地方的机器连接起来。利用 NetBird 来部署安全的点对点 VPN 时,整个过程耗时不到 5 分钟,为您提供高效便捷的网络连接体验。
- Connect NetBird 创建了一个基于 WireGuard 的覆盖网络,该网络通过加密隧道自动连接您的机器,省去了打开端口、设置复杂防火墙规则、使用 VPN 网关等麻烦事。
- Secure NetBird 通过应用细粒度的访问策略实现安全的远程访问,同时允许您从一个单一的位置直观地对其进行管理。可普遍适用于任何基础设施。
NetBird 架构图
从官方发布的网络结构示意图来看,Netbird分为Management、Signal、STUN、Relay四个组件,优先P2P直接连接,这一点在自托管部署时(组件的Create、Ready)也会得到验证。官方How works对各组件进行了详细描述。
主要特性
连接特性 | 管理 | 安全 | 自动化 | 支持平台 |
---|---|---|---|---|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
||||
|
NetBird 部署使用
前置条件:
- 一个拥有公网 IP 的 Linux 服务器,配置不低于 1CPU和 2G内存;
- Docker 与 docker-compose;
- 开放 TCP 端口 80, 443, 33073, 10000(端口不可被占用);
- 开放 UDP 端口 3478, 49152-65535;
- 配置好了 DNS 解析
使用脚本安装
官方除了linux下可以直接使用安装脚本。
Linux 脚本安装:
curl -fsSL https://pkgs.netbird.io/install.sh | sh
Debian 以及基于 APT 安装
增加 NetBird 仓库秘钥
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
安装 NetBird
# for CLI only sudo apt-get install netbird # for GUI package sudo apt-get install netbird-ui
Red Hat / Amazon Linux 2 等基于 RPM 安装
增加仓库秘钥:
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
安装 NetBird 程序:
# for CLI only sudo yum install netbird # for GUI package sudo yum install libappindicator-gtk3 libappindicator netbird-ui
Fedora/Amazon Linux 2023
创建仓库源
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
导入仓库
sudo dnf config-manager --add-repo /etc/yum.repos.d/netbird.repo
安装程序
# for CLI only sudo dnf install netbird # for GUI package sudo dnf install libappindicator-gtk3 libappindicator netbird-ui
有些版本的发行版中,libappindicator 的默认行为已经发生了改变,因此我们需要安装 gnome-shell-extension-appindicator 并将其启用。
sudo dnf install gnome-shell-extension-appindicator`
sudo gnome-extensions enable [email protected]
在 X11 环境下,之后您可能需要重启 GNOME Shell(按 Alt+F2,输入 r,然后按回车键)。在 Wayland 环境下,您需要注销并重新登录。
openSUSE
增加仓库
sudo zypper addrepo https://pkgs.netbird.io/yum/ netbird
安装程序
# MicroOS (immutable OS with selinux) transactional-update pkg in netbird reboot # Tumbleweed / Leap zypper in netbird
MacOS 安装
命令行安装
curl -fsSL https://pkgs.netbird.io/install.sh | sh
Homebrew安装
如果你之前安装过,可以用下面的命令卸载:
# Stop and uninstall daemon service:
sudo netbird service stop
sudo netbird service uninstall
# unlink the app
brew unlink netbird
再执行下面命令安装:
# for CLI only
brew install netbirdio/tap/netbird
# for GUI package
brew install --cask netbirdio/tap/netbird-ui
如果你需要以服务方式运行,需要执行下面命令:
sudo netbird service install
sudo netbird service start
Windows 安装
下载安装文件
双击安装文件安装引导程序安装完成
默认情况下会安装在
C:\Program Files\NetBird
目录下,并且会自动安装服务。
群辉系统安装
在群辉系统上可以直接执行下面命令安装:
curl -fsSL https://pkgs.netbird.io/install.sh | sh
为了让 NetBird 在重启后的 Synology 设备上正常工作,您需要在每次重启 NAS 时运行此脚本。为了使该过程自动化,您可以在 Synology DSM 中创建一个计划任务。
#!/bin/sh
# Create the necessary file structure for /dev/net/tun
if [ ! -c /dev/net/tun ]; then
if [ ! -d /dev/net ]; then
mkdir -m 755 /dev/net
fi
mknod /dev/net/tun c 10 200
chmod 0755 /dev/net/tun
fi
# Load the tun module if not already loaded
if !(lsmod | grep -q "^tun\s"); then
insmod /lib/modules/tun.ko
fi
安装完成后,使用netbird up
命令即可连接进入虚拟专网。
如因网络变化需对节点进行调整,可卸载netbird。
apt remove netbird netbird-ui -y
docker方式安装
官方指引给定的Docker加载运行命令默认采用的容器名称不便于记忆,可以通过–name指定,同时,NB_SETUP_KEY需要指定在管理面板生成的有效setup key。
#apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker pull netbirdio/netbird
docker run --rm -d --net=host --name="nb-xxx"\
--cap-add=NET_ADMIN \
-e NB_SETUP_KEY=6E1EC378-6059-48B7-B9A8-E09B4809793A \
-v netbird-client:/etc/netbird \
netbirdio/netbird:latest
docker安装的netbird peer如需卸载,可使用如下命令。
docker rm -f nb-xxx
docker rmi -f netbirdio/netbird:latest
常用命令
netbird up #启动 NetBird 服务
netbird down #停止 NetBird 服务
netbird status --detail #查看 NetBird 状态
在云上,确保安全组端口开放TCP端口:80, 443, 33073, 10000; 和UDP端口: 3478, 49152-65535。