V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
gleport
V2EX  ›  分享创造

简单的网络文件系统, 支持 Linux 挂载 Windows 的目录

  •  
  •   gleport · 2015-09-11 23:01:44 +08:00 · 3094 次点击
    这是一个创建于 3359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务端使用 Go 编写,我已在 Linux 和 Windows 上测试运行过了,不过我没有 OS X 运行环境,欢迎有 OS X 环境的同学尝试。

    因客户端依赖 fuse 库的缘故,目前仅支持 Linux 。如需移植到 OS X 的话,FUSE for OS X 应该可以解决这个依赖。

    这个简单的文件系统类似于 sshfs ,不过 sshfs 需要服务端开放 ssh 服务,这在 Windows 上比较麻烦。而 NFS 配置又过于繁琐。这个网络文件系统使用很简单:

    服务端开启文件共享服务:

    # 查看帮助
    tcfsd -h
    # 把整个 e 盘共享出去, 使用 rc4 加密传输, 密码为 foobar, 监听端口为 4567
    tcfsd -crypto "rc4" -key "foobar" -port ":4567" -dir "e:"
    

    客户端挂载服务端共享的目录:

    # 查看帮助
    ./tcfs -h
     mkdir mountpoint # 挂载点必须是空目录, 创建一个空目录
     ./tcfs -s "服务端 IP 地址" -p 4567 -m rc4 -k foobar mountpoint
    

    然后客户端就可以像访问本地文件系统一样访问服务端共享的 E 盘了。

    代码地址: https://github.com/hmgle/tcfs

    6 条回复    2015-09-12 20:58:09 +08:00
    xfspace
        1
    xfspace  
       2015-09-11 23:28:56 +08:00 via Android
    明天撸下看看好不好使
    songco
        2
    songco  
       2015-09-12 01:36:31 +08:00 via iPhone
    一直在用 cifs 。系统自带。
    choury
        3
    choury  
       2015-09-12 01:54:34 +08:00
    ls 说的对啊, cifs 挺好用的啊,为什么要再写个呢?有什么优势吗?
    gleport
        4
    gleport  
    OP
       2015-09-12 09:18:17 +08:00
    哦,我之前不了解 cifs ,没有在 Linux 上使用 mount.cifs 挂载过 Windows 上的文件夹。现在试了下 cifs ,觉得挺好用。我写的这个没有什么优势吧,就是利用了 fuse ,挂载时不要 root 权限,认证不与服务端账户关联,协议简单粗暴,实现起来简单。
    @choury
    gleport
        5
    gleport  
    OP
       2015-09-12 09:25:47 +08:00
    之前的本意是写一个玩具级别云文件系统 TCFS (Toy cloud file system ),遇到不少困难,干脆放弃,以此简单的网络文件系统终结。
    line
        6
    line  
       2015-09-12 20:58:09 +08:00 via Android
    有没有反向的,可以把客户端目录共享给 server
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.