写在前面
本文字数 2600+,配图 25,预估阅读时间 7~9 分钟
目前使用的是移动宽带,只有公网 IPv6 不提供公网 IPv4
虽然在现在 IPv6 普及度比较高,但确实存在某些场景下只有 IPv4 的情况,比如:
-
出门时或去朋友家连接 Wi-Fi 时候只分配了 IPv4
-
在公司网络下只有 IPv4
同时,通过 IPv6 访问也是存在不可控的因素,比如
-
IPv6 异常无法通过 IPv6 访问
-
ddns 异常无法获取设备的 IPv6 进行访问
所以在某些时候确实需要通过 IPv4 来访问家里的网络设备的
本文介绍了我通过配置 ZeroTier 穿透访问家里的 Unraid 的详细过程,给有类似需求的朋友提供一些参考。文章大纲如下:
配置流程
大致的流程如下:
-
注册 ZeroTier 账号并登录
-
点击 Create Network 按钮创建一个网络,获取网络 ID
-
在需要互联的设备上安装客户端,配置使用上一步创建的网络 ID 并启动
-
进入 ZeroTier 控制台,找到新接入网络的设备并点击勾选 Auth
-
等设备都 online 之后,就可以通过 ZeroTier 分配的 IP 互访
注册并创建网络
打开 ZeroTier 官网 点击右上角 Sign Up 注册按钮,创建一个用户
或者也可以使用 google、github、microsoft 账号进行登录,免去创建账号的步骤
登录后台,会弹出提示框,做一些基础的类似问卷调查的咨询,可以直接关掉不用管
之后点击页面顶部的 Create A Network 按钮,在创建出来网络后复制 NETWORK ID 用于客户端接入
Unraid 接入
在 Unraid 上可以直接通过 APPS 应用商店页面来安装 docker 版本的 ZeroTier
如果没有 APPS 所以还没安装社区应用商店插件,可参考之前的文档安装
在配置界面输入上一步复制出来的网络 ID 即可点击下方 APPLY 按钮启动容器
可以看到已经正常启动,并且使用的是 host 类型的网络,也就是与 unraid 宿主不进行网络隔离
重新回到 ZeroTier 控制台,可以看到已经右一个在线成员,NODES 部分:
-
绿色 表示已经连上的终端,但还未进行验证
-
蓝色 表示已经经过验证的终端,可以使用该网络进行互访
点击网络 ID 进去具体的网络配置页面
往下找到 Members 部分,勾选对应的终端即可完成节点信任
回到控制台主页,可以看到 NODES 蓝色部分也变成 1 了,说明已经 unraid 已经配置完成
Android 手机接入
安卓手机可在 官网下载页面 点击下载跳转 Play 商店,或者去各大应用市场找找
第一次打开中间是一片空白,点击右上角的 + 号加入网络
输入我们在 ZeroTier 控制台上创建的网络 ID,其他的不需要填写或勾选,保留默认即可,
然后点击最下方的Add Network按钮,加入网络
这时候因为还没连接上服务端,所以Network Name是 unknown,点击按钮启动网络即可
启动网路后,跟前面接入流程一样,到控制台进行授权,为了方便区分也填写了设备名为Android
然后就可以通过 unraid 节点的分配的 ZeroTier 网络 IP 来访问 unraid 了
PS:如果也是跟我一样使用移动网络来访问的,还需要在主界面点击设置,勾选允许使用蜂窝数据
MacOS 接入
直接到 官网下载页面 下载 pkg 安装包后安装,然后打开
ZeroTier 的 MacOS 版本打开后没有主界面,只运行在托盘处
点击托盘图标,选择 Join Network 加入网络,然后输入网络 ID 即可
在第一次使用时出现一个问题,加入网络后一直无法在 ZeroTier 控制台上找到终端
点击 Networks Details 查看网络详情,显示处于 REQUESTING_CONFIGURATION
状态
在 github 看到类似场景,解决方案有两种:
-
重启 MacOS
-
通过命令行 Kill zerotier-one 进程(仅在托盘图标处点击退出无效)
因为实在不想重启电脑,尝试通过终端输入一下命令 kill 之后发现已经可以连接:
sudo axu | grep [z]erotier-one | awk '{print $2}' | xargs kill
此时连接状态变成了 ACCESS_DENIED
了,因为只是连接上还没通过授权
回到 ZeroTier 控制台,已经可以看到新的设备接入,按照之前的方式授权即可
勾选后,查看客户端的网络状态,已经变成 OK
,至此 MacOS 端接入完成
网络调整
使用自定义网段
如果你不喜欢 ZeroTier 创建网络后默认分配的网段,还可以进行自定义
比如一开始创建出来的网络为 192.168.191.0/24
,想换成更精简 10.1.1.0/24
自定义网段
则需要进入网络管理页面,往下拉到 Advanced 高级配置部分
首先需要调整的是路由管理:
-
点击图标删除原来的
192.158.191.0/24
默认分配的路由 -
添加新的路由,Destination 目标网络输入:
10.1.1.0/24
1.(Via) 留空,不要输入 -
点击 Submit 提交
往下拉进入 IPv4 地址分配,为加入网络的客户端设置分配地址池:
-
切换到 Advanced 高级配置
-
点击图标删除默认分配的
192.168.191.1-254
地址池 -
重新输入自定义网络的起止地址作为新的地址池:
10.1.1.1
-10.1.1.254
-
点击 Submit 提交
至此,新加进来的设备已经分配了自定义网络的 IP,而旧客户端只需要重新登录即可分配到新 IP
但旧客户端可能会出现同时分配了新旧两个网段的 IP,只需要手动删除旧网段 IP 就行了
为设备指定 IP
默认连接上来的设备都是自动分配地址,而对于 Nas 设备希望是使用与实际网络相同的 IP 方便记忆
假设我这台 Nas 默认分配的 IP 是 10.1.1.208
,我希望使用 10.1.1.2
便于记忆及输入:
-
先在 IP 管理下方的框框输入
10.1.1.2
并点击前面的+图标为该 Nas 设备添加 IP -
在点击原先默认分配的 IP 前面的删除图标,删除
10.1.1.208
这个 IP
最终效果如下:
写在后面
就目前使用而言,偶尔通过 ZeroTier 穿透访问家里的网络设备还是可以使用的,其优势在于:
-
可直接使用公共的 planet 服务器,而无需提供公网 IP 的服务器
-
强大且灵活的控制面板,可直观地、方便地管理你的 ZeroTier 网络及设备
-
非直接暴露公网,所有设备都需要接入网络且认证之后才可以互相访问,有一定安全性
但同时,对应的 ZeroTier 也存在一些缺点:
-
planet 服务器位于国外,在国内高峰时期可能会出现连接不上或网络质量差的情况
-
强大的控制面也带来一定的学习及操作成本
-
毕竟使用 ZeroTier 的服务器,这是不可控的,存在一定的风险
关于穿透网络质量问题,是可以考虑搭建 Moon 服务器做中转加速,
甚至更彻底解决质量及安全问题,还可考虑自建 planet 服务器实现独占服务
不过这样也意味着你需要额外准备一台带公网 IP 的 vps 了
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/47484.html