V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
yyy134341
V2EX  ›  NAS

有没有方法可以在公共 SMB 上面加密保存并能够方便存取文件的方法?

  •  
  •   yyy134341 · 1 天前 · 1289 次点击

    背景

    现在有一个大家都能访问的 SMB Nas 网盘,碍于电脑硬盘容量不足,需要把部分内容迁移到 SMB 里面 因为隐私关系,因为大家都有权限 Access ,所以不希望放在 SMB 里面的文件能够给大家太轻易地打开 但是放到 SMB 的文件也是会被经常读写的,所以用压缩软件加密后丢进去、要用的时候解密拿出来也不是一个好的解决方法 来求求大家有没有什么比较无感或者比较方便能够实现?

    几个想法

    1. 开一个虚拟机,将虚拟磁盘文件丢到 SMB 里,然后再在虚拟机里面开一个 SMB Server ,个人电脑就能通过 SMB 无感存取里面的文件。这样在 SMB 里就只有一个映像文件,其他使用者也没那么容易打开里面的文件。缺点是这个映像毕竟也是没有加密,别人一拿去加载到虚拟机里就能拿到所有文件
    2. 架设类似于 ownCloud 、Nextcloud 的个人云盘服务并将数据库文件丢在 SMB 里,然后通过网页或者客户端访问文件。这个没实现过,我想到的缺点是存取文件不太方便?需要查阅文件的时候还是要通过客户端/网页去下载/上传文件,这样本地就会有很多文件副本,而且文件在下载不能按需读取,比如 40G 的视频如果直接在 SMB 打开就可以边加载边播放,这种方式如果想本地播放的话好像不太行,得 40G 全部下载后才能打开

    来征求大家有什么好的 idea ,感激不尽

    20 条回复    2025-08-19 01:43:47 +08:00
    fangpeishi
        1
    fangpeishi  
       1 天前
    试过 cryptomator 吗
    xxbing
        2
    xxbing  
       1 天前
    VeraCrypt 是不是可以? 我没实验过,创建一个巨大的文件,通过 VeraCrypt 可以打开、关闭. 这个文件应该可以转移存放到远程 smb.
    xxbing
        3
    xxbing  
       1 天前
    问了 ai, ai 回答: VeraCrypt 本质上是把一个加密空间映射成虚拟磁盘,加密容器文件(.hc 之类的文件)其实就是普通文件,所以它完全可以存放在远程 SMB/CIFS 网络共享里。
    includewins0ck2h
        4
    includewins0ck2h  
       1 天前
    如果是 windows 系统,bitlocker 一个 vhdx 磁盘在 smb 可以吗
    alfawei
        5
    alfawei  
       1 天前
    用 nas ,每个一个账号,不同权限
    Opportunity
        6
    Opportunity  
       1 天前
    vhdx 可以开 bitlocker 的
    kokerkov
        7
    kokerkov  
       1 天前
    问题来了,那为什么 samba 不设置权限管理呢?
    ooxxcc
        8
    ooxxcc  
       1 天前
    linux 的话用 encfs ,但你不怕别人删改你的文件吗

    隐私重要内容不要放到这种地方
    yyy134341
        9
    yyy134341  
    OP
       1 天前
    @alfawei
    @kokerkov
    admin 设置的不是我设置的 我也控制不了 admin 怎么想
    yyy134341
        10
    yyy134341  
    OP
       1 天前
    @ooxxcc 删改倒是不怕 NAS 会有 snapshot
    yyy134341
        11
    yyy134341  
    OP
       1 天前
    @includewins0ck2h
    @Opportunity
    是指在虚拟机的那个系统里面开 bitlocker ?
    Opportunity
        12
    Opportunity  
       1 天前

    不需要虚拟机啊,直接用物理机不好吗?当然你要有隔离需求另说。
    yyy134341
        13
    yyy134341  
    OP
       1 天前
    @xxbing #2
    @fangpeishi
    这种其实方案挺理想的 但刚刚试了下性能 大文件 copy 写入是 50MB/s ,但小文件写入好像就只有 10MB/s ,正常 SMB 不加密拷贝的话能满速 115MB/s

    CPU 是 AMD 9900x 拷贝的时候 cpu 也没占用多少 不知道是硬件问题还是软件优化还是设置问题
    Satelli
        14
    Satelli  
       1 天前
    个人认为 Cryptomator 是最优解。它的加密产物是文件,而不是一个巨大的加密磁盘镜像。
    yyy134341
        15
    yyy134341  
    OP
       1 天前
    @Opportunity #12 实现了一下 确实可以 性能损耗几乎无感 挺好的 感谢指导
    includewins0ck2h
        16
    includewins0ck2h  
       1 天前
    @yyy134341 nas 里面新建一个 vhdx 磁盘,本地加载,然后 bitlocker 加密,远程不需要虚拟机。
    HTravel
        17
    HTravel  
       1 天前
    创建域账号,每个用户一个域账号,通过域账号登陆 Windows 。然后再创建域群组,域群组里面添加域账号。域群组支持嵌套。

    大公司是这样玩的,因为有 IT 部门的域管理员。你们如果比较正规的话,可以试试,十几万人的权限控制都没问题。
    tsvico
        18
    tsvico  
       1 天前
    openalist + alist-encrypt
    然后使用 webdav 挂载到本地
    WizardLeo
        19
    WizardLeo  
       1 天前
    很好奇为什么单文件加解密会比整个虚拟磁盘加解密性能要差,甚至是 10 倍性能差距?
    w568w
        20
    w568w  
       23 小时 54 分钟前   ❤️ 1
    1. 关键词:Stacked filesystem encryption ,即「在现有文件系统中储存加密文件结构,且可以通过挂载等方式无感读写的用户级别文件系统」。

    除了楼上提到的 EncFS 和 cryptomator ,gocryptfs 和 CryFS 也可以看看。后三者都是支持 Windows 的。个人推荐 Cryptomator (部分功能需要付费)、gocryptfs (完全开源免费,但界面不太友好)。

    不过 Cryptomator 确实速度会慢一点,原因未知,可能是加解密算法设计问题?

    2. 至于 VeraCrypt 、VHDX 这种块设备级别的加密,就要看具体的软件实现了,整栈从下到上都需要支持 sequence read/write in the middle 。SMB 本身应该是支持的,VHDX 应该也是支持的。VeraCrypt 速度慢可能是将 sequence read/write 转化为 random read/write 了。

    3. 只是要防止其他人看到的话,楼上介绍的权限控制方法也是可取的,0 性能损失。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.