老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

自托管部署Netbird网络

2023年9月22日 8551次阅读 25条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

「Netbird」对自托管部署采用了折衷的中间策略,Nebula 只能自托管部署且官方没有 GUI 支持,Tailscale 不能自托管部署,Netbird 则支持、甚至推荐自托管部署,自托管部署 Netbird 虚拟网络,节点的添加及虚拟专用网络的配置与非自托管方式完全相同,本文不做赘述。Netbird虚拟网络的自托管部署同样体现了其高度易用的特性,可以直接简化理解为准备工作、后台管理网站搭建两个步骤。

1.检查与准备工作

Netbird官网给出了明确的self-hosted指引,这里仅仅搬运并适当结合实践微调如下:

  • 拥有公网 IP 的 服务器;
  • 服务器确保不低于1c2g配置;
  • Docker 与 docker-compose,和节点添加、安装相同,还需要jq、curl;
  • 端口开放:TCP-80、443,UDP-3478、49152-65535;
  • 域名,指向计划使用的自托管服务器

这里需要强调两点,一是测试性部署使用的是1c1g的Azure B1s,可部署运行,卡顿但未尝试调优。二是80、443端口的开放要求对于国内VM的使用可能存在挑战,可以将内网主机通过IPv6进行暴露作为替代方案,实测可行。

2.搭建自托管netbird后台网站

2.1 安装

直接参照官方指导安装或使用已有镜像Docker安装,需要将nb.example.com替换为计划使用、已配置好解析的域名。

#apt install curl -y
apt install jq -y
export NETBIRD_DOMAIN=nb.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash

整个安装、部署过程应该会持续5-10分钟,取决于服务器性能和Internet网络状况。

安装完成,会给出类似以下内容的后台管理员初始化用户名和密码:

Username: admin@nb.example.com

Password: NYDFetrxcDF86IN4LwpVgq0BZd86tR86d9TM@

如因迁移等原因需要卸载,可使用以下命令。

docker compose down --volumes
rm -f docker-compose.yml Caddyfile zitadel.env dashboard.env machinekey/zitadel-admin-sa.token turnserver.conf management.json

2.2 登录与验证

首次打开部署的管理面板,输入安装完成后输出的初始用户名、密码。

Zitadel验证服务要求首次登录及密码修改后均需要执行一次两步验证,后续登录不会再对设备进行验证。这里选取软件应用,后续需要用到google验证器等app。

两步验证过程中,使用google验证器(IOS、Android均有)等app扫描二维码,输入验证其显示的验证码,点击【继续】即可。

之后,因为首次登录,还需要对初始密码进行修改,密码要求包含大小写、特殊字符和数字,修改后再进行一次两步验证。后续,在有效期内登录不需要输入密码或两步验证。

3. 省略的部分

netbird自托管部署默认使用zitadel的第三方验证,而zitadel也是完全开源的应用。

Netbird支持自托管用户采用的IdP(第三方验证服务提供商)包括Azure AD、Google Workspace、Okta等,与Zitadel也可以子托管部署不同,Azure AD、Google Workspace无法自托管,只能使用Micosoft或Google的服务。

考虑到Ondrive的流行和Azure API使用广泛,可获取的资料、参考很多,建议使用Azure AD。

