最近在项目中安装和调试服务器,杯具的是,服务器是内网地址,而且不可以直接SSH、SFTP,只能通过中间一台linux作为跳板,然后在SSH命令行里去操作目标机器。

如果只是命令行操作也就无所谓了,但是还要经常传输文件,在跳板机上SSH,SFTP,SCP命令切换过来切换过去,累死了,有没有更好的办法?

依稀记得N年前折腾过一个通过http协议操作服务器文件的玩意,那就是WebDAV。

科普开始。WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。更多说明,请自行百度谷歌。比如,可以通过打开 http://127.0.0.1/uploads/ 来操作服务器上指定目录的文件,非常方便,解决了某些单位网络端口和防火墙的限制。

WebDAV配置

WebDAV服务端,目前我只折腾过Apache httpd,其他的我还不了解。从apache httpd官网下载好httpd 2.x版本,下载安装,完毕之后,打开httpd.conf文件,将最后几行的一个注释去掉。

  1. # Distributed authoring and versioning (WebDAV)
  2. Include conf/extra/httpd-dav.conf

然后编辑conf/extra/httpd-dav.conf文件

  1. #
  2. # Distributed authoring and versioning (WebDAV)
  3. # modified by longware
  4. # Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
  5. # mod_auth_digest, mod_authn_file
  6. #
  7. #LoadModule dav_module modules/mod_dav.so
  8. #LoadModule dav_fs_module modules/mod_dav_fs.so
  9. #LoadModule alias_module modules/mod_alias.so
  10. #LoadModule auth_digest_module modules/mod_auth_digest.so
  11. #LoadModule authn_file_module modules/mod_authn_file.so
  12.  
  13. # The following example gives DAV write access to a directory called
  14. # "uploads" under the ServerRoot directory.
  15. #
  16. # The User/Group specified in httpd.conf needs to have write permissions
  17. # on the directory where the DavLockDB is placed and on any directory where
  18. # "Dav On" is specified.
  19.  
  20. DavLockDB "D:/WebServer/apache/var/DavLock"
  21.  
  22. Alias /uploads "D:/WebServer/apache/uploads"
  23.  
  24. <Directory "D:/WebServer/apache/uploads">
  25. Dav On
  26.  
  27. Order Allow,Deny
  28. Allow from all
  29.  
  30. AuthType Digest
  31. AuthName DAV-upload
  32.  
  33. # You can use the htdigest program to create the password database:
  34. # htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin
  35. AuthUserFile "D:/WebServer/apache/user.passwd"
  36. AuthDigestProvider file
  37.  
  38. # Allow universal read-access, but writes are restricted
  39. # to the admin user.
  40. <LimitExcept GET OPTIONS>
  41. require user admin
  42. </LimitExcept>
  43. </Directory>
  44.  
  45. #
  46. # The following directives disable redirects on non-GET requests for
  47. # a directory that does not include the trailing slash. This fixes a
  48. # problem with several clients that do not appropriately handle
  49. # redirects for folders with DAV methods.
  50. #
  51. BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
  52. BrowserMatch "MS FrontPage" redirect-carefully
  53. BrowserMatch "^WebDrive" redirect-carefully
  54. BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
  55. BrowserMatch "^gnome-vfs/1.0" redirect-carefully
  56. BrowserMatch "^XML Spy" redirect-carefully
  57. BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

上面的代码中,LoadModule部分,请根据自己情况开启,如果主httpd.conf文件中都开启了,此处就不用开启,反之,在这里要加上LoadModule。

然后在apache的bin目录里,在cmd模式里,执行命令

  1. htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin

会提示输入密码,此处就会生成一个用户名和密码对应的库文件。

然后重启apache,在浏览器地址栏输入http://127.0.0.1/uploads/,如果看到403禁止访问,应该就是配置成功了。

此配置文件适用于Linux系统,本人已配置成功,之前折腾了很久,走了弯路,汗!如果想成功在客户端操作文件,必须要将apache的默认运行用户daemon和目标文件夹设置为同一用户,或者同一组,或者自己更改apache的默认用户。

WebDAV客户端

1、最简便的客户端工具,就是windows的资源管理器(建议win7以上操作系统),打开我的电脑,右键“添加一个网络位置”,然后根据向导,输入地址http://127.0.0.1/uploads/,需要验证的时候,输入口令,就在我的电脑里创建了一个网络文件夹,双击打开,就可以自由操作文件了。

使用windows的资源管理器的优点是方便,缺点是,我感觉操作和响应有点慢,于是乎,我在寻找其他工具。

2、WINSCP 5.7.3

要5.7以上版本,之前的版本不支持。winscp界面友好,操作很方便,推荐。

3、Beyond Compare 4

如果你经常比较文件和文件夹,推荐Beyond Compare,我从2.0开始用的,非常好。进行比较文件夹时,可以选择其他文件系统,选择webdav即可。Beyond Compare 4才支持webdav,以前的版本不支持。

