用Zerotier做内网穿透

477 阅读4分钟

为什么要做内网穿透?

为了折腾,买了一台NAS当个人服务器

作者是一个喜欢折腾和患有“仓鼠症”的人,由于在个人电脑整活儿限制太大,经常需要用电脑搞其他的工作和娱乐,折腾一些有意义的事情不太合适,云服务器价格高,各项资源都很贵,本着能“白嫖”就不掏腰包的原则,买了一台NAS(当然要花钱,但是东西是自己的)服务器来折腾,在里面跑了各种服务和工具,比如:个人的博客、影音服务(Jellyfine)、alist、小雅、vscode等。

跑在内网的服务如何在外访问?

虽然很多成品NAS已经自带穿透服务,但是也仅仅限于管理NAS本身,如果想让自建的服务像一台真正的服务器一样,例如:通过自定义域名访问自建站点、影音服务以及其他的web访问,就需要做内网穿透。

常见的穿透方案有:

具体的使用细则参考对应的官网教程

Zerotier (使用官网)

ZeroTier 是一种开源的虚拟网络解决方案,旨在提供简单、高效和安全的点对点(P2P)虚拟专用网络(VPN)。它允许用户通过互联网轻松建立虚拟局域网(VLAN),将分散的设备连接在一起,就像它们位于同一个本地网络中一样。

核心特点:

  1. 跨平台支持:支持 Windows、macOS、Linux、Android、iOS,以及部分嵌入式设备(如树莓派)。
  2. 易用性:无需复杂的网络配置,通过简单的客户端安装和网络 ID 即可快速加入虚拟网络。
  3. 高效连接:利用 P2P 技术,减少延迟,并尽可能直接连接设备。
  4. 灵活性:支持组播、多播、IPv4/IPv6、网络规则等,适合各种场景。
  5. 安全性:内置端到端加密(AES-256),保障数据传输安全。
  6. 集中管理:提供基于 Web 的控制面板,方便管理虚拟网络、设备和权限。

注册账号

打开ZeroTier官网,提供了多种注册方式

image.png

我这里选择谷歌账号登录,选择 Stay on Basic,这个是免费模式

image.png 基础版可以创建3个网络,每个网络添加10台设备,一个管理员和1个路由。

创建网络

点击 Create A Network来创建一个网络

之前可以免费添加50台设备,后来限制到25台,现在只有10台。

下面是我之前创建的账号

image.png

点击网络ID即可进入网络详情,在Setting里面可以更改一些默认设置

image.png

Private 是私有网络,需要管理员认证后才能加入网络,默认开启,不建议更改

这里默认配置的网段10.147.20.0/24,可以更改网段,避免跟自己实际的局域网冲突,还可以添加一条路由

image.png

更多设置就自己去摸索吧。

客户端加入网络

zerotier提供了多种客户端:Windows、MacOS、Linux、iOS、安卓、Docker等安装方式,选择对应的客户端安装即可,接下来以安卓手机和一台windows主机为例

安卓手机

去goole下载安卓客户端,安装到手机,安装好之后的界面

image.png

在网络ID旁边点击二维码按钮获取网络ID二维码 image.png

image.png 手机扫描加入网络

image.png

在管理后台点击Authorize完成认证 image.png

等待分配IP后,就代表设备已经入网 image.png

Windows安装

从官网下载安装包进行安装,点击添加网络

image.png 后续认证参考上面,等待分配IP,查看状态

image.png 状态OK,代表设备入网,然后我们在命令行查看一下状态,输入zeritier-cli peers,可以看到设备的的连接情况:

image.png

现在两台设备都已经入网,LEAF代表的是叶节点,也就是我们的设备,DIRECT代表我们的两台设备是P2P连接,这是最佳状态。如果是RELAY则是走的官方的服务器转发,由于官方服务器都在国外,网络质量可能会很差。

测试一下网络连接

image.png

现在手机跟电脑已经组网成功

小结

我把我的流量类型大带宽、便宜的云服务器和家里的NAS设备组网,再用自己的域名解析到我的云服务器上面,就可以实现自建服务在任何地点都能访问了。

当然,组网的设备可以像真正使用局域网的一样,可以跟小伙伴一起联机打游戏都是可以的。