最后,可以总结一点小小的遗憾和期望,那就Netbird自托管部署需要使用TCP 80/443两个端口供后台WebUI使用,这对于不喜欢折腾的用户而言有点不够人性化,毕竟国内环境较难满足这一要求。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: mesh network netbird vpn wireguard 网状网 虚拟专用网络
最后更新:2024年5月27日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • ǝɔɐǝԀʎzɐɹϽ

    分享很不错啊!
    博客开了RSS订阅吗?

    2023年9月24日
    回复
  • ǝɔ∀ǝdʎz∀ɹɔ ?

    分享很不错啊!
    博客开了RSS订阅吗?

    2023年9月24日
    回复
    • 老E

      @ǝɔ∀ǝdʎz∀ɹɔ ? 没开 你blog怎么这么慢

      2023年9月27日
      回复
      • ǝɔ∀ǝdʎz∀ɹɔ ?

        @老E 哦, 我的博客就是google的blogspot标准模式, 没有弄自己的域名, 也没搞什么CDN之类的.
        做内容的, 不是追风口的, 速度影响没那么大吧. 呵呵.
        你开个RSS, 方便用户订阅呀. 不是八卦新闻站, 谁会天天来打卡?

        2023年10月12日
  • 饭饭

    只能80/443,那是不是就不能和宝塔用存了?

    2023年10月20日
    回复
    • crossapp

      @饭饭 80 443是管理后台caddy用的 应该可以配置的

      2023年10月20日
      回复
  • Kaiyuan

    我运行起来之后打开页面是 `Login Error: User state: Unauthenticated`,不知道什么情况。也搜不到相关办法...

    2023年10月22日
    回复
    • 老E

      @Kaiyuan Unauthenticated 未验证 默认的私有化IdP超卡超慢 应该和连接有关 猜测是没连上IdP导致的

      2023年10月23日
      回复
  • 灰太狼大叔

    非常棒,但是我的80,443被nginx占用,如何修改?

    2023年10月26日
    回复
    • 老E

      @灰太狼大叔 我抽空看下它脚本 应该能找到答案 大家可以一块看看啊

      2023年10月27日
      回复
      • 灰太狼大叔

        @老E 好的,非常感谢,时刻关注

        2023年11月3日
  • bottle

    你好,倘若开放内网中的IPV6主机,还需要80和443端口吗?很多地方V6 也是屏蔽这两个端口的。

    2023年10月27日
    回复
    • 老E

      @bottle 是的啊 默认的80、443端口是caddy webui和idp使用,可以尝试修改下caddy配置

      2023年10月28日
      回复
      • bottle

        @老E 大佬能不能结合国内环境,出一期修改配置来自定义端口的教程,想把服务搭建到自己家里。我也用过很多组网工具,对比其他的这个确实不错。

        2023年10月28日
      • 老E

        @bottle 看这里:https://www.bilibili.com/read/cv27338555/?spm_id_from=333.999.0.0
        有小伙伴搞定了,直接复制的链接

        2023年10月28日
      • 饭饭

        @老E 并没有吖,这个贴子里也没解决80和443的问题。

        2023年11月13日
      • 老E

        @饭饭 抱歉 我没细看 等好了联通azure ad一块发一期

        2023年11月17日
  • ck小捷

    @老E 大佬我的443跟80都给宝塔用作总反代了 我有没有办法透过反代的方式来把它的UI弄出来呢?(其他端口我是NAT对应过去的)我现在反代会提示从定向次数过多

    2023年11月1日
    回复
  • 老E

    nb用的是caddy 你用nginx反代的话 我不清楚会是什么样 单纯从nginx看 重定向次数过多一般是由路径引起的来回重定向 检查下location和proxy_pass的/ 浏览器里观察下 看有无location的url被滤除 你需要很清楚地址栏里应该是什么url才是正确的才能找到症结 还有就是proxy_redirect进行重定向映射与绝对重定向的开关

    2023年11月2日
    回复
  • taozi

    安装完成后,默认的https://域名:443打开失败,页面显示“HTTP ERROR 502”;改为https://域名/ui/console/后,页面内容为zitadel后台,请问怎么能访问到netbird自托管管理页面。

    2023年11月2日
    回复
    • 老E

      @taozi 不需要443 502是超时重启下服务器试试 确保你443 80是开放的

      2023年11月2日
      回复
  • 哈哈

    #1267 issue 可以自定义80、443、8080端口号了 :confused:

    https://github.com/netbirdio/netbird/issues/1267#issuecomment-1865947618

    2023年12月25日
    回复
  • keung

    怎么样可以将组网后的期中一台机器改成代理模式?
    比如已经将100.1/110.1/120.1三台机器组网成功,但是我想讲期中一台变成像WG一样的代理模式。
    可以实现吗?

    2024年4月18日
    回复
    • webmaster

      @keung 可以 需要你自己手动配置

      2024年4月19日
      回复
    • webmaster

      @keung 修正:0.27+ 还是0.26.5+ 已经可以设定出口端点了 按照官方指导即可

      2024年5月13日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    站内搜索
    归档
    • 2025 年 5 月
    • 2025 年 4 月
    • 2025 年 3 月
    • 2025 年 2 月
    • 2025 年 1 月
    • 2024 年 12 月
    • 2024 年 11 月
    • 2024 年 10 月
    • 2024 年 9 月
    • 2024 年 8 月
    • 2024 年 7 月
    • 2024 年 6 月
    • 2024 年 5 月
    • 2024 年 4 月
    • 2024 年 3 月
    • 2024 年 2 月
    • 2024 年 1 月
    • 2023 年 12 月
    • 2023 年 11 月
    • 2023 年 10 月
    • 2023 年 9 月
    • 2023 年 8 月
    • 2023 年 7 月
    • 2023 年 6 月

    Copyright ©2023-2025 Appscross. All Rights Reserved.