飞牛Docker运行Win版天翼云同步端记录[为瓶醋包锅饺子]
作者:KoCleo
起因是这样的,我使用飞牛NAS在电信的天翼云盘挂载搭建着一个安卓设备刷机玩机固件资源站,各种固件/资源压缩后加起来快1T。有一天天翼云盘上的所有文件无缘消失,在客户端回收站亦没找到。紧张后在客服帮助下找回,但也让我认识到:只有数据在自己手上、异地备份才是最安全的,于是便开始研究如何和天翼云进行本地文件双向同步(因为我有时想直接推送本地,在别处推云盘)开启文件快照后也不怕无缘被删无法找回。
研究发现目前天翼没有其他版本好在NAS上跑。最开始是打算OpenList结合rclone挂载本地脚本定时同步的,但折腾好久感觉rclone不太稳定,同步校验较严格,经常报错,也玩不明白。故开始尝试其他方案,愈研究才发现实现并不简单,首先目前市面上虽有几个支持挂载天翼云盘的产品,但都不能直接部署在我的NAS上,也不支持文件同步。NAS为奔腾双核+4G的小主机,装了Win8虚拟机发现天翼要求Windows10+&64位系统,白忙活。期间还甚至尝试搭建Android Docker容器运行天翼APP同步(越来越魔怔了),发现均不适用,此时已熬2天夜,实在受不了,决定尝试最麻烦的办法,使用Docker跑桌面+NoVNC直接在浏览器远程访问图形界面(不想动NAS系统,老容易玩炸),查找一番发现了确实有带Desktop&NoVNC的Docker,之后在下载和wine搭建也经历各种问题,算了,直接讲我的具体方法吧。
NAS打开Docker拉取我改自invelop/wine-novnc的kocleo/wine-novnc-docker:main镜像(添加中文local支持,否则不支持带中文的目录和文件),地址:ghcr.io/kocleo/wine-novnc-docker:main

创建容器
使用该镜像创建容器并:
映射本地:
-
[你要存放wine Windows系统数据的目录] -> /root/.wine/
- 这样相当于持久化Windows容器(飞牛NAS的Docker进行一次配置就重置一次数据)
-
[用于交换文件、放置安装程序exe的目录] -> /app
-
[其他你想联通的盘]
设置除自带以外的变量:
- VNC_PASSWD: [你远程控制登录网页NoVNC或VNC的图形化界面密码]

其他保持默认就好,开启容器后不失败的话直接点击容器管理器开放端口6080即可网页登陆到NoVNC图形化桌面(飞牛自带端口代理),输入密码即可登陆桌面,黑色的,打开左侧NoVNC控制面板,设置缩放方式为本地缩放即可完整缩放画面,鼠标右键空白选择Applications->Shells->Bash,该终端选中内容自动复制,鼠标中键粘贴,桌面剪切板位于NoVNC菜单[剪切板]面板可与主机共享剪切板。
初始化配置

输入以下命令进行初始化配置:
wincfg
选择兼容模式为Windows10
字体配置
为确保文字显示正常需要借用你Windows电脑的以下字体文件到wine C盘对应目录(由于此时C盘已挂载存储到宿主机你设定的目录,复制过去就行):
- C:\Windows\Fonts\msyh.ttc
- C:\Windows\Fonts\msyhbd.ttc
- C:\Windows\Fonts\simsun.ttc
- C:\Windows\Fonts\simhei.ttf
然后在Docker终端执行以下命令注册字体,并启用字体平滑:
cd /root/.wine/drive_c/windows/Fonts
wine reg add 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts' /v "Microsoft YaHei & Microsoft YaHei UI (TrueType)" /t REG_SZ /d "msyh.ttc" /f
wine reg add 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts' /v "SimHei (TrueType)" /t REG_SZ /d "simhei.ttf" /f
wine reg add 'HKCU\Control Panel\Desktop' /v FontSmoothing /t REG_SZ /d 2 /f
wine reg add 'HKCU\Control Panel\Desktop' /v FontSmoothingType /t REG_DWORD /d 00000002 /f
wine reg add 'HKCU\Control Panel\Desktop' /v FontSmoothingGamma /t REG_DWORD /d 00000578 /f
wine reg add 'HKCU\Control Panel\Desktop' /v FontSmoothingOrientation /t REG_DWORD /d 00000001 /f
重启wine:
wineserver -k
安装天翼云客户端
此时即可使用wine运行图形化天翼网盘安装程序(建议新版,旧版依赖系统导致不显示登陆):

wine [exe路径]
解决依赖问题
途中出现"未安装Visual Studio 2010 Tools for"不用管,安装完毕后会打不开,看到终端报错:
0110:err:module:import_dll Library SLWGA.dll (which is needed by L"C:\Program Files\ecloud\device_os_infos_plugin.dll") not found 0110:err:module:import_dll Library device_os_infos_plugin.dll (which is needed by L"C:\Program Files\ecloud\eCloud.exe") not found 0110:err:module:loader_init Importing dlls for L"C:\Program Files\ecloud\eCloud.exe" failed, status c0000135
解决方法:借用你Windows电脑C:\Windows\System32的slwga.dll到Wine对应目录再次重启就行了。
实现自动同步
此时我就可以使用天翼云客户端自带的同步盘并修改OpenList挂载点实现自动同步了,你也可以使用脚本实现NAS开机时自动启动Docker和天翼实现无人值守。
飞牛NAS扩展功能
飞牛的话你还可以去论坛查看:
[软件发布]全新2.0扩展图标管理 弃用原有PC管理注入方案 支持App及公网
https://club.fnnas.com/forum.php?mod=viewthread&tid=41357
评价
我这个方案超级傻纯为杯醋包盘饺子,但确实这是我能想到性能最好的原生同步方案了,但更好的办法肯定有,期待评论区指出,别骂我chun就行😶不过我觉得参考价值也在于Docker Wine的搭建。