2021-05-12 14:32:11
Syncthing: 一個在計算機之間同步檔案/資料夾的私密安全同步工具
簡介
Syncthing是一個免費開源的工具,它能在你的各個網路計算機間同步檔案/資料夾。它不像其它的同步工具,如BitTorrent Sync和Dropbox那樣,它的同步資料是直接從一個系統中直接傳輸到另一個系統的,並且它是完全開源的,安全且私密的。你所有的珍貴資料都會被儲存在你的系統中,這樣你就能對你的檔案和資料夾擁有全面的控制權,沒有任何的檔案或資料夾會被儲存在第三方系統中。此外,你有權決定這些資料該存於何處,是否要分享到第三方,或這些資料在網際網路上的傳輸方式。
所有的資訊通訊都使用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建立使用者以及兩系統間的同步資料夾。
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-386default) unknown-user@syncthing-builder 2015-01-1316: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 oruse 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:Creatingnew HTTPS certificate
[BQXVO]15:40:34 INFO:Generating RSA key and certificate for server1...
[BQXVO]15:41:01 INFO:StartingUPnP discovery...
[BQXVO]15:41:07 INFO:Startinglocal discovery announcements
[BQXVO]15:41:07 INFO:Startingglobal 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看起來會是這樣的:
<guienabled="true"tls="false">
<address>0.0.0.0:8080</address>
<apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
</gui>
儲存並關閉檔案。
在兩個系統上再次執行下述命令:
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/
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-07/120493.htm
相關文章