服务端使用 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 盘了。
1
xfspace 2015-09-11 23:28:56 +08:00 via Android
明天撸下看看好不好使
|
2
songco 2015-09-12 01:36:31 +08:00 via iPhone
一直在用 cifs 。系统自带。
|
3
choury 2015-09-12 01:54:34 +08:00
ls 说的对啊, cifs 挺好用的啊,为什么要再写个呢?有什么优势吗?
|
4
gleport OP 哦,我之前不了解 cifs ,没有在 Linux 上使用 mount.cifs 挂载过 Windows 上的文件夹。现在试了下 cifs ,觉得挺好用。我写的这个没有什么优势吧,就是利用了 fuse ,挂载时不要 root 权限,认证不与服务端账户关联,协议简单粗暴,实现起来简单。
@choury |
5
gleport OP 之前的本意是写一个玩具级别云文件系统 TCFS (Toy cloud file system ),遇到不少困难,干脆放弃,以此简单的网络文件系统终结。
|
6
line 2015-09-12 20:58:09 +08:00 via Android
有没有反向的,可以把客户端目录共享给 server
|