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

y8de 9年前發布 | 23K 次閱讀 Syncthing

簡介

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

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

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

安裝

基于本文的目的,我們將使用兩個系統,一個是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會默認創建)
  • </ul>

    系統2細節:

    • 操作系統: Ubuntu 14.10 server;
    • 主機名: server.unixmen.local;
    • IP地址: 192.168.1.151.
    • 系統用戶: sk (你可以使用你自己的系統用戶)
    • 同步文件夾: /home/Sync/ (Syncthing會默認創建)
    • </ul>

      在系統1和系統2上為Syncthing創建用戶

      在兩個系統上運行下面的命令來為Syncthing創建用戶以及兩系統間的同步文件夾。

      sudo useradd sk
      sudo passwd sk

      為系統1和系統2安裝Syncthing

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

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

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

      解壓縮下載的文件:

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

      切換到解壓縮出來的文件夾:

      cd syncthing-linux-amd64-v0.10.20/

      復制可執行文件"syncthing"到$PATH

      sudo cp syncthing /usr/local/bin/

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

      syncthing

      當你執行上述命令后,syncthing會生成一個配置以及一些配置鍵值,并且在你的瀏覽器上打開一個管理界面。

      輸入示例:

      [monitor] 15:40:27 INFO: Starting syncthing
       15:40:27 INFO: Generating RSA key and certificate for syncthing...
       [BQXVO] 15:40:34 INFO: syncthing v0.10.20 (go1.4 linux-386 default) unknown-user@syncthing-builder 2015-01-13 16:27:47 UTC
       [BQXVO] 15:40:34 INFO: My ID: BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ
       [BQXVO] 15:40:34 INFO: No config file; starting with empty defaults
       [BQXVO] 15:40:34 INFO: Edit /home/sk/.config/syncthing/config.xml to taste or use the GUI
       [BQXVO] 15:40:34 INFO: Starting web GUI on http://127.0.0.1:8080/
       [BQXVO] 15:40:34 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
       [BQXVO] 15:40:34 INFO: Creating new HTTPS certificate
       [BQXVO] 15:40:34 INFO: Generating RSA key and certificate for server1...
       [BQXVO] 15:41:01 INFO: Starting UPnP discovery...
       [BQXVO] 15:41:07 INFO: Starting local discovery announcements
       [BQXVO] 15:41:07 INFO: Starting global discovery announcements
       [BQXVO] 15:41:07 OK: Ready to synchronize default (read-write)
       [BQXVO] 15:41:07 INFO: Device BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ is "server1" at [dynamic]
       [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文件,

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

      找到下面的指令:

      [...]
      <gui enabled="true" tls="false">
       <address>127.0.0.1:8080</address>
       <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
      </gui>
      [...]

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

      <gui enabled="true" tls="false">
       <address>0.0.0.0:8080</address>
       <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
      </gui>

      保存并關閉文件。

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

      syncthing

      訪問網頁管理界面

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

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

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

      在右窗格中,你可以看到已連接的設備數。現在這里只有一個,就是你現在正在操作的計算機。

      網頁管理界面上設置Syncthing

      為了提高安全性,讓我們啟用TLS,并且設置訪問網頁管理界面的管理員用戶和密碼。要做到這點,點擊右上角的齒輪按鈕,然后選擇Settings

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

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

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

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

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

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

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

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

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

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

      連接到其它服務器

      要在各個系統之間同步文件,你必須各自告訴它們其它服務器的信息。這是通過交換設備IDs(device IDs)來實現的。你可以通過選擇“齒輪菜單(gear menu)”(在右上角)中的”Show ID(顯示ID)“來找到它。

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

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

      復制這個ID,然后到另外一個系統(系統2)的網頁管理界面,在右邊窗格點擊Add Device按鈕。

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

      接著會出現下面的界面。在Device區域粘貼系統1 ID **。輸入設備名稱(可選)。在地址區域,你可以輸入其它系統( LCTT 譯注:即粘貼的ID所屬的系統,此應為系統1)的IP地址,或者使用默認值。默認值為dynamic。最后,選擇要同步的文件夾。在我們的例子中,同步文件夾為default**。

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

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

      現在,我們到系統1的網頁管理界面,你會看到來自系統2的連接和同步請求。點擊Add按鈕。現在,系統2會要求系統1分享和同步名為default的文件夾。

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

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

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

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

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

      添加系統2后,系統1網頁管理界面中的控制窗口如下:

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

      添加系統1后,系統2網頁管理界面中的控制窗口如下:

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

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

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

      本文完!祝同步愉快!

      噢耶!!!

 本文由用戶 y8de 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!