最近在項目中安裝和調試服務器,杯具的是,服務器是內網地址,並且不能夠直接SSH、SFTP,只能經過中間一臺linux做爲跳板,而後在SSH命令行裏去操做目標機器。linux
若是隻是命令行操做也就無所謂了,可是還要常常傳輸文件,在跳板機上SSH,SFTP,SCP命令切換過來切換過去,累死了,有沒有更好的辦法?web
依稀記得N年前折騰過一個經過http協議操做服務器文件的玩意,那就是WebDAV。apache
科普開始。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/ 來操做服務器上指定目錄的文件,很是方便,解決了某些單位網絡端口和防火牆的限制。windows
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文件網絡
# # Distributed authoring and versioning (WebDAV) # modified by longware # Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias # mod_auth_digest, mod_authn_file # #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule alias_module modules/mod_alias.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_file_module modules/mod_authn_file.so # The following example gives DAV write access to a directory called # "uploads" under the ServerRoot directory. # # The User/Group specified in httpd.conf needs to have write permissions # on the directory where the DavLockDB is placed and on any directory where # "Dav On" is specified. DavLockDB "D:/WebServer/apache/var/DavLock" Alias /uploads "D:/WebServer/apache/uploads" <Directory "D:/WebServer/apache/uploads"> Dav On Order Allow,Deny Allow from all AuthType Digest AuthName DAV-upload # You can use the htdigest program to create the password database: # htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin AuthUserFile "D:/WebServer/apache/user.passwd" AuthDigestProvider file # Allow universal read-access, but writes are restricted # to the admin user. <LimitExcept GET OPTIONS> require user admin </LimitExcept> </Directory> # # The following directives disable redirects on non-GET requests for # a directory that does not include the trailing slash. This fixes a # problem with several clients that do not appropriately handle # redirects for folders with DAV methods. # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
上面的代碼中,LoadModule部分,請根據本身狀況開啓,若是主httpd.conf文件中都開啓了,此處就不用開啓,反之,在這裏要加上LoadModule。app
而後在apache的bin目錄裏,在cmd模式裏,執行命令 ide
htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin
會提示輸入密碼,此處就會生成一個用戶名和密碼對應的庫文件。工具
而後重啓apache,在瀏覽器地址欄輸入http://127.0.0.1/uploads/,若是看到403禁止訪問,應該就是配置成功了。
此配置文件適用於Linux系統,本人已配置成功,以前折騰了好久,走了彎路,汗!若是想成功在客戶端操做文件,必需要將apache的默認運行用戶daemon和目標文件夾設置爲同一用戶,或者同一組,或者本身更改apache的默認用戶。
WebDAV客戶端
一、最簡便的客戶端工具,就是windows的資源管理器(建議win7以上操做系統),打開個人電腦,右鍵「添加一個網絡位置」,而後根據嚮導,輸入地址http://127.0.0.1/uploads/,須要驗證的時候,輸入口令,就在個人電腦裏建立了一個網絡文件夾,雙擊打開,就能夠自由操做文件了。
使用windows的資源管理器的優勢是方便,缺點是,我感受操做和響應有點慢,因而乎,我在尋找其餘工具。
要5.7以上版本,以前的版本不支持。winscp界面友好,操做很方便,推薦。
若是你常常比較文件和文件夾,推薦Beyond Compare,我從2.0開始用的,很是好。進行比較文件夾時,能夠選擇其餘文件系統,選擇webdav便可。Beyond Compare 4才支持webdav,之前的版本不支持。
四、其餘
BitKinex、Cyberduck、WebDrive、DAVExplorer、FarNetBox、AnyClient等等,我試用了下,感受都怎麼的不那麼好用,要不UI不夠友好,要不功能不夠強大。
更多工具參考這裏,有些free有些收費。