在Windows下掛載遠端Linux網路磁碟機
動機
不知道大家有沒有這種經驗,有些程式(例如相當燒CPU或GPU的LSTM...)需要在Linux上跑,可是自己的慣用OS是Windows,常常在傳檔的時候很不方便,需要很多手續才能把檔案傳到遠端機器的Linux上。筆者本機OS的環境是Win10家用版,遠端OS的環境是Azure上使用Ubuntu 16.04的虛擬機。筆者的思路是如此: 在遠端Linux上架設sftp server,在本機Windows上使用SFTPNetDrive建立網路磁碟機連到遠端的sftp server,這樣用起來就跟在本機上存取檔案一樣簡單。
先看效果
筆者錄製了一段設定完的效果
如上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 | 遠端機器的密碼 |
其他不需要特別設定,最後儲存並且連接成功後會發現您的電腦多一個磁碟,裡面即是遠端機器的所有檔案