在Windows下掛載遠端Linux網路磁碟機

Author Avatar
高宇哲 8月 16, 2017

動機

不知道大家有沒有這種經驗,有些程式(例如相當燒CPU或GPU的LSTM...)需要在Linux上跑,可是自己的慣用OS是Windows,常常在傳檔的時候很不方便,需要很多手續才能把檔案傳到遠端機器的Linux上。筆者本機OS的環境是Win10家用版,遠端OS的環境是Azure上使用Ubuntu 16.04的虛擬機。筆者的思路是如此: 在遠端Linux上架設sftp server,在本機Windows上使用SFTPNetDrive建立網路磁碟機連到遠端的sftp server,這樣用起來就跟在本機上存取檔案一樣簡單。

先看效果

筆者錄製了一段設定完的效果

sftp架設

如上GIF動圖,筆者直接針對遠端機器進行了新增資料夾、重新命名等簡單的操作動作,而不用到終端機下命令,並且筆者在寫python時若想在Windows上測試則只需要開啟command windows下指令即可,若想在Linux上測試只需要在Putty上下指令即可,隨時可以在兩個系統間切換。但此法有一壞處即是在存取檔案時速度會較慢,因網路磁碟機並不是真正在本機的硬碟,但卻用檔案系統的方式存取,效能會較為低落。

警告: 筆者利用此法傳輸大量檔案時出現藍屏,請小心使用

開始架設SFTP Server

Step1 遠端機器Linux的Sftp server架設

若讀者是Azure上的機器或是已經做好ssh的相關設定,便可跳過此步驟,因SFTP是走ssh協定(port 22)進行傳輸的,若尚未設定ssh可以參考這篇文章進行設定

Step2 本機機器Windwos安裝SFTPNetDrive

在本機端連到SFTPNetDrive的網站進行下載,目前這個軟體針對個人使用(Personal Use)是免費的。

安裝好後開啟會出現一些需要填入的設定:

屬性資料
Profile此連線的名稱,可任意填入
Server遠端機器的IP address
Username遠端機器的帳號
Authentication認證方式,筆者使用的認證方式是Password
Password遠端機器的密碼

其他不需要特別設定,最後儲存並且連接成功後會發現您的電腦多一個磁碟,裡面即是遠端機器的所有檔案