公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
什么是 NetBird
❝NetBird is a simple and fast alternative to corporate VPNs built on top of WireGuard® making it easy to create secure private networks for your organization or home. It requires near zero configuration effort leaving behind the hassle of opening ports, complex firewall rules, vpn gateways, and so forth.
NetBird 是一个简单快速的企业级 VPN 替代方案,建立在原生 WireGuard® 之上,可以轻松为您的组织或家庭创建安全的私人网络。它几乎不需要任何配置工作,从而摆脱了开放端口、复杂的防火墙规则、VPN 网关等烦琐任务的困扰。
简要来说 NetBird 是一个配置简易的,基于 WireGuard 的 VPN。
它与 Tailscale 很像,但是区别也比较明显。Tailscale 是在用户态实现了 WireGuard 协议,无法使用 WireGuard 原生的命令行工具来进行管理。而 NetBird 直接使用了内核态的 WireGuard,可以使用命令行工具 wg 来查看和管理。
如果你是 WireGuard 原生党,墙裂建议使用 NetBird。
NetBird 架构

NetBird 服务端有 Management, Signal, Stun, Turn 四个后端组件外加一个前端。
快速部署
部署需求
一个拥有公网 IP 的 Linux 服务器;
Docker 与 docker-compose;
开放 TCP 端口
80, 443, 33073, 10000
;开放 UDP 端口
3478, 49152-65535
;一个域名(例如 https://netbird.example.com[1] )外加 TLS 证书。
Auto0 配置
Auto0 官方推荐用 auth 0[2] 或 keyclock[3] 作为 NetBird 的第三方认证中心,为了节约服务器资源,此处使用 Auth0 (PS: 使用 Auth 0 可能需要开启魔法)。
新建一个应用

Application Login URI 填入 https://netbird.example.com
Allowed Callback URIs、Allowed Logout URLs 与 Allowed Web Origins 都填入 https://netbird.example.com,http://netbird.example.com

允许跨域:

启用 Device Code 授权方式:

应用建好后,将 Domain, Client ID, Client Secret 保存下来即可:

启动
git pull git@github.com:yimiaoxiehou/netbird-quickstart.git
cd netbird-quickstart
#记得把 Client ID, Domain, Your Domain 替换成对应的值
sed -i 's#example-clientid#Client ID#g' docker-compose.yaml
sed -i 's#https://example.auth0.com#Domain#g' management.json
sed -i 's#https://example.auth0.com#Domain#g' docker-compose.yaml
sed -i 's#netbird.example.com#Your Domain#g' management.json
sed -i 's#netbird.example.com#Your Domain#g' docker-compose.yaml
将准备好的 TLS 证书放到 ssl 文件夹中,证书 cert 文件重命名为 cert.pem
,key 文件重命名为 privkey.pem
。
启动
docker-compose up -d --build
然后记得使用宝塔面板等讲 8000 端口反向代理为 80 端口并配上 https(使用一开始的证书)。
使用
打开搭建好的 NetBird 网站,新建一个 setup key 并将其复制下来。

按照 add new peer 的说明,安装好客户端:

然后执行
netbird up --management-url <https://netbird.example.com:33073> --setup-key xxx
成功后可以通过
netbird status --detail
查看客户端状态和连接上的其他子节点
另外 NetBird 可以通过 UI 界面管理你的网络,例如分组、制作路由规则、自定义 DNS 等等。

引用链接
[1]
https://netbird.example.com: https://netbird.example.com/
[2]auth 0: https://auth0.com/
[3]keyclock: https://www.keycloak.org/
本文转载自:「云原生实验室」,原文:https://url.hi-linux.com/i4HLm,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。
最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。
你可能还喜欢
点击下方图片即可阅读
最常见的 2 种 Nginx 中 HTTP 跳转 HTTPS 场景
点击上方图片,『美团|饿了么』外卖红包天天免费领
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!