藍圖風格插畫:手機把照片傳進大資料夾,左下的筆電也連到這個資料夾

File Browser+Samba:手機和電腦都能用的私人雲端硬碟

在家裡的主機架 File Browser 和 Samba:手機用網頁上傳下載、Windows 電腦接成網路磁碟機。包含帳號和安全設定,以及家用伺服器為什麼不等於備份。

家裡的舊電腦除了放影片(見〈Jellyfin 教學:用舊顯卡打造自己的 Netflix〉),我也想拿它來當私人雲端硬碟,手機和電腦都能存取。我用了兩個免費工具互補:

File BrowserSamba
是什麼網頁版檔案總管Windows 網路磁碟機
適合手機上傳下載、人在外面家裡電腦大量搬檔案、丟影片
怎麼用瀏覽器開網址檔案總管輸入 \\主機IP\media

兩個都只開給家裡的區網和 Tailscale(見〈Tailscale 教學:出門也能安全連回家,和 Cloudflare 怎麼分工〉)。

私人雲端硬碟不等於備份:哪些檔案可以放這裡

我的主機只有一顆 1TB 傳統硬碟,分成三個資料夾:

資料夾放什麼備份
n8nn8n 每日備份加密同步到 Google Drive
media影片不備份,壞了重放就好
files一般檔案沒有備份

這顆硬碟已經運轉約 21,600 小時,健康檢查正常,但年紀不小。判斷一個檔案重不重要,只要問一句:這顆硬碟明天壞掉,這個檔案還找得回來嗎?

  • 重要:只存在這裡的照片、合約、報稅資料、證件掃描、自己寫的程式碼和文章草稿
  • 不重要:可以重新下載的影片和安裝檔、暫時中轉的檔案、雲端本來就有的副本

最容易踩的陷阱是:手機照片上傳到伺服器後,把手機裡的原檔刪掉,伺服器那份就變成「唯一的一份」了。

家用伺服器是「方便取用的地方」,不是「保管的地方」。

File Browser:網頁版檔案總管

一樣用 Docker 架在 /opt/filebrowser,重點設定:

  • 映像檔 filebrowser/filebrowser:latest,用一般帳號的身分執行(user: "1000:1000")
  • network_mode: host,讓防火牆管得到
  • port 改成 8085(在 config/settings.json 設定,映像檔預設是 80)
  • 只掛 media 和 files 兩個資料夾,n8n 備份不掛進去

帳號怎麼建

第一次啟動時,預設的 admin 密碼是隨機產生的,要到容器紀錄裡找(sudo docker compose logs)。

登入頁也找不到「註冊」,因為預設關閉自助註冊,這是好事。我的做法:

  1. 用 admin 登入
  2. 到「設定 → 使用者管理」建立自己的帳號,給管理員權限
  3. 用新帳號登入,確認沒問題
  4. 刪掉預設的 admin

「執行指令」功能任何帳號都不要開,File Browser 過去的漏洞多半出在這裡。

介面語言可以在「設定 → 個人資料」改成繁體中文。要給家人用,就另外建帳號,不勾管理員、不勾執行指令,範圍可以限制在 media。

手機經 Tailscale 打開 File Browser,看得到主機上的 files 和 media 兩個資料夾

忘記密碼時

cd /opt/filebrowser
sudo docker compose stop
sudo docker run --rm -u 1000:1000 -v /opt/filebrowser/database:/database \
  filebrowser/filebrowser users update 你的帳號 --password '新密碼' -d /database/filebrowser.db
sudo docker compose start

Samba:Windows 網路磁碟機

Samba 直接裝在 Ubuntu 上:

sudo apt install samba

設定檔是 /etc/samba/smb.conf。在 [global] 加上這幾行,只用新版協定、關掉用不到的功能:

server min protocol = SMB3
disable netbios = yes
server smb transports = 445
load printers = no

server smb transports 是新版 Samba 的參數名稱。Claude 一開始給的是舊名 smb ports,設了沒效,把結果貼回去後才改過來。

另外把負責網路芳鄰搜尋的服務關掉:

sudo systemctl disable --now nmbd

接著在設定檔最後加兩個分享資料夾:

[media]
   path = /mnt/backup/media
   valid users = 你的使用者名稱
   force user = 你的使用者名稱
   read only = no

[files]
   path = /mnt/backup/files
   valid users = 你的使用者名稱
   force user = 你的使用者名稱
   read only = no

Samba 的密碼和 Linux 登入密碼是分開的,另外設定,再檢查設定檔、重啟:

sudo smbpasswd -a 你的使用者名稱
sudo testparm -s
sudo systemctl restart smbd
sudo ufw allow from 192.168.1.0/24 to any port 445 proto tcp

Windows 怎麼連

檔案總管的網址列輸入 \\192.168.1.250\media,輸入帳號和 Samba 密碼。

網路芳鄰自動搜尋找不到主機是正常的(雙層 NAT+關了 NetBIOS),手動輸入就好。密碼記錯的話,到「認證管理員 → Windows 認證」刪掉那筆再重連。

我只把 media 常駐成網路磁碟機,files 需要時再開。電腦中勒索病毒時,掛著的網路磁碟機會一起被加密。

反過來也一樣:從伺服器拿到的執行檔(.exe、.bat、.lnk)不要直接在電腦上點開。

這是舊電腦家用伺服器系列的第 8 篇。

上一篇:〈Jellyfin 教學:用舊顯卡打造自己的 Netflix〉;

下一篇〈我不是資安本科,請 AI 幫家用伺服器做資安健檢,真的抓到漏洞〉已經上架,寫的是請 AI 幫家用伺服器做資安健檢,結果真的抓到漏洞。