大家好,我是羊刀仙儿!
▼年前新购了一台威联通 TS-464C2,原本打算趁着过年在家给爹妈在家里搭建一套家庭影音库,无奈时间紧凑,只能在走之前仓促先把外网访问搞定,方便后续其它项目部署。
▲目前我个人认为 TS-464C2 是威联通性价比最高的消费级机型,比 464C 也就贵了小几百
▲ TS-464C2 相较于 TS-464C 有以下优势:1. 从板载内存升级为双通道可扩内存,再无内存焦虑;2. 全覆盖 SSD 散热片,不用单独买散热甲;3. 每个硬盘槽都新增了硬盘锁,家里小孩子比较多的朋友可能对这东西的作用深有体会。丢几张图
配件一览
▲可能有朋友会说,既然给爹妈搭建影音库,那极空间岂不是更好更易用?
▲确实有考虑过,也被一些群友种草,但长时间观察下来,我觉得极空间也就仅仅适合娱乐;频频出现的死亡漏洞先不提,别家品牌包括同样是后起新秀的绿联在内,ssh root 权限起码都开放,但到极空间这边却封掉,NAS 不应该做成闭环产品 / 生态,感觉极空间会走上不同的道路,不太想去赌。
▲再考虑到系统功能完善程度,企业级技术背书,老牌群晖和威联通即便在企业场景下都能轻松保障数据安全,家用场景那更不用说,各种功能都应有尽有;并且我个人从 Dmini 用到 564,对威联通也基本熟悉个大概,最终做出了上面的选择
好啦,唠了不少,咱们进入正题
那么该如何简单实现外网访问家中的 NAS 设备?首先需要开通公网 IP;将光猫设置为桥接,通过主路由进行拨号;在主路由中将 NAS 的端口映射好即可
公网 IP
▲俩老大家里宽带的公网 IP 获取有些出乎意料 ~ 跟师傅说需要装远程摄像头,没想到师傅当即把光猫超级密码发给我爹,隔天上门帮忙把光猫改了桥接,并且嘱咐说不要搞乱七八糟的上传类业务就行
▼回家后用笔记本查询的 IP 和主路由的 WAN IP 一致,公网无疑 ~
▼本文以华硕路由器演示,我的这款刷成梅林改,路由器的拨号位置如下图所示,有同款的朋友其它选项可以参照我这里的或保持默认。
▲一般联通和电信都能免费申请到,如果不行的话,可以试试公网 ipv6,如果这还是不行,那就只能使用内网穿透软件或使用 myqnapcloudlink 服务(smarturl),绿联、群晖、极空间等也有类似功能。
端口转发
▼很简单,如下图所示,点击【添加配置文件】
▼需要填写的东西也不多,请看下图,本机 IP 地址选择要转发的设备即可
▼如下图所示,端口已经映射好
▼此时就可以在 web 输入 公网 IP:5000 就可访问到 NAS,但是网址前飘着一个大大的" 不安全 ",那必然不行啊。当然这也不是咱们的最终目的,只是先做下演示
▼这里提一下,虽然威联通 myqnapcloud 配置 DDNS 后,用 qnap 域名 + 端口号,再申请个免费的 SSL 证书也能实现 https 访问,但从国内目前的情况看,不建议过度依赖和使用威联通提供的域名
域名相关
▲目前国内主流的域名注册购买平台是阿里云和腾讯云,新用户第一年一块钱可以注册一个,不过实名认证是必须的;如果大伙有办法,可以搜索Namesilo,它是国外最大的 ICANN 认证域名提供商之一,以物美价廉的优势积累了不错的口碑;费用方面,其域名注册费用相较国内来说便宜不少 ~
▼购买完域名后,首先要做的是解析工作,如下图,对应 IP 填写咱们的公网 IP
▲这里解释一下 "@" 代表主域名,"*" 代表二级域名,例如注册域名为 abcd.com,我们给 NAS 配置的二级域名可以为 nas.abcd.com,"*" 就代表所有的前缀,*.abcd.com
▼还需要准备 AccessKey,阿里云的位置很好寻找,腾讯云的话可以在搜索栏搜索一下,切记生成后立刻保存好 ID 和密码
▼点击【新建密钥】
▼建议下载 CSV 文件保存好
▲我用的是腾讯云注册的 .love 域名。接下来步骤也都非常简单,咱们先部署 Lucky
部署 Lucky
▼简单介绍
▼先在文件管理器中创建一个主机挂载目录,这样就算删除容器后配置也不会丢失
▼接着咱们打开 Container Station,创建应用,代码如下
version: '3' services: lucky: image: gdy666/lucky:latest container_name: lucky ports: - "16601:16601" # 冒号左侧可改 volumes: - /share/CACHEDEV2_DATA/Container/lucky:/goodluck # 冒号左侧可改为自设目录 restart: always network_mode: host
▼这个端口我就不做修改保持默认,反正以后不会冲突,如下图所示
▼也可 ssh 工具进入后台,直接输入 Docker run 命令安装,标红的可进行修改,参照上面 docker compose
-p 16601:16601
-v /root/luckyconf:/goodluck
# 挂载主机目录 , 删除容器后配置不会丢失。可替换 /root/luckyconf 为主机目录 , 配置文件为 lucky.conf docker run -d --name lucky --restart=always --net=host -p 16601:16601 -v /root/luckyconf:/goodluck gdy666/lucky
▼运行成功后,我们便可在 web 端输入 NAS_IP:16601 进行访问,默认账户密码:666/666
▼建议咱们先去设置中修改一下账户密码
一切顺利,下面我们开始进行动态域名解析
DDNS(动态域名解析)
▼左侧菜单,点击【动态域名】,继续点击【添加任务】
▼任务名称随意,选择对应域名服务商,填写上文域名相关中提到生成的 Token,选择家里公网类型,域名列表填写示例 " 输入 abcd.com 按下回车 继续输入 *.abcd.com",保证一行一条域名。填写完毕后如下图所示,点击右下角的【添加任务】
▼像这样便是成功了
SSL 证书
▼左侧菜单,点击【安全管理】后,选择右上的【添加证书】
▼让我们来看看该如何设置:
初始的界面可能会不一样,证书的添加方式选择【ACEM】即可
域名颁发机构为 Let's Encrypt,SSL 证书有效期三个月,但是 Lucky 支持自动续签,我们无需理会
验证方式还有密钥以及域名列表同上文,填写方式相同
更多设置勾选 "DNS 查询强制 IPv4" 和 "DNS 查询仅使用 TCP 通道"
▼其它内容无需做额外改动,最终如下图所示,点击右下角【添加】
▼证书不会立刻申请下来,我们得等个十几秒或一分钟左右,界面会自动更新显示
▼申请日志
接下来就是最后一步,反向代理!
反向代理
▼左侧菜单,点击【Web 服务】,再选择顶部的【添加 Web 服务规则】,弹出下图窗口
规则名称随便填
监听类型根据宽带情况选择,我这是 IPv4
监听端口填个可用端口,国内 443 基本是关闭状态,否则就能纯域名访问设备,我改成了 8881
我们要实现 https 访问,TLS 是必须的,必须开启!
接下来要做的是点击上图中的【添加 Web 服务子规则】
▼如下图所示,会出新的子规则窗口
名称依旧随意
服务类型默认为反向代理,无需修改
前端域名 / 地址:填写一个好记忆的二级域名,我用来访问 NSA,就可以填写成 nas.abcd.com;若是 webdav,就可以填写 webdav.abcd.com;甚至 lucky 本身也做个反代,就可以填写 lucky.abcd.com
后端地址即为 NAS 局域网地址 标准填写示例::5000
BasicAuth 认证就是通过域名访问进入服务前再加一道锁,保护服务安全,有需要的服务可以开启
▲检查一遍,没问题就点击右下角【添加】
▼还差最后一步,回到我们的路由器后台将监听端口转发一下,本地 IP 地址依旧为我们的 NAS 地址,上文监听端口我设置成了 8881,直接把它转发出来!
最终展示
▼浏览器输入 nas.xxx.love:8881,访问我的 NAS,可以看到小出现,目的达成
▼ NAS 的访问搞完,Lucky 本身也顺路做下反代,只需要在原来的规则下添加第二个子规则即可,监听端口不用动
▼二级域名设置为 lucky.xxx.love
▼最后点击右下加【修改】,因为是同一个监听端口,也不需要再次转发,直接输入域名 + 端口就可成功访问
▲设置完后,演示给家里领导看,结果发现移动端输入域名 : 端口,默认还是 http 访问,必须手动加上https://,这就很麻烦,解决方法如下:
▼回到 Lucky,左菜单点击【Web 服务】,添加一条全新的规则
规则名称自定
操作模式选择 " 定制模式 "
监听类型按照公网类型选择
监听端口跟上面设置的监听端口相同,我这里为 8881
TLS 千万不要开启,因为要让 http 自动重新定向到 https
▲点击上图的【默认子规则】
服务类型选择 " 重定向 "
默认目标地址填写 https://{host}:{port}
▲最后点击右下角的【修改】即可 ~
最后
在分享 Nginx Proxy Manager 之后,陆续有不少小伙伴推荐" 神器 Lucky ",尝试之后颇感震撼:集成很多常用功能,对于新用户来说也非常友好,原本要部署多个容器才能实现的功能,Lucky 自己就能搞定。现在还支持网络存储模块,可以把阿里云盘等服务挂载到 Lucky 内部的 WebDAV、FTP、FileBrowser 和 Web 服务模块,点我查看。有这方面需求的小伙伴可以行动部署起来 ~
本篇到这儿就结束啦,欢迎大伙评论区留言交流讨论;最近抽空再把家庭影音折腾折腾,记录一下,后续我也会定期分享 NAS 使用经验以及好用、好玩的 Docker 项目,喜欢的朋友记得点赞、收藏、关注咱们下期再见!