手把手教你搭建入門級免費私有云盤NAS——基於syncthing——基礎篇(樹莓派、PC機)



需求(按重要性排序):
  • 跨平臺
  • 自動備份
  • 數據安全(非雲盤同步,最近雲盤數據安全事件頻發,優先考慮本地同步)
  • 有版本控制(代碼文件)
  • 流量、容量不限(受限於自身的硬盤空間,這可以擴展)
  • 管理同步文件方便
  • 穩定性好
  • 速度要快
  • 開源免費
背景:

  堅果雲用了有兩三年的時間,也用爽了,免費版不限空間,但限制流量(每個月1G上傳,3G下載)有多個系統版本可供下載,同步根據文件夾來同步,不管小文件、大文件的同步,都很有效率,但是最近隨着需要同步的內容越來越多,發現時常見到堅果雲一直在掃描、分析,比較耗費時間,當然還有另外一個選擇,面對企業用的億方雲,也是挺好用的。不想折騰的可以考慮用這兩個軟件之一來用作文件NAS(受限於免費版的空間與流量,都不適合當作媒體NAS,但是適合做文檔、代碼NAS)。
  基於目前的收入≈生存支出的尷尬情景,還未能實現真正的黃燜雞自由,暫且忍住不買專業版,恰逢發現了 syncthing ,感覺有種相見恨晚,syncthing 是一個開源的雲端同步工具,源碼/release版本都可以在github上下載下來。這裏是 syncthing 的 github 下載頁面

NAS 介紹
摘自百度百科,簡單來說就是有兩個常用基本功能:1、存儲數據;2、共享(同步/備份)

一、電腦端的 NAS 部署與測試(syncthing)

  • 在操作之前,若兩臺電腦不在身邊的話,可以考慮先安裝一個 TeamViewer 來遠程控制,賊好用噢。
    (爲了區分電腦A和電腦B,下面描述用家裏的電腦遠端電腦,遠端電腦將通過 TeamViewer 來連接)
  • 去 github 下載電腦端的 syncthing 安裝包 下載頁面同上(下載頁面)。
    找到 syncthing-windows-amd64-v1.4.2-rc.1.zip下載到本地(下載最新就好)
  • 解壓打開,運行有且僅有一個exe文件。選是或否都OK,這裏不會上傳敏感數據,就選是了。
  • 這是家裏的電腦第一次運行,自彈出來的 web UI 設置界面。
  • 這是遠端的電腦,已經提前運行過,並添加過一臺小米8(局域網下)測試。
  • 現在需要將兩臺電腦連接起來 ,此處兩電腦是處於 非內網 (公網)連接。
    隨便一臺電腦選擇添加遠程設備,這裏就選用家裏的電腦去添加遠端電腦。

  • 首先在遠端電腦,選擇 Web UI 右上方的 操作顯示 ID

  • 複製圖片紅框內ID號
  • 在家裏的電腦,添加遠程設備,輸入遠端電腦的 設備ID
  • 這裏說下第二個欄目,“共享”,有三個設置項
    • 作爲中介:如果已經在2臺設備上已經有同步的文件(或建立連接)。那麼在添加第三個設備的時候勾選了作爲中介,這個時候,新添加的設備就會將所有的“除自己外”的設備都添加到他自身的“遠程設備”裏。(有點拗口,可以自己感受下)
    • 自動接收:不建議勾選,因爲不是每一個同步的文件夾,都想要接接收下來,將主動權放在自己手上,有新文件夾同步時,在確認是否添加,若不想每次手動選擇,也可以將這個勾選上。
    • 共享指定文件夾:就是大家約定共享的默認文件夾,可以不勾,自己添加想要共享的文件夾。
  • 點擊保存,此時,在遠端設備上,會彈出一個確認的消息框,(會根據網絡情況,有所延時,可以刷新一下)點擊 “添加設備”
  • 到了這一步,就可以選擇一個共享文件夾了,點擊添加文件夾,填上想要共享的文件夾。
  • 選擇共享,勾選想要共享的設備(這裏需要勾選遠端的電腦,才能將文件同步過去),版本控制按照需要來選,若是存放音視頻文件,可以不用勾選,若是存放文檔、代碼等可迭代修改的,建議選擇版本控制。
  • 同樣,在遠端電腦的 Web UI 會彈出一個提示框,同步該文件夾就勾選添加,選擇路徑,不想同步就直接點忽略。
  • 測試同步效果
      在遠端電腦往同步文件夾丟幾個視頻看看同步效果(同步方向:遠端電腦——>家裏的電腦)。受限於家裏 渣渣的59元20M寬帶,只有2.85MB/s,換算過來也有22.8Mbps的傳輸速率,因此也是跑滿帶寬的,家裏有百兆/千兆光纖的可以測試下哦,說不定有驚喜噢。
      反過來,在家裏的電腦,往同步文件夾丟點內容,遠端電腦也同樣會下載到它本地同步文件夾內。
  • 至此,個人的NAS服務已經打通,接着就可以愉快的新建同步文件夾,並且實現多設備同步啦。

