通过docker自托管部署netbird虚拟局域网

    Netbird 是一个基于 WireGuard® 构建的开源网络平台,它可以帮助你轻松创建安全、私密的虚拟网络。它专注于简化配置,实现了零配置(Zero-config)的网络连接,非常适合团队协作、远程访问服务器、物联网设备管理等场景。是tailscale之外的另一个选择。

    核心优势:

简单易用:自动化的密钥管理和对等点(Peer)发现,无需手动配置 WireGuard。

高性能:底层使用 WireGuard,速度快,延迟低。

点对点(P2P)连接:设备之间尽可能建立直接连接,而不是通过中心服务器转发流量,以获得最佳性能。

集中式管理:通过一个统一的管理面板(UI)来管理所有网络成员、访问策略和DNS。

安全性:支持 SSO(如 Google, Microsoft, GitHub)登录,并提供基于角色的访问控制(ACL)。

说明:其实官方提供的免费方案对一般场景下的应用足矣,在此注册。但此域名在墙内实际上无法直接访问,所以自托管部署就有必要了,而且速度也有保证。

准备工作:用于netbird后台管理的域名nb.mydomain.com,确保域名正确解析到了你VPS的IP,docker环境安装参考这里 。

一、服务器端部署

    1、通过官方提供的一键安装脚本部署

export NETBIRD_DOMAIN=nb.mydomain.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash
     说明:官方脚本将会通过caddy自动为nb.mydomain.com申请证书,所以确保80,443端口不被占用(不能修改)。安装成功后脚本会生成管理账号及默认密码,浏览器登录 https://nb.mydomain.com修改密码并进行配置。

   2、自定义安装

      2.1、首先为域名nb.mydomain.com申请证书,参考这里第5点。

      2.2、新建文件夹 /root/netbird/certs,并将证书copy到此certs目录下,注意证书名与域名一致
mkdir -p /root/netbird/certs
acme.sh --installcert -d nb.mydomain.com --key-file /root/netbird/certs/nb.mydomain.com.key --fullchain-file /root/netbird/certs/nb.mydomain.com.pem --ecc
     2.3、进入netbird文件夹,不是certs文件夹,执行一键安装脚本,来自这里
bash <(curl -sSL https://raw.githubusercontent.com/jiangslee/netbird/refs/heads/main-jsl/infrastructure_files/getting-started-with-zitadel.sh)
  按照提示,输入域名nb.mydoain.com,及相应的端口如9443 。安装成功后脚本会生成管理账号及默认密码,浏览器登录 https://nb.mydomain.com:9443修改密码并进行配置。

二、客户端安装,官方文档在此

       登录后,界面如下


    点击 Add peer,会出现各种平台下的netbird客户端安装方法,基本上所有的平台都支持,包括群晖等。


    客户端安装成功后,启动,设置Management URL为 https://nb.mydomain.com:9443

    如Linux下,运行命令

curl -fsSL https://pkgs.netbird.io/install.sh | sh
netbird up --management-url https://nb.mydomain.com:9443 --admin-url https://nb.mydomain.com:9443

   根据提示,打开相应的验证链接验证即可。

    也可直接安装二进制文件,最新版本在此

wget --no-check-certificate  https://github.com/netbirdio/netbird/releases/download/v0.51.2/netbird_0.51.2_linux_amd64.tar.gz
tar xzf  netbird_0.51.2_linux_amd64.tar.gz
sudo mv netbird /usr/bin/netbird
sudo chmod +x /usr/bin/netbird
   
sudo netbird service install
sudo netbird service start

   更新的话,使用的是脚本安装的话,逐行执行下面命令

netbird down
curl -fsSLO https://pkgs.netbird.io/install.sh
chmod +x install.sh
./install.sh --update
netbird up

   登录netbird后台管理,peers菜单下可以看到已经安装的客户端。点击相应客户端右侧的三点,disable session expiration


三、子网路由配置

      netbird 的子网路由的配置,相比与 Tailscale 真的是简单。两个内网只要分别在一台设备上安装 Netbird,这两个内网的所有设备其实都可以互访

       
         落地机就是网段192.168.1.0/24中且安装了netbird客户端的机器,通过落地机可以访问上述网段中任何没有安装netbird的设备。落地机可选择多个,只需其中一个在线,子网路由功能就可正常工作。




     客户端不需要任何设置

  四、一些常用命令,官方文档在此

    netbird up    登录并启动NetBird 客户端。此命令会检查客户端是否已登录,并尝试连接到管理服务。如果尚未登录,它将启动单点登录流程。

   netbird status   查看NetBird 客户端的状态。

   netbird status --detail    可以获取更详细的信息,如连接的对等端、NetBird IP 地址、公钥、连接状态和连接类型。

   netbird down   停止并退出NetBird 客户端。

   netbird version   显示NetBird 客户端的版本信息。

   netbird help   显示所有可用的NetBird 命令。

评论

热门博文

Xray安装配置VLESS-XTLS-Vision及VLESS-XTLS-uTLS-REALITY

V2Ray安装配置VMESS-TLS及VMESS-TLS-WS

在VPS上轻松搭建L2TP/IPSec图文教程(通吃各种架构的VPS,包括KVM,OpenVZ等)