創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2021年10月23日 星期六

Syncthing入門

概要

本文簡單介紹Syncthing這套P2P檔案同步軟體,內容大綱如下:

  • Syncthing簡介
  • 安裝
  • 初次執行
  • 簡單使用情境
  • 移動裝置版本的使用
  • 其他注意

內容適合初接觸或想了解Syncthing的用戶,展示環境是Ubuntu MATE 20.04。

Syncthing簡介

Syncthing是自由、開放原始碼的點對點P2P檔案同步軟體,可用於Linux, Android, Windows, macOS, BSD與Solaris。它可在本地網路的裝置之間,或透過網際網路在遠端裝置之間同步檔案。資料隱密與安全性內建於軟體的設計中。

安裝

官網下載頁提供了多種平台版本的安裝檔案,另外還有社群提供GUI工具,可惜缺乏iOS版的客戶端。在App Store上可找到Möbius Sync可用,要iOS 14.1以上才能用。

這裡只寫官方提供在Debian/Ubuntu上的安裝方法[1]。以下先加入PGP keys、APT sources加入Syncthing的"stable" channel等設置,然後進行更新與安裝工作:


$ sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
$ echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
$ printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing
$ sudo apt update
$ sudo apt install syncthing

目前的版號1.18.3才約9 MB,但下載時可能遇到壅塞,花了點時間。

初次執行

以上述方式安裝好後,會自動在主選單上建立Syncthing的項目,可以利用它們來啟動Syncthing;也可以直接在命令行執行 syncthing 命令,它也會自動以系統預設的瀏覽器來開啟管理網頁介面。在第一次執行Syncthing時會產生設置檔案與加密金鑰,並進入管理網頁,以方便進行設置工作。

※網頁上會提供提示訊息與說明連結,可自行參考。上圖有提示為此網頁設置使用者名稱與密碼,若有必要請自行為之。

此時Syncthing也會在家目錄建立個 Sync 的資料夾,並將其列入Syncthing設置裡的資料夾,稱為 Default Folder 。這個是Syncthing預設的,若不想採用,可自行另建立新的,將此刪除。

簡單使用情境

官方文件的Getting Started[2]提供了一個簡單的情境,以兩部電腦做資料同步來說明如何使用Syncthing。由於設置工作採用網頁圖形介面來進行,且網頁上也提供了說明連結,只要搞清楚一些重點,就很容易知道如何進行。以下就只簡單描述使用上的重點,而不逐個畫面做說明。先解釋幾個畫面上會看到的東西:

  • local device本地裝置(本機):即目前使用,以網頁進行管理設置的這部機器。
  • remote device遠端裝置:指其他機器,打算用來與本機做資料同步的機器。

在管理網頁的右半邊會列出本地裝置與其他遠端裝置;左半邊則是列出本機上想要分享的資料夾。剛開始時右邊只有本機;而左邊只有 Default Folder,狀態是未共享

Syncthing要與另一裝置同步檔案,必須知道該裝置。這是藉由交換“裝置識別碼” (device ID)來達成的。裝置識別碼是獨一無二、加密安全的識別符,它是第一次啟動Syncthing時所產生加密用金鑰的一部分。它會顯示在執行Syncthing時的日誌,也可以在Web GUI右上角選擇“操作” -> “顯示識別碼”來看到它;或在畫面右半邊,點擊裝置的 Identification 也會顯示出來,附帶二維條碼,方便掃瞄。

只有在兩個裝置互相設置了彼此的裝置識別碼,他們才能互相連接與通訊。因為必須互相做好設置,連線才會發生,故裝置識別碼不須保密。基本上它是公開金鑰的一部分。

要讓兩部裝置相互溝通,點擊右下角的“新增遠端裝置”,輸入對方的裝置識別碼。(※不想輸入很長的字串?那就想辦法複製或取得該字串,以任何可行的方式傳送過來,如E-mail, Telegram或隨身碟……。)裝置名稱可自行取個易記或分辨的名稱,或不想填寫也行,往後也可修改,畫面上會為這些欄位提供說明文字,以下就不逐一解釋。

還要再選擇所要共享的資料夾。點擊“保存”後,新裝置將出現在GUI的右側(顯示斷線),然後在過一分鐘左右連上新裝置。記得在另一個裝置也重複此步驟。

這樣,兩部裝置此時共享一個空資料夾。將檔案加到任一裝置的共享資料夾就會將這些檔案同步到另一端。

同步工作完成後,如果想結束程式,從右上角“操作” -> “關閉”即可停止程式運行。

這段最後再補充說明一下資料夾的設置。在左邊點擊“添加資料夾”時的設置畫面,有二個必要的欄位,一是“資料夾識別碼”,會自動提供個預設值,這個可以自行調整,以上述的例子而言,兩部裝置上要使用相同一致的資料夾識別碼。二是“資料夾路徑”,這依裝置而異。

在設置畫面的“進階”分頁可以調整“資料夾類型”,點擊下拉選單會看到有以下幾種類型可選:

  • 傳送及接收
  • 僅傳送
  • 僅接收

移動裝置版本的使用

以上是以電腦版的Syncthing為例來做說明,採用Web GUI來進行設置工作。移動裝置的版本,本身就提供圖形介面做設置工作,在第一次執行時同樣如同電腦版會先產生加密金鑰,之後在圖形介面進行設置工作就可以,方式與上述類似,畫面上的東西也有點相似。安卓版還是有提供網頁GUI,也可用來啟動同步與觀察執行結果。

若想避免耗電過多,可以在必須做同步時才把Syncthing打開,同步完成後就將其關閉離線,而不要一直開著。

※使用較舊版的安卓作業系統時,若共享資料夾設在SD卡,Syncthing可能只會被系統給予讀取權利而不能接收;若想接收,只能把共享資料夾改到內建儲存。

其他注意

若同步工作出現失敗,可查看一下未同步項目,從中找出可能原因。譬如某些字元像":"在Linux上可做檔案或目錄名稱,但這些目錄或檔案若要同步到Windows上或使用Windows檔案格式的儲存裝置時就會導致失敗,這時就得把這類字元改掉才能完成同步工作。

如果有其他狀況,譬如必須調整防火牆的設置才能讓Syncthing正常運作,官方說明文件[3]可找到這類說明。

結語

在有多部電腦或裝置,想做多個資料夾同步的情況下,Syncthing是相當實用的軟體,不僅免費,而且使用上也相當簡單。先從簡單入手,實際做一次就會了解,有必要時再去查閱官方說明文件,文件大致上已相當清楚。另外,也有討論區

參考與連結

  1. Debian/Ubuntu Packages
  2. Getting Started
  3. Welcome to Syncthing’s documentation!

沒有留言:

張貼留言