首頁 > 軟體

Syncthing: 一個在計算機之間同步檔案/資料夾的私密安全同步工具

2020-06-16 17:57:00

簡介

Syncthing是一個免費開源的工具,它能在你的各個網路計算機間同步檔案/資料夾。它不像其它的同步工具,如BitTorrent SyncDropbox那樣,它的同步資料是直接從一個系統中直接傳輸到另一個系統的,並且它是完全開源的,安全且私密的。你所有的珍貴資料都會被儲存在你的系統中,這樣你就能對你的檔案和資料夾擁有全面的控制權,沒有任何的檔案或資料夾會被儲存在第三方系統中。此外,你有權決定這些資料該存於何處,是否要分享到第三方,或這些資料在網際網路上的傳輸方式。

所有的資訊通訊都使用TLS進行加密,這樣你的資料便能十分安全地逃離窺探。Syncthing有一個強大的響應式的網頁管理介面(WebGUI,下同),它能夠幫助使用者簡便地新增、刪除和管理那些通過網路進行同步的資料夾。通過使用Syncthing,你可以在多個系統上一次同步多個資料夾。在安裝和使用上,Syncthing是一個可移植的、簡單而強大的工具。即然檔案或資料夾是從一部計算機中直接傳輸到另一計算機中的,那麼你就無需考慮向雲服務供應商支付金錢來獲取額外的雲空間。你所需要的僅僅是非常穩定的LAN/WAN連線以及在你的系統中有足夠的硬碟空間。它支援所有的現代作業系統,包括GNU/Linux, Windows, Mac OS X, 當然還有Android

 

安裝

基於本文的目的,我們將使用兩個系統,一個是Ubuntu 14.04 LTS, 一個是Ubuntu 14.10 server。為了簡單辨別這兩個系統,我們將分別稱其為系統1系統2

 

系統1細節:

  • 作業系統: Ubuntu 14.04 LTS server;
  • 主機名: server1.unixmen.local;
  • IP地址: 192.168.1.150.
  • 系統使用者: sk (你可以使用你自己的系統使用者)
  • 同步資料夾: /home/Sync/ (Syncthing會預設建立)

 

系統2細節:

  • 作業系統: Ubuntu 14.10 server;
  • 主機名: server.unixmen.local;
  • IP地址: 192.168.1.151.
  • 系統使用者: sk (你可以使用你自己的系統使用者)
  • 同步資料夾: /home/Sync/ (Syncthing會預設建立)

 

在系統1和系統2上為Syncthing建立使用者

在兩個系統上執行下面的命令來為Syncthing建立使用者以及兩系統間的同步資料夾。

  1. sudo useradd sk
  2. sudo passwd sk

 

為系統1和系統2安裝Syncthing

在系統1和系統2上遵循以下步驟進行操作。

官方下載頁上下載最新版本。我使用的是64位元版本,因此下載64位元版的軟體包。

  1. wget https://github.com/syncthing/syncthing/releases/download/v0.10.20/syncthing-linux-amd64-v0.10.20.tar.gz

解壓縮下載的檔案:

  1. tar xzvf syncthing-linux-amd64-v0.10.20.tar.gz

切換到解壓縮出來的資料夾:

  1. cd syncthing-linux-amd64-v0.10.20/

複製可執行檔案"syncthing"到$PATH

  1. sudo cp syncthing /usr/local/bin/

現在,執行下列命令來首次執行Syncthing:

  1. syncthing

當你執行上述命令後,syncthing會生成一個設定以及一些設定鍵值,並且在你的瀏覽器上開啟一個管理介面。

輸入範例:

  1. [monitor]15:40:27 INFO:Starting syncthing
  2. 15:40:27 INFO:Generating RSA key and certificate for syncthing...
  3. [BQXVO]15:40:34 INFO: syncthing v0.10.20(go1.4 linux-386default) unknown-user@syncthing-builder 2015-01-1316:27:47 UTC
  4. [BQXVO]15:40:34 INFO:My ID: BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ
  5. [BQXVO]15:40:34 INFO:No config file; starting with empty defaults
  6. [BQXVO]15:40:34 INFO:Edit/home/sk/.config/syncthing/config.xml to taste oruse the GUI
  7. [BQXVO]15:40:34 INFO:Starting web GUI on http://127.0.0.1:8080/
  8. [BQXVO]15:40:34 INFO:Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem:no such file or directory
  9. [BQXVO]15:40:34 INFO:Creatingnew HTTPS certificate
  10. [BQXVO]15:40:34 INFO:Generating RSA key and certificate for server1...
  11. [BQXVO]15:41:01 INFO:StartingUPnP discovery...
  12. [BQXVO]15:41:07 INFO:Startinglocal discovery announcements
  13. [BQXVO]15:41:07 INFO:Startingglobal discovery announcements
  14. [BQXVO]15:41:07 OK:Ready to synchronize default(read-write)
  15. [BQXVO]15:41:07 INFO:Device BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ is"server1" at [dynamic]
  16. [BQXVO]15:41:07 INFO:Completed initial scan (rw) of folder default

