Mac 內建的 Time Machine(台灣版 macOS 介面稱為「時光機」)通常是備份到外接硬碟,或在家裡、辦公室的區網內備份到 NAS。筆電一帶出門,就要等回到家才會備份。
只要 Mac 和 NAS 都加入同一個 tailnet,就可以讓 Time Machine 經由 Tailscale 用 SMB 備份到家裡的 NAS:在家時走區網,在外面時走網際網路,用的是同一個備份目的地,不需要開任何連接埠。這篇以 Synology NAS 為例,其他 SMB 伺服器的做法附在最後。
本文依 2026 年 10 月的 Tailscale 與 Synology 官方文件整理,以 DSM 7.2、macOS 15 以上、Tailscale v1.104 為準。
先想清楚:適合誰
- 適合:筆電常常不在家、又想讓 Time Machine 持續自動備份的人。第一次完整備份之後,每次只傳有變動的檔案,通常量不大。
- 要注意:在外面時,備份速度受限於你所在網路的上傳頻寬和家裡網路的下載頻寬;從 NAS 回復檔案時,則受限於家裡網路的上傳頻寬。手機熱點、計量網路上的大量備份會吃掉流量。
- 不能取代異地備份:NAS 和 Mac 是兩份資料,但 NAS 放在家裡,遇到火災、竊盜還是會一起不見。
NAS 端:Synology DSM
以下步驟依 Synology 知識中心的 Time Machine 教學 整理,選單名稱以 DSM 7.2 的中文介面為準。
1. 建立共用資料夾
- 用管理員帳號登入 DSM,前往 控制台 → 共用資料夾,按 新增。
- 輸入名稱,例如
TimeMachine。 - 不要啟用資源回收筒,也不要用加密共用資料夾。要加密備份的話,用 Mac 端 Time Machine 的加密選項。
2. 建立專用帳號並設定配額
- 前往 控制台 → 使用者 & 群組 → 使用者帳號,按 新增,建立一個只給 Time Machine 用的帳號,例如
timemachine,不要加入administrators群組。 - 在 指派共用資料夾權限 頁面,給它
TimeMachine共用資料夾的可讀寫權限,其他共用資料夾不給權限。 - 在 指派使用者空間配額 頁面,替
TimeMachine設定配額,避免備份把 NAS 塞滿。Synology 建議配額至少是 Mac 硬碟容量或備份資料量的兩到三倍。 - 在 指派應用程式權限 頁面,SMB 勾選允許。
也可以改在共用資料夾的 編輯 → 進階 啟用共用資料夾空間配額,見 如何限制 Time Machine 備份資料占用的容量。這兩種配額都需要 Btrfs 檔案系統。
3. 啟用 SMB
- 前往 控制台 → 檔案服務 → SMB,勾選 啟用 SMB 服務。
- 按 進階設定,確認:
- 最大 SMB 通訊協定:SMB3
- 勾選 啟用 Opportunistic Locking
- 勾選 啟用 SMB2 租用
- 勾選 啟用 SMB 耐久控制代碼
- 回到 檔案服務,在 進階設定 頁籤勾選 啟動 Bonjour 服務探索 與 啟用透過 SMB 進行 Bonjour Time Machine 廣播,按 設定 Time Machine 資料夾,選
TimeMachine。
第 3 步讓 NAS 在區網內自動出現在 Time Machine 的清單裡。經由 Tailscale 時 Bonjour 不會生效(見下一節),但這個設定也會把共用資料夾標記為 Time Machine 用途,建議打開。
4. 安裝 Tailscale
從 套件中心 安裝 Tailscale,依畫面指示登入你的 tailnet。DSM 7 上的 Tailscale 預設就接受從 tailnet 連進 NAS 的連線,SMB 不需要額外設定。
如果你曾經依官方文件執行 tailscale configure-host 讓 NAS 可以主動連出到 tailnet,又開了 DSM 的防火牆,要在防火牆規則放行來源 100.64.0.0/10,否則 Tailscale 的連線會被擋。這段的完整做法見 DSM 7 讓 NAS 上的其他服務也能連出去:TUN 與 configure-host。
在 Admin console 的 Machines 頁面記下 NAS 的 MagicDNS 名稱,例如 nas.tail1234.ts.net。
Mac 端
Mac 上要安裝 Tailscale 並登入同一個 tailnet,而且要讓它開機後自動連線,Time Machine 才能在背景備份。
為什麼要手動連線
在家裡的區網,NAS 會透過 Bonjour(mDNS)廣播自己,Time Machine 的清單會自動出現它。Bonjour 是區網內的多點廣播,Tailscale 不會轉送,所以在外面時 Mac 找不到 NAS,要用名稱手動指定。
重點是:在家時也用 Tailscale 的名稱加入,不要用區網裡 Bonjour 找到的那一個。這樣不論在哪裡,Time Machine 都連同一個位址;在家時,Tailscale 會發現兩台在同一個區網,直接走區網連線,速度接近一般的區網備份。
1. 先連上共用資料夾
在 Finder 選 前往 → 連接伺服器,輸入:
smb://nas.tail1234.ts.net/TimeMachine以 timemachine 帳號登入,勾選 在我的鑰匙圈中記住此密碼。Time Machine 之後會用鑰匙圈裡的密碼自動掛載。
建議用完整的 MagicDNS 名稱。也可以用 NAS 的 Tailscale IP(例如 smb://100.101.102.103/TimeMachine),IP 不受 DNS 設定影響,但比較難記。
2. 加入備份磁碟
- 前往 系統設定 → 一般 → 時光機,按 加入備份磁碟。
- 選擇剛才掛載的
TimeMachine,按 設定磁碟。 - 選擇是否加密備份。NAS 在家裡也建議加密,密碼要另外保存好,遺失就無法回復。
也可以用指令設定(終端機要在 系統設定 → 隱私權與安全性 → 完整磁碟取用權限 裡打開):
sudo tmutil setdestination -a -p smb://timemachine@nas.tail1234.ts.net/TimeMachine-p用互動方式輸入密碼,避免密碼出現在指令列。-a是「加入」而不是「取代」。原本已經有外接硬碟當備份磁碟時,Time Machine 會輪流備份到兩個目的地,多一份備份。
用 tmutil destinationinfo 確認設定,URL 應該是你輸入的 MagicDNS 名稱。
3. 第一次備份
第一次是完整備份,資料量最大。建議在家裡進行:這時 Tailscale 會走區網,比從外面經由網際網路快得多。
tmutil startbackup --block之後 Time Machine 會照排程自動備份,不需要手動操作。筆電的話,系統設定 → 一般 → 時光機 → 選項 裡可以調整備份頻率,以及是否在使用電池時備份。
存取規則:只開放 SMB 給自己的 Mac
如果 tailnet 還是預設的「所有裝置互通」規則,tailnet 裡的任何裝置都連得到 NAS 的所有服務。建議替 NAS 加上 tag,只開放需要的連接埠:
{
"tagOwners": {
"tag:nas": ["autogroup:admin"]
},
"grants": [
{
"src": ["alice@example.com"],
"dst": ["tag:nas"],
"ip": ["tcp:445"]
}
]
}tcp:445是 SMB。還要從外面管理 DSM 的話,另外加上 DSM 的管理埠(預設tcp:5000、tcp:5001)。src寫你自己的帳號,或只放你的 Mac。
Tag 的設定見 Tags 與 auth key,規則的寫法見 ACL / Grants 入門。
速度與穩定性
- 先確認是直連:在 Mac 上執行
tailscale ping nas。看到via DERP(...)代表走中繼,大量備份會很慢。原因與改善方法見 直連與 DERP 中繼。 - 頻寬:在外面備份時,瓶頸通常是你所在網路的上傳頻寬;家裡如果是上下行不對稱的寬頻,從 NAS 回復大量檔案時則會受家裡的上傳頻寬限制。
- 網路中斷:備份到一半網路斷線、筆電闔上或換網路時,這次備份會失敗,Time Machine 會在下次排程時再試。它每次備份都會自己掛載網路磁碟,不需要手動連線。
疑難排解
- Time Machine 說找不到備份磁碟:
- 確認 Mac 上的 Tailscale 已連線,
tailscale status看得到 NAS。 - 在 Finder 用
smb://nas.tail1234.ts.net/TimeMachine手動連一次,看是名稱解析、連線還是登入的問題。 - 名稱解析不到的話,見 MagicDNS;連不上的話,檢查上面的存取規則有沒有開
tcp:445。
- 確認 Mac 上的 Tailscale 已連線,
- 驗證失敗:確認帳號密碼,以及這個帳號對共用資料夾有讀寫權限。到 Mac 的「鑰匙圈存取」刪掉舊的 NAS 密碼後重新登入。
- 備份一直停在「正在準備備份」:大量檔案變動後的第一次備份會準備比較久。經由網際網路時更明顯,可以先回家裡讓它在區網完成。
- Time Machine 說需要建立新的備份:Time Machine 驗證備份時發現網路備份(sparsebundle)有問題,會要求重新建立。經常在備份途中斷線會增加這種機率,重要的話保留另一份備份(例如外接硬碟)。
- 其他 Synology 端的問題,見 如何解決使用 Time Machine 連線到 Synology NAS 時發生的問題。
不是 Synology 的話
任何支援 Time Machine 的 SMB 伺服器都可以用同樣的方式,例如 Linux 上的 Samba,在共用資料夾設定加上 vfs_fruit 模組:
[TimeMachine]
path = /srv/timemachine
valid users = timemachine
read only = no
vfs objects = catia fruit streams_xattr
fruit:time machine = yes
fruit:time machine max size = 1Tfruit:time machine max size 限制 Time Machine 可以用的空間。伺服器加入 tailnet 後,Mac 端的設定和上面相同。