二、樹莓派部署 24H 不間斷運行 NAS——作爲主同步服務端器(syncthing)

  • 選用樹莓派的主要原因有:
     (1)這塊樹莓派處於喫灰的邊緣,需要好好利用起來;
     (2)功耗低(租房電費1.3/度,長期運行必須考慮功耗),考慮到網速關係,決定將樹莓派放在家裏,家裏的電腦與樹莓派在局域網的同步較快,同步到遠端可以等樹莓派慢慢同步(補充:後面測了下功耗,是真的很低,閒時掛機 5V 0.26A 1.3W,有同步任務時 5V 0.67A 3.35W,拿個5V1A的閒置手機充電頭給樹莓派供電,妥妥的)。
     (3)沒有舊電腦,有的話就會選擇黑羣暉了,也相當於免費(等現在這臺退休就有了)。

  • 下圖是配置完成後,繼續丟角落頭24H帶電喫灰的樹莓派(外殼還在路上- -。)

好了廢話不多說,開始正文。

  • 首先,要安裝好樹莓派系統,可以參考我的博文來手把手教你燒錄樹莓派系統,並且完成基本配置。——> 樹莓派——完整燒錄及配置過程(超詳細)<——
  • 查看樹莓派系統位數,返回值就是系統位數。
    getconf LONG_BIT
    在這裏插入圖片描述
  • 去 github 下載樹莓派的 syncthing 安裝包 ,展開 Assets 找到 syncthing-openbsd-arm-v1.4.2-rc.1.tar.gz ,右鍵複製鏈接地址,修改下面的wget(這個軟件更新比較勤快,你們可以直接找到最新的來下載,方法一樣)
    執行下面命令下載 syncthing
    mkdir ~/syncthing
    cd ~/syncthing
    wget https://github.com/syncthing/syncthing/releases/download/v1.4.2-rc.1/syncthing-openbsd-arm-v1.4.2-rc.1.tar.gz
    
    (如果樹莓派下載太慢的話,可以在電腦下載好,用ssh傳過去)
  • 執行解壓命令,增加執行權限,並運行一次(運行後才能生成配置文件)
    tar -zxvf syncthing-linux-arm-v1.4.2-rc.1.tar.gz
    cd syncthing-linux-arm-v1.4.2-rc.1/
    chmod +x syncthing
    ./syncthing
    
  • 運行信息如下:
    在這裏插入圖片描述
  • 因爲樹莓派不打算接顯示器與鼠標鍵盤,爲了能夠在其他局域網內的電腦來訪問樹莓派的Web頁面,需要開放IP出來讓局域網的其他電腦來連接並設置。
    sudo nano /home/pi/.config/syncthing/config.xml
    
    在這裏插入圖片描述
  • 重新運行 syncthing
    ./syncthing
    
  • 在電腦端瀏覽器輸入 樹莓派ip:8384 訪問 WEB UI 界面
  • 按照提示,需要修改密碼,點擊設置,選擇“圖形用戶界面”,輸入用戶名和密碼,爲了方便記憶,可以直接用樹莓派的用戶名和密碼就行。
  • 如果你有公網IP(或部署到雲服務器),或只需要在內網操作,那麼可以將連接選項裏 啓用NAT遍歷全球發現 關閉,如果想接入外網,通過外網進行同步,又沒有固定公網IP,那麼需要將這兩個選項打開
  • 保存後需要重新連接登陸 pi 的 syncthing 網頁,輸入賬號密碼登陸即可回到之前頁面。
  • OK,完成設置後,可以根據上一節的方法來對樹莓派進行相同的設置,直到同步成功。
  • 好了,來到這一步,需要在之前的基礎上,修改一下同步的路徑(數據同步的方向),由於樹莓派是24H不間斷運行,因此就用它來做同步的主NAS(即樹莓派上的內容,會一直保持最新),此時我們需要斷開設備間的同步。操作步驟如下:
    1、樹莓派上的遠程設備選項設置:對所有遠程設備都共享需要的文件夾
    2、其他設備上的遠程設備選項設置:只用在遠程設備選項裏設置下同步樹莓派的文件夾。
  • 上一步驟的圖示如下:
  • 設置完後,就可以愉快地添加真正需要同步的文件夾啦。
    (1)文件夾下的 “同步完成” 代表着 syncthing 的本地同步狀態已就緒,可以向遠端設備進行同步(這裏是樹莓派)
    (2)遠端設備下的 “同步完成” 代表着在遠端已經下載好最新的文件,本地與遠端的文件對比一致。
    (3)如果此時在其他遠端設備上進行同步,將會從樹莓派上下載最新的文件到本地文件夾內。

