共计 3026 个字符,预计需要花费 8 分钟才能阅读完成。
前言 - 内网穿透
内网穿透是指通过一种技术让外部网络可以访问到内网的 NAS 设备,这样即使在不同网络环境下,也能够远程访问和管理 NAS 设备。以下是一些常见的内网穿透方案:
Synology 官方提供的 QuickConnect
Synology 官方提供了 QuickConnect 服务,可以通过 Synology 账号远程访问 NAS 设备。用户可以在 NAS 控制面板中设置和管理 QuickConnect 服务,使其在不同网络环境下访问 NAS 变得更加简单。
Synology 的 DDNS 服务
Synology NAS 支持使用 DDNS(动态域名解析)服务,可以为 NAS 设备设置一个动态域名,使用户可以通过域名访问 NAS,而不必担心动态 IP 地址变化带来的问题。
VPN(虚拟专用网络)
通过在路由器上设置 VPN 服务器,或者使用 NAS 自身的 VPN 服务,可以建立安全的远程连接,让用户远程访问内网资源,包括 NAS 设备。
端口转发 / 端口映射
在路由器上设置端口转发(或称端口映射),将指定端口的流量转发到 NAS 设备上,这样用户就可以通过特定端口来访问 NAS。但要确保端口转发时考虑到安全性,避免暴露不必要的服务或端口。
第三方内网穿透服务
使用类似于 ngrok、frp、ZeroTier 等第三方工具或服务进行内网穿透,这些服务可以帮助用户将内网设备暴露到公网上,但需要注意安全性和隐私保护。
这篇文章就来介绍 ZeroTier 实现内网穿透,ZeroTier 异地组网是一个非常不错的内网穿透方式,特点就是免费,不限流。
缺点是免费用户只有 25 个
步骤
-
注册 ZeroTier 账号
-
群晖 Nas 中配置 ZeroTier
-
安装 ZeroTier 客户端
注册 ZeroTier 账号
进入 ZeroTier 官网,注册账号 https://www.zerotier.com/
创建网络
点击:create a network
群晖 Nas 中配置 ZeroTier
群晖 DSM6.X 下载相关套件安装以后要加入网络然后授权即可,DSM7.0 以上可以使用第三方套件或者 docker,这里我们使用官方推荐的 docker 方式。
创建目录 ZeroTier
登录群辉,打开 File Station,在 docker 目录下新建文件夹并重命名为 ZeroTier,然后赋予读写权限。
拉取镜像
由于我的 docker 镜像注册表失败,本文用 ssh 登录操作,不在 nas 的 docker 操作。
如果没有的话请在套件中心进行下载→注册表→搜索 zerotier-synology 双击选择最新版本下载
root@star-nas:~# docker pull zerotier/zerotier-synology
Using default tag: latest
latest: Pulling from zerotier/zerotier-synology
63b65145d645: Pull complete
fb097512307f: Pull complete
fb0fa1a4a4a5: Pull complete
646d6766cba7: Pull complete
f49b23d91910: Pull complete
87ef921da0c2: Pull complete
Digest: sha256:9adf1cb6e8b0ca8f80d28d2a7c4cfa18d102552a13a7f6f1b7923d75da408a07
Status: Downloaded newer image for zerotier/zerotier-synology:latest
docker.io/zerotier/zerotier-synology:latest
创建一个持久的 TUN
参考:https://docs.zerotier.com/synology/
使用 vi 工具编写脚本到路径: /usr/local/etc/rc.d/tun.sh 这将使得 /dev/net/tun 在启动时调用
# echo -e'#!/bin/sh' >> /usr/local/etc/rc.d/tun.sh
# echo -e 'insmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
给这段脚本添加权限(其实应该先 vi 这个空的脚本,然后添加权限,最后在写入上面的脚本内容,不然会提示你 readonly)
# chmod a+x /usr/local/etc/rc.d/tun.sh
运行脚本:
# /usr/local/etc/rc.d/tun.sh
检查 TUN 的运行状态(可选):
# ls /dev/net/tun
/dev/net/tun
启动镜像
# docker run -d \
--name zerotier \
--restart=always \
--net=host \
--device=/dev/net/tun \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /volume1/docker/ZeroTier:/var/lib/zerotier-one \
zerotier/zerotier-synology
加入网络
命令:docker exec -it <docker 容器的名字 > zerotier-cli join < 替换 zerotier 的网络 ID>
# docker exec -it zerotier zerotier-cli join 123456789
200 join OK
如果不是 200 join ok,择要看看你的 docker 日志
# docker logs zerotier
常用命令
在 ZeroTier 后台授权当前设备,然后查看状态:
# docker exec -it zerotier zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 1c33c1ced0cfbfc5 c6:c3:ed:5e:04:17 ACCESS_DENIED PRIVATE zt2lrq44iv -
zerotier 官网网络授权
zerotier 官网,登录以后进入配置界面,在页面最下面对已经出现的设备进行授权,授权的方式为在□中打上√,取消打√即为取消授权。(如果没出现请稍等几秒之后刷新界面)
在 Auth 这里打钩
客户端安装
ZeroTier 客户端支持 苹果 IOS,苹果 MAC,安卓,微软的 Windows 和 linux 等常用的系统,本文只介绍 Windows 和安卓
Windows 系统
1. 下载 Windows 软件
去官网下载:https://www.zerotier.com/download/
2. 输入网络 ID
安装之后,在电脑右下角输入 Network ID
Windows 系统的 ip 是:
3. 测试访问 NAS
如图访问成功,则说明 zerotier 组成的 VPN 网络成功。
安卓系统
1. 安装 ZeroTier
2. 添加网络
3. 填写网络 ID
4. 测试访问 Nas
总结
其实没有公网 IP 的情况下,内网穿透的方案很多。比如还有 FRP、NPS 等,但是需要用到代理服务器
也可以选择像零遁 NAS 伴侣,蒲公英 X1 盒子,或者花生壳盒子这样专业的内网穿透硬件
所以今天介绍的这款 ZeroTier 就是给不想花钱,并且喜欢折腾的小伙伴准备的。它支持的平台多,一次搭建后期无脑使用,可谓是一劳永逸,虽说速度并不能完全保证(我这边是时快时慢),但是它完全可以作为无公网 IP 实现内网穿透的备用方案。