前言
由于本系列是建立在个人 NAS 的基础上,所以最好不要通过域名、公网 IP 等访问。
本文以广泛使用的 ZeroTier 为例。当然,后面也会给出大部分可用的内网穿透方法链接,可自行参考。
预先准备:
- 注册 ZeroTier 服务
- NAS 主机
- 客户端主机
进阶准备:
-
moon 中转服务器。
官方 moon 中转服务器在国外,国内客户端使用延迟大,甚至出现访问不了的问题。可以自己搭建 moon 中转服务器,来实现稳定的服务。
主要步骤:
由于平台太多,请使用右侧导航目录。
- 注册 ZeroTier 服务
- 安装 ZeroTier
- 设备连接虚拟网络
- 测试访问NAS 服务
注册 ZeroTier 服务
-
访问官网:ZeroTier官网 ,注册用户、验证邮箱并登录。
-
进入后台管理首页。
-
点击顶部菜单栏的 “Networks” ,进入虚拟网络管理页面。
-
点击 “Create a Network” ,创建虚拟网络。
刷新页面可以看到创建的虚拟网络。
设置 ZeroTier 服务
-
点击创建的虚拟网络 ID ,进行设置。
这个 ID 就是虚拟网络的地址。
-
打开虚拟网络设置界面,页面会自动滚到添加设备项。
-
滚动页面到最上方,进行设置。
-
“Basics” 基础。
- “Network ID” :虚拟网络地址 ID 。
- “Name” :虚拟网络名称,自拟。
- “Description” :描述。
- “Access Control” :访问控制,默认 PRIVATE(私有),以后添加设备需要管理员同意。
-
“Advanced” 高级。
- “Managed Routes” :托管路线,设置虚拟网络的 IP 网段。
- “IPv4 Auto-Assign” :虚拟网络下 IPv4 自动分配,自选。
- 其他选项保持默认。
-
只要设置步骤结束,以上步骤不用点击保存,已经在设置过程中保存了更改。
安装 ZeroTier
Linux
-
使用命令行。
- SSH 服务。
- 之前安装的 Cockpit 内含终端。
- Shellinabox 插件。
-
安装 curl 。
复制
sudo apt install curl
-
下载 ZeroTier 。
访问 ZeroTier – Global Area Networking ,点击顶部菜单栏的 “DOWNLOAD” 。
向下滚动到 “Linux (DEB/RPM)” 部分,复制执行两条绿色指令其一即可。
-
如果下载
zerotier-one
出错。这里以 Debian 为例。
-
通过浏览器找到你系统的对应安装包,下载,再传输到 OMV 主机: Index of /RELEASES/1.4.6/dist/ 。
-
终端命令行下载:
复制
# Debian wget https://download.zerotier.com/RELEASES/1.4.6/dist/debian/buster/zerotier-one_1.4.6_amd64.deb
安装:
复制
sudo dpkg -i zerotier-one_1.4.6_amd64.deb
再执行之前的绿色指令。
-
Windows
-
访问 ZeroTier – Global Area Networking ,点击顶部菜单栏的 “DOWNLOAD” 。
-
向下滚动到 “Microsoft Windows” 部分,点击 “MSI Installer (x86/x64)” 下载 .msi 格式安装包。
-
安装并运行。
MacOS
- 访问 ZeroTier – Global Area Networking ,点击顶部菜单栏的 “DOWNLOAD” 。
- 下载对应安装包/
Android
- Google Play 下载。
Apple iOS
- App Store 下载。
设备连接虚拟网络
将设备连接虚拟网络有两种方法:设备中添加虚拟网络地址 ID ;在 ZeroTier 网络管理界面添加设备。
但是由于在 ZeroTier 网络管理界面添加设备需要公有 IP ,这里不做说明。
Linux
-
记下将要添加的虚拟网络的地址 ID 。
-
终端命令行输入:
复制
sudo zerotier-cli join [虚拟网络地址ID]
示例:
-
刷新 ZeroTier 虚拟网络管理页面,找到 “Members” ,可以看到一个设备连接到虚拟网络。
-
手动授权,设置信息。
- 勾选该设备前面的选框。
- 可以自定命名、描述。
- 已经自动分配 IP ,可以添加/删除 IP 地址。
-
终端中查看 ZeroTier IP 分配情况。
复制
ifconfig
-
查看加入虚拟网络。
复制
sudo zerotier-cli info 或 sudo zerotier-cli listnetworks
-
现在,设备已经连接虚拟网络。
Windows
-
右键点击右下角 ZeroTier 图标,点击 “Join Network” 。
-
窗口中输入要添加的虚拟网络的地址 ID ,点击 “Join” 。
-
在弹出的网络连接中,点击 “是” 以加入虚拟网络。
-
右键点击右下角 ZeroTier 图标,可以看到添加的虚拟网络地址 ID ,并且在前显示勾选。
-
进行手动授权,步骤同 Linux 。
MacOS
同 Windows 。
Android
-
创建虚拟网络连接。
-
输入虚拟网络地址 ID ,点击 “Add Network” 。
-
点击滑块,启用虚拟网络。
-
同意连接请求。
-
进行手动授权,步骤同 Linux 。
-
点击滑块,关闭,再点击滑块,启用。连接信息刷新,连接成功。
Apple iOS
同 Android 。
测试访问NAS 服务
Linux
以 Ubuntu 18.04 TLS 为例。
-
打开资源管理器。
-
点击 “其他位置” ,即可看到 OMV NAS 服务。
-
也可以在 “其他位置” 下的地址栏中输入以下链接:
- 这里不是反斜线。
复制
smb://[NAS 设备在虚拟网络中的 IP]
-
在弹出的凭据认证中,输入用户名、密码,即可访问 NAS。
Windows
-
在资源管理器中,输入:
两个反斜线
\
+ NAS 设备在虚拟网络中的 IP。复制
\\[NAS 设备在虚拟网络中的 IP]
回车。
-
在弹出的凭据认证中,输入用户名、密码,即可访问 NAS。
MacOS
-
打开资源管理器。
-
使用快捷键
Command + k
。 -
输入以下链接:
- 这里不是反斜线。
复制
smb://[NAS 设备在虚拟网络中的 IP]
-
在弹出的凭据认证中,输入用户名、密码,即可访问 NAS。
Android
-
新建连接。
-
选择 SAMBA 类型,输入 NAS 虚拟网络中的 IP 。
-
在弹出的凭据认证中,输入用户名、密码,即可访问 NAS。
Apple iOS
同 Android 。
OMV 5 web管理页面
-
浏览器中输入 OMV NAS 设备在虚拟网络中的 IP,访问 OMV 5 web管理页面。
下一篇:搭建 ZeroTier moon 服务器
官方 moon 中转服务器在国外,国内客户端使用延迟大,甚至出现访问不了的问题。可以自己搭建 moon 中转服务器,来实现稳定的服务。
请参阅:ZeroTier 搭建 moon 服务器 。
【出处】:https://www.cnblogs.com/Yogile/p/12502311.html
=======================================================================================
ZeroTier 搭建 moon 服务器
前言
前文实现了 ZeroTier 内网穿透 。但是由于 ZeroTier 的官方 moon 中转服务器在国外,国内客户端可能出现使用延迟大,甚至出现访问不了的问题。可以自己搭建 moon 中转服务器,来实现稳定的服务。
注意:
- 1.2.4 版本之后的 ZeroTier 才支持 moon 服务器。
moon 安装 ZeroTier 并加入虚拟网络
请参阅:ZeroTier 内网穿透 。
moon 服务器配置
-
进入 ZeroTier 配置文件目录。
复制
cd /var/lib/zerotier-one
-
生成 moon.json 签名文件。
复制
sudo -s zerotier-idtool initmoon identity.public >>moon.json
-
编辑
复制
vim moon.json
可以看到如下信息:
moon.json复制
{ "id": "0123456789", "objtype": "world", "roots": [ { "identity": "xxxxxxxx:0:xxxxxxxx", "stableEndpoints": [] } ], "signingKey": "xxxxxxxx", "signingKey_SECRET": "xxxxxxxx", "updatesMustBeSignedBy": "xxxxxxxx", "worldType": "moon" }
注意:记录下 moon.json 文件中的 id 。
-
修改信息。
找到
"stableEndpoints": []
。添加
"IPv4地址/9993"
或者"IPv4地址/9993","IPv6地址/9993"
。示例:
复制
"stableEndpoints": ["1.2.3.4/9993","2001:abcd:abcd::1/9993" ]
-
生成 .moon 签名文件
复制
zerotier-idtool genmoon moon.json
显示:
复制
wrote 0000006xxxxxxxxx.moon (signed world with timestamp 15xxxxxxxxxx7)
-
创建 moon 结点文件夹。
复制
mkdir /var/lib/zerotier-one/moods.d
-
将签名文件复制到 moods.d 文件夹中
复制
cp 0000006xxxxxxxxx.moon moons.d/
-
重启 ZeroTier 服务
复制
/etc/init.d/zerotier-one restart
设备连入 moon 服务器
自动配置
-
输入命令:
复制
sudo zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
-
Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:
复制
zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
手动配置
各个系统平台下 ZeroTier 目录位置 :
复制 Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
-
在对应系统平台下的 ZeroTier 目录位置,创建 moods.d 文件夹。
复制
sudo mkdir /var/lib/zerotier-one/moods.d
-
将 moon 服务器生成的 0000006xxxxxxxxx.moon 拷贝到 moods.d 文件夹下。
-
重启 zerotier-one 服务。
- Linux :
/etc/init.d/zerotier-one restart
- Windows :
- 按下 windows键+r ,打开 “运行” 窗口。
- 输入 services.msc 回车。
- 找到 ZeroTier One 服务,右键选择 “重新启动” 。
- Linux :
检测生效
-
在非 moon 的客户端,输入命令:
复制
zerotier-cli listpeers
-
Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:
复制
zerotier-cli listpeers
如果出现如下情况:
- moon 服务器的 ID 、IP 地址出现在列表中,证明联通 moon 服务器。
复制200 listpeers <ztaddr> <path> <latency> <version> <role>
...................
200 listpeers 6xxxxxxxxx [moon IPv4地址]/60723;11450;11405 -1 1.4.6 MOON
...................