Syncthing已經被成功地初始化了,網頁管理介面也可以通過瀏覽器存取URL: http://localhost:8080。如上面輸入所看到的,Syncthing在你的home目錄中的Sync目錄下自動為你建立了一個名為default**的資料夾。

預設情況下,Syncthing的網頁管理介面只能在本地埠(localhost)中進行存取,要從遠端進行存取,你需要在兩個系統中進行以下操作:

首先,按下CTRL+C鍵來終止Syncthing初始化進程。現在你回到了終端介面。

編輯config.xml檔案,

  1. sudo nano ~/.config/syncthing/config.xml

找到下面的指令:

  1. [...]
  2. <gui enabled="true" tls="false">
  3. <address>127.0.0.1:8080</address>
  4. <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
  5. </gui>
  6. [...]

在區域中,把127.0.0.1:8080改為0.0.0.0:8080。結果,你的config.xml看起來會是這樣的:

  1. <guienabled="true"tls="false">
  2. <address>0.0.0.0:8080</address>
  3. <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
  4. </gui>

儲存並關閉檔案。

在兩個系統上再次執行下述命令:

  1. syncthing

 

存取網頁管理介面

現在,在你的瀏覽器上開啟http://ip-address:8080/。你會看到下面的介面:

網頁管理介面分為兩個窗格,在左窗格中,你應該可以看到同步的資料夾列表。如前所述,資料夾default在你初始化Syncthing時被自動建立。如果你想同步更多資料夾,點選Add Folder按鈕。

在右窗格中,你可以看到已連線的裝置數。現在這裡只有一個,就是你現在正在操作的計算機。

 

網頁管理介面上設定Syncthing

為了提高安全性,讓我們啟用TLS,並且設定存取網頁管理介面的管理員使用者和密碼。要做到這點,點選右上角的齒輪按鈕,然後選擇Settings

輸入管理員的帳戶名/密碼。我設定的是admin/Ubuntu。你應該使用一些更複雜的密碼。

點選Save按鈕,現在,你會被要求重新啟動Syncthing使更改生效。點選Restart。

重新整理你的網頁瀏覽器。你可以看到一個像下面一樣的SSL警告。點選顯示我了解風險(I understand the Risks)的按鈕。接著,點選“新增例外(Add Exception)“按鈕把當前頁面新增進瀏覽器的信任列表中。

輸入前面幾步設定的管理員使用者和密碼。我設定的是admin/ubuntu

現在,我們提高了網頁管理介面的安全性。別忘了兩個系統都要執行上面同樣的步驟。

 

連線到其它伺服器

要在各個系統之間同步檔案,你必須各自告訴它們其它伺服器的資訊。這是通過交換裝置IDs(device IDs)來實現的。你可以通過選擇“齒輪選單(gear menu)”(在右上角)中的”Show ID(顯示ID)“來找到它。

例如,下面是我系統1的ID.

複製這個ID,然後到另外一個系統(系統2)的網頁管理介面,在右邊窗格點選Add Device按鈕。

接著會出現下面的介面。在Device區域貼上系統1 ID **。輸入裝置名稱(可選)。在地址區域,你可以輸入其它系統( LCTT 譯註:即貼上的ID所屬的系統,此應為系統1)的IP地址,或者使用預設值。預設值為dynamic。最後,選擇要同步的資料夾。在我們的例子中,同步資料夾為default**。

一旦完成了,點選save按鈕。你會被要求重新啟動Syncthing。點選Restart按鈕重新啟動使更改生效。

現在,我們到系統1的網頁管理介面,你會看到來自系統2的連線和同步請求。點選Add按鈕。現在,系統2會要求系統1分享和同步名為default的資料夾。

接著重新啟動系統1的Syncthing服務使更改生效。

等待大概60秒,接著你會看到兩個系統之間已成功連線並同步。

你可以在網頁管理介面中的Add Device區域核實該情況。

新增系統2後,系統1網頁管理介面中的控制視窗如下:

新增系統1後,系統2網頁管理介面中的控制視窗如下:

現在,在任一個系統中的“default”資料夾中放進任意檔案或資料夾。你應該可以看到這些檔案/資料夾被自動同步到其它系統。

本文完!祝同步愉快!

噢耶!!!


via: http://www.unixmen.com/syncthing-private-secure-tool-sync-filesfolders-computers/

作者:SK 譯者:XLCYun 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-07/120493.htm


IT145.com E-mail:sddin#qq.com