要在區域網路(局域網)分享資料夾或檔案,很多人會想到架設SMB或Samba服務吧,透過網路磁碟機在Windows與Linux之間共用資料夾非常方便。但若是Linux用戶,你有更好的選擇,那就是SSHFS!
「SSFHS」是基於SFTP協定和FUSE檔案系統所研發的技術,可透過網路分享資料夾,讓使用者將遠端電腦的資料夾掛載到本機使用。
圖例,透過Windows檔案總管掛載SSHFS,檢視遠端Linux電腦的檔案。
圖例,iOS透過Documents APP,連線到SFTP與Linux電腦分享檔案。
SSHFS有以下優點:
- 自由軟體,不論是Linux、Windows、macOS都可以架設SSHFS服務。
- 可把遠端資料夾掛載,當作本機資料夾使用,編輯檔案後直接存檔到遠端伺服器。SSHFS透過區域網路傳輸的話速度很快,能夠檢視遠端電腦的照片資料夾,還能用VLC直接播放影片。
- SSHFS能從Linux、Windows、macOS電腦存取,就連手機也可以!即使作業系統不支援掛載FUSE,也能改用支援SFTP的客戶端來存取檔案。
- 設定相對SMB/Samba簡單許多,只要電腦安裝OpenSSH伺服器就能連線掛載SSHFS,不用另外開通訊埠,不用額外新增使用者,不需要複雜的權限與設定檔。
- 雖然比NFS慢,但是預設SSHFS比NFS安全,傳輸全程走SSH加密,防止被攔截監聽。
- SSHFS支援搭配SSH Tunnel使用,藉由跳板機存取防火牆伺服器後面的檔案。
如果分享的資料夾只是要給自己用的話,那麼SSHFS可說是非常方便的共享資料夾方式!
下面讓我們看看如何設定SSHFS。
這裡我們約定:
- 伺服端:要分享檔案的電腦
- 客戶端:存取電腦檔案的裝置
1. 伺服端設定SSH服務#
伺服端通常是用Linux,不過其實支援OpenSSH Server的系統都可以當作伺服端。
Ubuntu安裝OpenSSH伺服器,並設定開機自動啟動:
sudo apt install openssh-server
sudo systemctl enable --now ssh
Windows透過 PowerShell啟動OpenSSH伺服器
macOS透過 遠端取用啟用OpenSSH伺服器。
2. 查看伺服端IP#
讓多台電腦位於同一個網路下,取得區域網路IP後,彼此之間才可以傳輸檔案。
例如我伺服端電腦的區域IP是192.168.1.104
,這是怎麼知道的呢?假設所有電腦都用乙太網路上網:
Ubuntu使用ip addr
指令確認IPV4位址。
Windows 11開啟終端機,輸入ipconfig
指令,確認IPV4位址。
macOS開啟終端機,輸入ipconfig getifaddr
指令,確認IPV4位址。
3. 決定使用者與掛載的伺服端路徑#
SSHFS連線的時候會要你輸入電腦的使用者帳號與密碼,帳號的話通常使用你登入伺服端電腦的帳號就可以了。
至於密碼部份,Linux和macOS就是填寫你登入系統的帳號的密碼,而Windows 11的話得填寫Microsoft帳號的密碼(除非你使用離線帳號,那就填寫PIN碼)。
接著決定要存取的伺服端路徑。
作業系統有許多資料夾,如果SSHFS連線時不填路徑,則預設會進入使用者家目錄,像Linux就是/home/使用者名稱
。
若要進入特定資料夾需要指定絕對路徑,例如我Linux把檔案放在/home/user/Documents/
,那麼連線時就得填寫這個路徑。
4. 設定客戶端掛載SSHFS#
Linux#
純文字指令:Ubuntu參考
Github的說明安裝sshfs
套件:
sudo apt install sshfs
並使用以下指令掛載:
sshfs 伺服端使用者名稱@伺服端IP:/要掛載的伺服端目錄/ /掛載點/
# 範例,允許所有使用者存取掛載的目錄,並將伺服端的/home/user/Documents/掛載到客戶端的/mnt
sshfs -o allow_other [email protected]:/home/user/Documents/ /mnt/
圖形介面:
如果你使用GNOME桌面,開啟GNOME檔案管理器,點選其他位置 → 連接到伺服器,輸入sftp://伺服端的IP
,再輸入帳號密碼連線。GNOME背後會透過GVfs掛載SSHFS。
如果你使用KDE Plasma桌面,使用SSH指令登入伺服端一次。接著再開啟Dolphin檔案管理器,點選網路,新增網路資料夾,選SFTP,輸入IP與帳號密碼連線。KDE背後會透過KIO掛載SSHFS。
Windows#
然後對檔案總管的「網路」,按右鍵,連線到網路磁碟機
路徑輸入
\\sshfs.r\伺服端IP\伺服端路徑\
,按下Enter,輸入伺服端的帳號密碼即可連線。請注意Windows的路徑是\
反斜線。隨後伺服端資料夾就會出現在Windows檔案總管的「本機磁碟」頁面。
macOS#
安裝 SSHFS GUI Wrapper,輸入伺服端的IP與帳號密碼連線。
Android#
Android沒有Root權限的話是不能掛載SSHFS的,這時請改用支援SFTP的客戶端,例如開源的 FTPClient by qwerty287
iOS#
iOS不能掛載SSHFS,所以得使用SFTP。
iOS內建的檔案APP目前尚未支援SFTP,得用第三方APP。例如專有軟體 Documents by Readdle支援SFTP登入。
5. 如何從外網掛載SSHFS#
安裝 內網穿透軟體,即可跨越區網,從外部網路掛載SSHFS。
此時SSHFS的存取速度會大大受到你網速的影響。