【沧海拾昧】绿联NAS配置WebDAV公网访问并使用RaiDrive挂载到本地

【沧海拾昧】绿联NAS配置WebDAV公网访问并使用RaiDrive挂载到本地

#C0601


沧海茫茫千钟粟,且拾吾昧一微尘

——《沧海拾昧集》@CuPhoenix


【阅前敬告】沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系【如有问题必是本集记录有谬,切勿深究】


目录


前言

将 NAS 的磁盘空间通过 RaiDrive 等软件挂载到本地使用是一种十分便捷的方法,但是 RaiDrive 中只有针对群晖(Synology)等几个品牌 NAS 的原生支持,如果使用绿联(UGREEN) NAS 则无法直接在 RaiDrive 中挂载。本文记录了使用绿联 NAS 配置 WebDAV 协议并通过公网访问的方式在 RaiDrive 中挂载的方法以供参考。

本文用到的软/硬件环境:绿联 DH3400 Plus;

一、配置步骤

1、确认网络设备支持 IPv6

  • 要实现公网访问,必须确认设备可以访问公网 IP,包括确认使用的光猫、路由器对 IPv6 的支持和对应功能是否设置开启;

可以通过 这个网站 进行测试:如果显示网络 IPv6 访问优先,则不需要调整,否则需要先参考其他资料开启 IPv6 访问。

在这里插入图片描述
其他测试连接测试链接 1 :仅支持 IPv6 访问;测试链接 2 :测试网络是 IPv4 还是 IPv6 访问优先(访问IPv4 / IPv6双栈站点,如果返回 IPv6 地址,则 IPv6 访问优先)

2、购买域名

  • 进行 DDNS 配置需要有一个自己的域名,推荐使用阿里云或腾讯云进行配置(该推荐源自绿联官网资料),这里以腾讯云为例;
  • 在腾讯云购买一个域名(购买时需经过实名认证等步骤,不需要购买其他服务,最便宜的大概只需要几块钱一年),购买成功后等待一会有短信通知域名恢复正常解析,就可以使用了;

3、配置访问凭证

  • 登录腾讯云 访问管理控制台策略页,单击【策略】页面中的【新建自定义策略】,并单击【按策略语法创建】;
  • 选择【空白模板】,进入下一步;
  • 复制这段权限脚本到【策略内容】中,然后单击完成;
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "cdb:DescribeDBInstances" ], "resource": [ "*" ], "condition": [] }, { "effect": "allow", "action": [ "cvm:DescribeInstances" ], "resource": [ "*" ], "condition": [] }, { "effect": "allow", "action": [ "cynosdb:DescribeClusters" ], "resource": [ "*" ], "condition": [] } ] } 
  • 在导航栏中单击【访问密钥】→【API密钥管理】,获取SecretIdSecretKey(即 AccessId 和 AccessKey ),注意保存好,不要泄露;

2、NAS 配置 WebDAV 服务

  • NAS 开机后,按绿联官方操作手册进行注册、登录等一系列初始化设置;
  • 配置完成后,可以同局域网 IP 访问检测是否设置成功,例如 NAS 的局域网 IP 是 192.168.1.100,则在浏览器中访问【192.168.1.100:5006】看是否会进入鉴权页面;

在【控制面板】→【文件服务】→【WebDAV】中选择启用服务,并在高级设置中勾选;

在这里插入图片描述

3、NAS 配置 DDNS 支持

  • 如果一切正常,点击【连接测试】会显示成功;

服务商选择腾讯云,然后输入刚才注册的域名,和刚才获取的 SecretId 和 SecretKey;

在这里插入图片描述

在【控制面板】→【设备连接】→【远程访问】中选择【启用 DDNS 支持】,然后选择【新增】;

在这里插入图片描述

4、配置反向代理

  • 注意:按这个步骤使用 Nginx 做反向代理可能出现问题(挂载后无法移动文件和修改文件名),该问题尝试网上一些修改 Nginx 的方法无法解决。推荐使用 Lucky 来设置反向代理。教程参考:教程1教程2
  • 这里提醒一点:设置动态域名的时候,要根据 IPv4 还是 IPv6 来选择获取公网 IP 方式。教程1中的示例是 IPv4 的,所以选择了通过接口获取,如果根据本文上面的步骤来做公网 IP应该是 IPv6 的,因此这一步要选择网卡获取。
  • 另注:可以通过 NAS 中的 自动映射 功能(在【控制面板】→【设备连接】→【远程访问】→【方式二:高级设置】)完成路由器端口的映射,不用从路由器中手动设置。
  • 在 NAS 的应用中心中安装 docker,然后在 docker 的镜像中搜索并下载 jc21/nginx-proxy-manager,安装 nginx proxy manager(如果下载失败,则需要开启加速,可以通过 官方教程 进行设置);
  • 设置容器【自动重启】;
  • 点击【Certificates】,选择【Add Certificate】→【Let’s Encrypt via DNS】,在 Domain Names 中输入刚才购买的 DDNS 域名,然后在 DNS Provider 中选择腾讯云 Tencent Cloud,输入 secret_id 和 secret_key,点击【Save】进行保存;
  • 配置完成后,打开浏览器,输入 https://xxxxxxx:8000(xxxxxxx 是自己的域名),如果能跳转到 WebDAV 的页面就是成功了;

点击【Proxy Host】配置反向代理,新建一个 Proxy Host,在 Domain Names 中输入刚才购买的 DDNS 域名,转发 IP 填写 172.17.0.1,端口为5005,然后在 SSL 选项卡中勾选 Force SSL 和 HTTP/2 Support;

