歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Syncthing: 一個在計算機之間同步文件/文件夾的私密安全同步工具

Syncthing: 一個在計算機之間同步文件/文件夾的私密安全同步工具

日期:2017/2/28 13:59:51   编辑:Linux教程

簡介

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”文件夾中放進任意文件或文件夾。你應該可以看到這些文件/文件夾被自動同步到其它系統。

本文完!祝同步愉快!

噢耶!!!

  • Syncthing網站

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

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

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

Copyright © Linux教程網 All Rights Reserved