自建Netbird 服务,连通你的所有设备
VPN种类繁多,各有各的好,想省心的可以直接买服务,不过我今天要讨论的是自建VPN,想对于买第三方VPN服务,自建VPN的安全性较好,另外也不会有机场主跑路的风险,而主流的可自建服务的VPN据我所知道的就三种:Netbird, Tailscale, Zerotier,当然这三种也有官方的免费服务,效果也不错,但我个人不太喜欢让数据流入到别人的服务器,所以我选择了自建服务,而这三种服务中,zerotier自建服务比较复杂,且维护不方便,所以测试后放弃,而Netbird和Tailscale自建服务相对简单,Netbird的界面化维护我很喜欢,所以最终我选择Netbird。
一、安装前置准备工作
- 确认你的VPS是ubuntu或debian系统,至少有2G的内存。
- VPS开放这些端口:TCP ports 80, 443, 33073, 10000 and 33080; and UDP ports: 3478, 49152-65535。
- 最好有个域名,并且已配置好DNS指向你的VPS。
- 安装相应的工具包:sudo apt install jq curl 或者 sudo yum install jq curl
- 安装好docker compose
二、运行以下命令一键安装NetBird
export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash
三、登录zitadel创建项目和应用,跳转路径等
- 安装完成后,zitadel的访问路径是:https://yourdomain.com/ui/console
- zitadel的默认访问用户名和密码是:zitadel-admin@zitadel.yourdomain.com / Password1!
- 登录zitadel后记得先修改密码。
- 创建新项目

- 创建应用(记下应用的ID那串字符,下一步修改dashboard.env时会用到)


6. 按下图设置刚才创建好的应用

7. 添加重定向Url和登出Url (登出Url可以填写你的netbird默认访问地址,至于重定向Url可以不存在,但一定要填写,如果不填会报错,另外重定向Url要记下,下一步修改dashboard.env时会用到)

四、修改dashboard.env的应用ID和跳转路径

五、访问netbird服务端生成setup key
进入Netbird服务器端,生成setup key并记下来,切记切记要记下来,因为只会显示一次。


六、安装客户端,连接netbird服务端
在你需要连接到netbird内网的主机上安装netbird客户端,大家可以访问以下url了解一下在不同的操作系统中如何安装Netbird客户端。
https://docs.netbird.io/how-to/installation#install-and-update-instructions
安装完成后,用以下命令连上你的netbird服务,其中setup key就是上一步生成的key:
netbird up --management-url https://yourdomain.com --setup-key xxxxxx
七、netbird服务端设置networks
假设某个netbird客户端节点的内网ip是192.168.100.1,如果你需要通过这个节点访问该内网其他主机(192.168.100.x),那么就需要设置networks,设置步骤如下:

上图有三部分内容需要设置,分别是resource, policy, routing peer, 这三部分的意思是:
- resource是代表你要访问的内网主机的ip网段,例如你要访问192.168.100.x主机,resource就设置成192.168.100.0/24。

- policy是设置有哪些主机可以访问resource。

- routing peer是指需要通过哪个节点来访问resource的那些主机,按上述假设,就应该设置成192.168.100.1的那个peer。

按上述设置完成后,你的netbird网络就已经创建完成,所有的主机都可以通过上述的方式加入到你的netbird内网,这样就可以在任何地方访问你的任何服务了。