十年前,业界流行用samba/ftp/nfs互访windows/linux
近几年,又有些新的解决方案越来越简单成熟,希望给大家多些参考,提高效率。
试想一个使用场景:2台电脑,一个win一个linux, windows上visual studio, mingw, eclipse.../linux上openoffice,eclipse..
如果可以通过网络2个环境可以像使用本地文件一样,打开和编译代码、文档,跨平台代码立马编译运行,DEBUG,岂不妙哉?
一般性的解决方案无外乎这样几种:
1. linux装samba,变成windows共享目录,需要装很多包,若以后需要挂多台LINUX,岂不是个个都要装SAMBA?况且我另外一台电脑是Gentoo,需要多很多包,意味着编译很多代码,可以达到目的但不符合我KISS风格
2. 用NFS互访。 Linux上NFS开服务,windows挂载成网络驱动器,或者windows开NFS服务,Linux直接mount。
但是windows上native的方式是安装file service组件(我的windows是2008 R2),做NFS服务器时windows是不支持UTF-8的,意味着linux下挂载的中文目录文件名无法正确显示,用haneWIN NFS Server可以解决这些,但是跟原有的file service组件不能同时存在,因为nfs需要rpc,而rpc在file service是在windows服务注册保护的,当然,windows下的老鸟可以手动干掉bind 111端口的rpc服务,不过这样就把系统的nfs
server搞残了。从Linux挂到windows上没问题,但反过来,windows上NFS挂Linux,总遇到权限问题,挂载但无法访问,试过了注册表修改nfs client anonymousUid等等,no luck
3. 用sftp挂载驱动器到windows上,目前这样最简单,系统依赖最小。 对Linux来讲,只需要SSH服务开启,无需任何其他服务。
在开始折腾之前,先定需求:
1. 速度快,几千个文件/目录列表,不要让人等半天
2. 可以save每个driver的profile,支持mount多个drivers
3. 像模像样的块文件系统,不要什么在EXPLORER EXTENSION出来,又或者MOUNT成NETWORK MAPPING这样的映射驱动器,因为我要用TRUECRYPT之类的驱动级工具,其他高层次的“驱动器”,在TRUECRYPT加载时是不可见的!
试用了无数,靠谱的如下:
DirectNet Drive : 免费,驱动级,符合要求,sftp/ftp/webdav都支持,而且可以用http/socks代理,版本1.2.5(2010.11)后就不维护了,但问题是,我只需要用sftp,而且它的BUG是无论如何也不能指定sftp的目录,统统是从/下mount
http://www.directnet-drive.net/
Sftp Net Drive : 免费,驱动级,功能非常强大,人家是专门做文件系统的,Net Drive只是个副产品,完全满足需求,还有其他高级选项(加载成各种驱动器类型),但是免费版只能加载一个驱动器,收费版给钱才给提供下载,搜不到收费版,更别说破解版了。
https://www.eldos.com/sftp-net-drive/
ExpanDrive,收费,应用级,找了个2.4.0破解版,功能类似Sftp Net Drive般丰富,可惜速度慢(因为我文件目录比较多),在TRUECRYPT中不可见,不过一般应用是没问题,特别是有需要把s3/ftp等等映射成本地驱动器的,推荐使用。
http://www.expandrive.com
Dokan : 开源,fuse在windows上的一个实现,驱动级。 有很大*发挥余地。 但是其他文件系统模块需要自己写,比如需要sftp需要自己实现,工作量大。 外围有人写了个DokanSSHFS,BUG比较多,删除目录时,竟然不能删除子录!
另外的实现win-sshfs,2012年5月提交一次代码后就没更新了,删除文件目录,而后刷新又出现了!
http://code.google.com/p/win-sshfs/
http://github.com/apaka/win-sshfs
由于暂时找不到替代品,只好把代码check下来,修修补补,现在可以用了。
ssh用的是.net的实现 虽然不是c而是csharp的,但性能应该不会太差(比Expandrive用的python实现ssh好多了)。
老的win-sshfs用的SSH.NET Library是2010年的版本,让我给换成最新代码开发库的rev 34720版本了
http://sshnet.codeplex.com/SourceControl/list/changesets
修复的BUG:
修复了缺少盘符“Z”
修复了git不能在映射盘上使用
修复了在目录下右键不能创建其他文件
已知的问题:
OFFICE 2007打开.doc文件报权限不足不能打开(docx/pptx/xlsx等其他office文件都没问题),猜想可能与获取文件权限时返回null有关,欢迎提交patch
使用方法:
0. Linux sftp服务器需要打开密码验证,确保/etc/ssh/sshd_config中“PasswordAuthentication”为“yes”,重启sshd
1. 打开sshfs.exe,点add,新建一个profile,填写IP,端口,用户名,密码,目录,盘符,点保存
2. 点Mount按钮,如果顺利的话系统就会增加一个驱动器,并且Mount按钮会变成Unmount
3. Enjoy!
项目源代码:http://github.com/truthtracer/sshfs4win.git
编译好的可执行程序:http://download.csdn.net/detail/truthtracer/7000367
Report Bus via : TruthTracer@gmail.com
相关文章
- 12-07Centos7下在windows和linux环境下安装达梦数据库
- 12-07浅谈linux中的根文件系统(rootfs的原理和介绍)【转】
- 12-07windows 和 linux 安装 scrapyd 出现Not a directory site-packages/scrapyd-1.0.1-py2.7.egg/scrapyd/txapp.py
- 12-07Windows和Linux环境,网络异常模拟测试方法【转载自光荣之路微信公众号】
- 12-07linux和windows多线程的异同
- 12-07linux和Windows C++ 文件夹创建、删除
- 12-07linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包
- 12-07JavaCV开发详解之19:如何开启GPU硬件加速,使用JavaCV进行音视频的硬解码和硬编码(支持intel、amd和nvidia显卡)支持windows、linux和mac平台
- 12-07Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中
- 12-07windows下和linux下运行jar