在这里插入图片描述

启动容器后,可以通过【快速访问】进入管理页配置证书;

在这里插入图片描述

端口号可以改成比较好记的,避免与 NAS 已有的端口产生冲突;

在这里插入图片描述

对容器进行配置,注意在【存储空间】中加入 /etc/letsencrypt 这个容器目录,否则服务无法启动;

在这里插入图片描述

5、在 RaiDrive 中挂载

  • 启动 RaiDrive,新增虚拟驱动器,在 【NAS】选项卡中选择【WebDAV】,然后在地址栏中输入 https://xxxxxxx:8000,并输入用户名和密码(在绿联APP中设置的访问 WebDAV 的密码,相关的权限也在绿联 APP 中管理);
在这里插入图片描述
  • 点击连接,即可将 NAS 挂载到本地磁盘;

6、设置防火墙

  • 规则1用于允许反向代理的端口访问,规则2用于允许内网访问所有端口。设置完成后记得勾选启用,然后确定。

防火墙可以在 NAS 中进行设置,这里给出两条规则参考:

在这里插入图片描述

二、最终结果

在我的电脑中,出现该驱动器。不开 RaiDrive 会员只能挂载到网络位置,开了会员之后可以挂载到本地磁盘的位置,但这两个在一般使用中没有什么区别。

在这里插入图片描述
参考文献绿联NAS配置公网访问配置腾讯云访问凭证绿联云知识中心 - 启用DDNS支持

Read more

WebView 并发初始化竞争风险分析

WebView 并发初始化竞争风险分析

1. 问题背景 本次验证聚焦以下场景: * 后台线程异步调用 WebSettings.getDefaultUserAgent() * 主线程在冷启动阶段首次调用 new WebView() * 两者并发进入 WebView provider / Chromium 初始化链 目标不是验证“预热是否一定提速”,而是确认: * 是否存在共享初始化链竞争 * 主线程是否会因此被拖慢或阶段性阻塞 * 是否具备演化为 ANR 的风险 2. 关键修正结论 结合当前所有日志,更准确的结论应为: getDefaultUserAgent() 与首次 new WebView() 并发时,二者并不是始终“卡死”在 WebViewFactory.getProvider() 这一行;更真实的表现是:它们会共享同一条 WebView provider / Chromium 初始化链,在不同阶段交错推进,并在部分关键节点出现阶段性等待、锁竞争或串行化,进而放大主线程耗时。 也就是说,问题本质更接近: * 交错执行

WebAssembly:开启 Web 性能新时代

WebAssembly:开启 Web 性能新时代

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_ZEEKLOG博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》 文章目录 * * 一、WebAssembly 的基本概念 * (一)什么是 WebAssembly? * (二)WebAssembly 的设计目标 * 二、WebAssembly 的优势 * (一)高性能 * (二)跨平台 * (三)语言无关性 * (四)与 JavaScript 互操作 * 三、WebAssembly 的开发流程 * (一)选择编程语言 * (二)

Unity+AI 用一句话制作完整小游戏:飞翔的牛马【AI纯添加-0手工代码】

Unity+AI 用一句话制作完整小游戏:飞翔的牛马【AI纯添加-0手工代码】

* 📢前言 * 🎮Unity+AI 用一句话制作完整小游戏:飞翔的牛马【AI纯添加-0手工代码】 * 一、准备工作 * 1.1 软件安装 * 1.2 使用Unity添加一个工程 * 二、需求描述 * 三、AI制作 * 四、问题反馈 * 五、游玩体验 * 六、图片素材填充 * 七、最终效果 * 八、心得体会 * 💡总结 📢前言 * 之前写过文章介绍怎样使用UnityMCP+Claude进行游戏辅助开发。 * 本文将使用Unity引擎+Claude制作一款 AI纯添加 - 0手工代码 的小游戏:飞翔的牛马。 * 切实上手体验一下 不用自己手敲任何代码 和 不在游戏引擎中进行任何游戏操作 来制作一款完整的小游戏。 🎮Unity+AI 用一句话制作完整小游戏:飞翔的牛马【AI纯添加-0手工代码】 一、

他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

个人主页-爱因斯晨 文章专栏-赛博算命 原来我们在已往的赛博算命系列文章中的源码已经传到我的Github仓库中,有兴趣的家人们可以自己运行查看。 Github 源码中的一些不足,还恳请业界大佬们批评指正! 本文章的源码已经打包至资源绑定,仓库中也同步更新。 一、引言 在数字化浪潮席卷全球的当下,传统塔罗牌占卜这一古老智慧也迎来了新的表达形式 ——“赛博塔罗”。本文档旨在深入剖析塔罗牌的核心原理,并详细介绍如何利用 Java 语言实现一个简易的塔罗牌预测程序,展现传统神秘学与现代编程技术的融合。 二、塔罗牌原理 (一)集体潜意识与原型理论 瑞士心理学家卡尔・荣格提出的 “集体潜意识” 理论,为塔罗牌的运作提供了重要的心理学支撑。该理论认为,人类拥有超越个体经验的共同心理结构,其中蕴含着 “原型”—— 即普遍存在的、象征性的模式或形象。 塔罗牌的 22 张大阿尔卡那牌恰好与这些基本原型相对应。例如,“愚人” 代表着天真与新开始的原型,“魔术师” 象征着创造力与潜能的原型,“女祭司” 则体现了智慧与直觉的原型。这些原型是全人类共通的心理元素,这也正是不同文化背景的人都能