如何在樹莓派上搭建私有雲存儲
本篇的旨在最全面地介紹搭建網盤的整個過程,讓沒有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
輸入以下內容:
TAG:IT之家 |