當前位置:
首頁 > 最新 > 如何在樹莓派上搭建私有雲存儲

如何在樹莓派上搭建私有雲存儲

本篇的旨在最全面地介紹搭建網盤的整個過程,讓沒有Linux基礎的小白們少走彎路,因此細節上多有贅述,老司機們請無視。最近國內的網盤們一個接一個地倒下,相信很多人不想忍受某網盤的限速,大家對私有雲的需求越來越高。最簡單和穩妥的解決辦法當然還是購買群暉這樣高性能、多功能的NAS,但動輒幾千元的售價還是讓許多人望而卻步,市面上的私有雲盤軟體有諸如可道雲、Nextcloud/ownCloud、Seafile等,這裡IT之家來介紹如何用一塊樹莓派3B開發板搭建私有雲存儲。

先介紹一下本篇的主角——可道雲

KodExplorer可道雲,原名芒果雲,是基於Web技術的私有雲和在線文檔管理解決方案,具有以下特點:

輕量易部署

適用性強,應用場景多

高顏值、可定製

在體驗了各家網盤後筆者選擇了可道雲,主要是第一眼就被他近似於Windows的操作界面吸引了,可道雲不需要資料庫,足夠輕量,搭建簡單,畢竟小小的樹莓派機能實在是有限。對比ownCloud,可道雲在樹莓派上的性能表現要好太多。但也有像無移動客戶端支持、同步不便、移動端網頁版存在一些問題等不足。

aria2

aria2被眾多網友視為下載神器,相信不少朋友都接觸過,它是一款開源免費跨Win、Mac、Linux平台且不限速的多線程下載軟體,具有速度快、體積小、性能強勁等特點。aria2支持HTTP / FTP / BT / Magnet磁力鏈接等類型的文件下載。

準備

樹莓派3B

內存卡

硬碟

公網IP

域名

為樹莓派安裝系統並啟動登錄

先去樹莓派官網下載系統鏡像

Download Zip下載壓縮包,下載完成後解壓,得到img鏡像文件。

下載鏡像燒錄工具Win32DiskImager v0.9.zip並安裝。

使用讀卡器將內存卡連接電腦,運行Win32diskimager。

映像文件選擇剛下載的img文件,設備選擇內存卡盤符,然後選擇寫入,就開始安裝系統了,安裝完成後會彈出完成對話框。安裝完成後在Windows系統看到內存卡只有74MB這是正常的,Windows看不到Linux下的分區。

然後在內存卡根目錄下新建文件名為ssh的空白文件(沒有後綴名),這樣就能開啟SSH服務登陸樹莓派了。

將內存卡插入樹莓派,用網線連接樹莓派網口和路由器lan口,然後接上電源線。樹莓派就開機了!

登陸路由器後台查看樹莓派的內網IP

可以看到這裡樹莓派獲取到的IP地址為192.168.2.6,記住這個地址

下載並安裝PuTTY,安裝完成後運行PuTTY。

將電腦和樹莓派置於同一區域網,在主機名稱中輸入192.168.2.6,埠默認的22就可以,然後點擊打開。這時會彈出安全警告,點是即可;之後輸入用戶名:pi;密碼:raspberry(輸入時密碼不可見)就成功登陸樹莓派了。

域名

大家可以在阿里雲註冊一個喜歡的域名,部分域名一年也就幾塊錢。至此準備工作就完成了。

搭建可道雲

PuTTY登陸後為root用戶設置密碼,輸入(PuTTY中單擊滑鼠右鍵粘貼):

sudo passwd root

會提示輸入密碼,然後確認輸入密碼(輸入時密碼不可見)。

輸入如下命令就可切換到root用戶:

su

我們先解除樹莓派對root用戶直接登陸的限制,編輯sshd_config文件:

sudo nano /etc/ssh/sshd_config

按Ctrl+W搜索PermitRootLogin,刪除前面的#並把without-password改為yes:

PermitRootLogin yes

按Ctrl+O保存文件,Ctrl + X退出編輯然後重啟樹莓派:

reboot

安裝Apache+PHP

使用root用戶登錄,先更新一下安裝源:

sudo apt-get update

安裝apache2和PHP:

sudo apt-get install apache2 php7.0 php7.0-curl php7.0-mbstring php7.0-gd

這時訪問樹莓派的IP就可以看到apache2的默認頁了。

掛載硬碟

樹莓派掛載NTFS硬碟默認是只讀文件系統,我們可以通過其它工具實現,安裝ntfs-3g:

sudo apt-get install ntfs-3g modprobe fuse

接下來我們創建掛載點,我選擇的掛載點在/media/pi/mo文件夾:

sudo mkdir /media/pi/mo

查看系統當前掛載的硬碟:

fdisk -l

我們會看到最下面有如下信息:

Device         Boot Start      End  Sectors  Size Id Type /dev/mmcblk0p1       8192    93236    85045 41.5M  c W95 FAT32 (LBA) /dev/mmcblk0p2      94208 62521343 62427136 29.8G 83 Linux Disk /dev/sda: 464.8 GiB, 3899024998 bytes, 937766584 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa7cf32d1 Device     Boot Start       End   Sectors   Size  Id  Type /dev/sda1        2048 334438655 937766584 464.8G  7 HPFS/NTFS/exFAT

其中/dev/sda1為這塊硬碟的分區信息。下面我們就以Apache的默認用戶www-data來掛載硬碟,輸入如下命令來查看用戶身份:

sudo -u www-data id

顯示信息如下:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

然後讓硬碟能夠自動掛載,編輯/etc/fstab:

sudo nano /etc/fstab

將如下內容添加到文件最後一行:

/dev/sda1 /media/pi/mo ntfs uid=33,gid=33,noexec,umask=007 0 0

這裡uid和gid為用戶和組,也就是上面我們查看到的信息;umask表示拒絕的許可權,其中第一個數字為0。表示不拒絕任何許可權,即可讀、寫、執行,第二、三個數字分別代表用戶組和其他用戶。按Ctrl+O保存文件,然後Ctrl + X退出編輯,重啟後生效:

reboot

配置可道雲

下載並解壓可道雲

cd /media/pi/mo/kod wget http://static.kodcloud.com/update/download/kodexplorer4.25.zip unzip kodexplorer4.25.zip chmod -Rf 777 ./*

配置apache:

nano /etc/apache2/sites-available/kod.conf

粘貼如下內容:

sudo service apache2 restart

解析域名

我們先在路由器上配置埠轉發,進入路由器管理後台,找到埠轉發/埠映射這項,以我手裡這台刷了老毛子的斐訊為例:服務名稱隨意;埠範圍我這裡填58080(圖上是80,別管它),這個埠是可以任意的,它是我們通過域名訪問樹莓派上的web服務時使用的埠,你可以用其他埠但盡量避開80、443、8080這些埠,因為運營商會封禁這些web服務默認埠;內網IP:樹莓派的內網IP;本地埠:80;這樣我們就把對路由器58080埠的訪問轉移到樹莓派的80埠了。這裡我們也為aria2配置一條轉發規則:將路由器的6800埠轉發到樹莓派的6800埠。

家庭寬頻IP會經常改變,這裡就需要動態域名解析。動態域名的功能大多數路由器都有,如果你不會的話可以參考這篇文章用WinScp將softether(提取碼:uqgx)上傳到樹莓派根目錄並解壓:

tar -zxvf softether-vpnserver-v4.25-9656-rtm-2018.01.15-linux-arm_eabi-32bit.tar.gz cd /vpnserver ./.install.sh ./vpnserver start–Simplified Chinese

然後設置密碼:

./vpncmd

輸入1,後按三次回車,然後輸入:

ServerPasswordSet

按照提示設置密碼,然後下載並安裝Windows端管理工具(在上面的網盤鏈接里),點擊「新設置」添加連接文件。主機名填樹莓派內網IP,埠:443,密碼:你剛才設置的密碼。

確定後選擇「遠程訪問vpnserver」,然後一路確定,你就能看到分配到的動態解析的域名了,

記下這個域名,我的域名是阿里雲註冊的,進入阿里雲控制台>我的資源>雲解析DNS>你的域名,選擇添加解析,

記錄類型:CNAME;主機記錄:配置apache時填寫的域名(上文中我填的是kod);記錄值:動態DNS分配的域名。

至此我們的私有雲就搭建完成了!用瀏覽器訪問http://你的域名:轉發到樹莓派的埠號就可以看到我們搭建的雲盤了。效果如下:

本文就是用可道雲內置的MD編輯器寫的。

配置Aria2

這裡aria2的配置參考這篇文章。

安裝Aria2

sudo apt-get install aria2

配置Aria2在/etc目錄下創建aria2目錄用來存放配置文件:

sudo mkdir /etc/aria2

創建空白的aria2.session文件:

sudo touch /etc/aria2/aria2.session

創建配置文件:

sudo nano /etc/aria2/aria2.conf

在該文件中輸入以下內容:

# 文件的保存路徑(可使用絕對路徑或相對路徑), 默認: 當前啟動位置 dir=/media/pi/mo/kod/data/User/admin/home/download # 啟用磁碟緩存, 0為禁用緩存, 需1.16以上版本, 默認:16M disk-cache=32M # 文件預分配方式, 能有效降低磁碟碎片, 默認:prealloc # falloc和trunc則需要文件系統和內核支持 # NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要注釋此項 file-allocation=none # 斷點續傳 continue=true ## 下載連接相關 ## # 最大同時下載任務數, 運行時可修改, 默認:5 max-concurrent-downloads=10 # 同一伺服器連接數, 添加時可指定, 默認:1 max-connection-per-server=5 # 最小文件分片大小, 添加時可指定, 取值範圍1M -1024M, 默認:20M # 假定size=10M, 文件為20MiB 則使用兩個來源下載; 文件為15MiB 則使用一個來源下載 min-split-size=10M # 單個任務最大線程數, 添加時可指定, 默認:5 split=10 # 整體下載速度限制, 運行時可修改, 默認:0 #max-overall-download-limit=0 # 單個任務下載速度限制, 默認:0 #max-download-limit=0 # 整體上傳速度限制, 運行時可修改, 默認:0 #max-overall-upload-limit=0 # 單個任務上傳速度限制, 默認:0 #max-upload-limit=0 # 禁用IPv6, 默認:false disable-ipv6=true ## 進度保存相關 ## # 定時保存會話, 0為退出時才保存, 需1.16.1以上版本, 默認:0 #save-session-interval=60 ## RPC相關設置 ## # 啟用RPC, 默認:false enable-rpc=true # 允許所有來源, 默認:false rpc-allow-origin-all=true # 允許非外部訪問, 默認:false rpc-listen-all=true # 事件輪詢方式, 取值:[epoll, kqueue, port, poll, select], 不同系統默認值不同 #event-poll=select # RPC監聽埠, 埠被佔用時可以修改, 默認:6800 #rpc-listen-port=6800 # 設置的RPC授權令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項 rpc-secret=123456789 # 設置的RPC訪問用戶名, 此選項新版已廢棄, 建議改用 --rpc-secret 選項 #rpc-user=# 設置的RPC訪問密碼, 此選項新版已廢棄, 建議改用 --rpc-secret 選項 #rpc-passwd=

## BT/PT下載相關 ## # 當下載的是一個種子(以.torrent結尾)時, 自動開始BT任務, 默認:true #follow-torrent=true # BT監聽埠, 當埠被屏蔽時使用, 默認:6881-6999 listen-port=51413 # 單個種子最大連接數, 默認:55 #bt-max-peers=55 # 打開DHT功能, PT需要禁用, 默認:true enable-dht=true # 打開IPv6 DHT功能, PT需要禁用 #enable-dht6=false # DHT網路監聽埠, 默認:6881-6999 #dht-listen-port=6881-6999 # 本地節點查找, PT需要禁用, 默認:false #bt-enable-lpd=true # 種子交換, PT需要禁用, 默認:true enable-peer-exchange=true # 每個種子限速, 對少種的PT很有用, 默認:50K #bt-request-peer-speed-limit=50K # 客戶端偽裝, PT需要 peer-id-prefix=-TR2770- user-agent=Transmission/2.77 # 當種子的分享率達到這個數時, 自動停止做種, 0為一直做種, 默認:1.0 seed-ratio=0.1 # 強制保存會話, 即使任務已經完成, 默認:false # 較新的版本開啟後會在任務完成後依然保留.aria2文件 #force-save=false # BT校驗相關, 默認:true #bt-hash-check-seed=true # 繼續之前的BT任務時, 無需再次校驗, 默認:false bt-seed-unverified=true # 保存磁力鏈接元數據為種子文件(.torrent文件), 默認:false bt-save-metadata=false

注2:aria2默認下載目錄筆者放在了可道雲管理員文件目錄下的download文件夾,下載完成後打開可道雲即可看到。

啟動aria2

這裡我們用www-data用戶來運行aria2,先賦予配置目錄可執行許可權:

sudo chown -R www-data:www-data /etc/aria2

以www-data用戶運行aria2:

sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf

如果沒有提示任何錯誤信息,那就按Ctrl+C停止上面的語句,以Daemon的形式,轉為後台運行:

sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D

做成系統服務:

sudo nano /etc/init.d/aria2c

粘貼以下內容:

#!/bin/sh ### BEGIN INIT INFO # Provides:          aria2 # Required-Start:    $remote_fs $network # Required-Stop:     $remote_fs $network # Default-Start:     2 3 4 5 # Default-Stop:      0 1 6 # Short-Description: Aria2 Downloader ### END INIT INFO   case "$1" in start)     echo  "Starting aria2c ..."     sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D ;; stop)     echo  "Shutting down aria2c ..."     killall aria2c ;; restart)      killall aria2c     sleep 3     sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D ;; esac exit

然後設置這個文件的許可權:

sudo chmod 755 /etc/init.d/aria2c

測試服務是否可以啟動:

sudo service aria2c start

添加aria2c服務自動運行:

sudo update-rc.d aria2c defaults

安裝aria的web管理界面這裡我們選擇aria2-NG作為web管理界面創建目錄:

mkdir /var/www/html/aria2

下載並解壓aria2-NG:

cd /var/www/html/aria2 && wget https://github.com/mayswind/AriaNg/releases/download/0.3.0/aria-ng-0.3.0.zip unzip aria-ng-0.3.0.zip

配置apache:

nano /etc/apache2/sites-available/aria2.conf

輸入以下內容:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT之家 的精彩文章:

谷歌鬆口:重啟Nexus 5X可換Moto 4X

TAG:IT之家 |