4、其他

BitKinex、Cyberduck、WebDrive、DAVExplorer、FarNetBox、AnyClient等等,我试用了下,感觉都怎么的不那么好用,要不UI不够友好,要不功能不够强大。

更多工具参考这里,有些free有些收费。

http://en.wikipedia.org/wiki/Comparison_of_WebDAV_software

http://webdav.org/projects/

WebDAV 配置及相关工具的更多相关文章

  1. Apache & WebDav 配置(二)

    (二)WebDav配置 & put脚本编辑! WebDav 配置 ---------------- # 1. 修改了两个配置文件 # 2. 创建web访问用户的用户名和口令 # 3. 创建了两 ...

  2. Apache & WebDav 配置(一)

    (一)简单Apache服务器的搭建!用于文件de上传.下载.修改.删除! ---------- - Apache 1. 使用最广的 Web 服务器.支持各种脚本(PHP)的执行 2. Mac自带,只需 ...

  3. 【Springboot】FastJson与Jackson全局序列化方式的配置和相关工具类

    springboot 版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId ...

  4. iOS - Mac Apache WebDav 服务器配置

    前言 Apache 服务器: Web 服务器,可以支持各种脚本(PHP)的执行,目前世界上使用最为广泛的一种 Web 服务器 WebDav 服务器: 基于 http 协议的 "文件" ...

  5. apache性能配置优化

    最近在进行apache性能优化设置.在修改apache配置文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯.以下的apache配置调优均是在red had的环境下进行的. httpd相关 ...

  6. WebDAV被启用(转)

    WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET.POST. ...

  7. Confluence 6 WebDAV 禁用严格路径检查

    如果你在你的 WebDAV 客户端发现了一些不正常的现象,例如文件夹在 Confluence 中是存在的,但是在你客户端下载的文件中就不存在了.你可以禁用  WebDAV 插件中的严格路径检查选项,这 ...

  8. 限制 Confluence 6 WebDAV 客户端的写入权限

    在早期的 WebDAV 插件中分离了 WebDAV 客户端的写入权限(不能使用,创建/修改,编辑和删除操作)是分开配置的.但是在新版版本的插件中,我们将这些权限合并到了一起. WebDAV 客户端现在 ...

  9. Confluence 6 的 WebDAV 客户端整合介绍

    WebDAV 允许用户通过一个 WebDAV 客户端来访问 Confluence.例如,微软 Windows 的 'My Network Places'.通过为访问的用户提供权限,这个用户可以在 Co ...

随机推荐

  1. 2. Abstract Factory(抽象工厂)

    意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 适用性: 一个系统要独立于它的产品的创建.组合和表示时. 一个系统要由多个产品系列中的一个来配置时. 当你要强调一系列相关 ...

  2. PBX 评测二

    //由于诸事繁多,结果评测一拖再拖. 博客园的优化还行啊,PBX220搜索, 第一页,第四个就是上一篇的评测文章. 配置没有什么说的(按照说明/还有这篇无线迷你IPPBX-PBX220). 以下是在公 ...

  3. 理解Java Integer的缓存策略

    转载自http://www.importnew.com/18884.html 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性. ...

  4. react 15来了

    有段时间没做react的项目了,前两天才发现react搞了一个不太小的动作,不是遵循原来的小版本号迭代,从0.14.x继续更新,而是直接跳到了15.0.X.虽然业界一直有这个观点,0.x的版本视为非稳 ...

  5. java 数据导入到exc ,并下载

    package com.lizi.admin.controller.platform.excel; import java.util.List;import java.util.Map; import ...

  6. Redis 入门练习

    Redis提供了一个命令行入门练习的web:http://try.redis.io/ ///////////////////////////////////////////////////////// ...

  7. zmq中zmq_poll()函数介绍

    功能: 查看指定的多个socket上哪些socket发生了指定的事件, 事件有: ZMQ_POLLIN: 有消息到来 ZMQ_POLLOUT: 当前无阻塞可以发送消息 ZMQ_POLLERR: 只对标 ...

  8. Chrome: Resource interpreted as Font but transferred with MIME type font/x-woff

    最近,项目中加入了Bootstrap进行界面优化,但是,项目加载运行之后,控制台总是提示以下错误信息: GET http://localhost:8080/.../fonts/fontawesome- ...

  9. Android 把电话保存到现有联系人 已有联系人

    搜索了很长时间,想找个把电话保存到现有联系人的代码,就是打开选中的联系人编辑界面,然后自动添加电话,再手动保存,就跟手机上的一样,功夫不负有心人,终于给搜到了,很不容易啊,现分享如下, // 保存至现 ...

  10. selenium 富文本框处理

    selenium 富文本框处理, 网上有用API的解决方法1:参见:http://blog.csdn.net/xc5683/article/details/8963621 群里1位群友的解决方法2:参 ...