三、擴展的同步拓撲

在下一篇文章裏《手把手教你搭建入門級免費私有云盤NAS——基於syncthing——擴展篇》將展示如何利用雲服務器,搭建專用共享網絡,來替代全球發現,提高同步的速率。
最終的拓撲圖如下:

四、代碼同步的選擇(GIT/SVN/NAS)

下述純粹是個人使用感受,不屬於工具好壞的比較(工具都是好用的)

  • SVN 的方法比較適合不同項目,不同版本,但是功能已經較爲完善的代碼或文檔來同步。
  • GIT 與 SVN實際使用起來類似,也是需要commit-push操作才能同步,與svn比起來卻要方便一些,也好用一些。
  • NAS 代碼同步,對於小型項目的文件、學習過程中隨時敲打的代碼、未能形成版本的零碎源碼文件、突發奇想臨時寫出來的文件,甚至是覺得好笑的段子/小片子,等等都可以同步到NAS,並且在其他設備上可以隨時查看與編輯,關鍵是這麼好用還不限量不限速不收費!
  • 總結:所以三種方法都各有好處與用途,對於需要以項目來區分並控制版本的,我會選用SVN/GIT,對零碎個人文件、不需要嚴格版本控制的同步臨時代碼文件、音視頻及圖片、我會選用NAS同步。

五、適用於個人

該文章分享的方法適用於個人/家庭的文件同步,如果多人協作的代碼/文檔開發,請選用svn或git,不然文件衝突不好處理。這裏是默認了只有一個人在使用文件時,不會在2臺以上設備同時打開並寫一個文件的情況。
舉個栗子,就是你在公司寫的文檔,走之前保存關閉,回到家能夠打開能夠繼續在公司離開前的編輯,同樣第二天到公司後,能夠繼續昨晚在家睡覺前的編輯。而當然你不會在同一時間在家和公司編輯同一文件,這樣會有文件衝突,就需要先同步一份(其實git同理也是如此,只不過不用手動push)。

至此,一個入門級免費個人私有云盤NAS已經搭建完畢。已經足以應對日常使用,更多的高級使用技巧請參考下文
《手把手教你搭建入門級免費私有云盤NAS——基於syncthing——擴展篇》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章