|
本篇的旨在最全面地介紹搭建網(wǎng)盤(pán)的整個(gè)過(guò)程,讓沒(méi)有Linux基礎(chǔ)的小白們少走彎路,因此細(xì)節(jié)上多有贅述,老司機(jī)們請(qǐng)無(wú)視。最近國(guó)內(nèi)的網(wǎng)盤(pán)們一個(gè)接一個(gè)地倒下,相信很多人不想忍受某網(wǎng)盤(pán)的限速,大家對(duì)私有云的需求越來(lái)越高。最簡(jiǎn)單和穩(wěn)妥的解決辦法當(dāng)然還是購(gòu)買(mǎi)群暉這樣高性能、多功能的NAS,但動(dòng)輒幾千元的售價(jià)還是讓許多人望而卻步,市面上的私有云盤(pán)軟件有諸如可道云、Nextcloud/ownCloud、Seafile等,這里IT之家來(lái)介紹如何用一塊樹(shù)莓派3B開(kāi)發(fā)板搭建私有云存儲(chǔ)。 先介紹一下本篇的主角——可道云 KodExplorer可道云,原名芒果云,是基于Web技術(shù)的私有云和在線文檔管理解決方案,具有以下特點(diǎn):
在體驗(yàn)了各家網(wǎng)盤(pán)后筆者選擇了可道云,主要是第一眼就被他近似于Windows的操作界面吸引了,可道云不需要數(shù)據(jù)庫(kù),足夠輕量,搭建簡(jiǎn)單,畢竟小小的樹(shù)莓派機(jī)能實(shí)在是有限。對(duì)比ownCloud,可道云在樹(shù)莓派上的性能表現(xiàn)要好太多。但也有像無(wú)移動(dòng)客戶端支持、同步不便、移動(dòng)端網(wǎng)頁(yè)版存在一些問(wèn)題等不足。
aria2 aria2被眾多網(wǎng)友視為下載神器,相信不少朋友都接觸過(guò),它是一款開(kāi)源免費(fèi)跨Win、Mac、Linux平臺(tái)且不限速的多線程下載軟件,具有速度快、體積小、性能強(qiáng)勁等特點(diǎn)。aria2支持HTTP / FTP / BT / Magnet磁力鏈接等類(lèi)型的文件下載。 準(zhǔn)備
為樹(shù)莓派安裝系統(tǒng)并啟動(dòng)登錄 先去樹(shù)莓派官網(wǎng)下載系統(tǒng)鏡像
點(diǎn)Download Zip下載壓縮包,下載完成后解壓,得到img鏡像文件。 下載鏡像燒錄工具Win32DiskImager v0.9.zip并安裝。 使用讀卡器將內(nèi)存卡連接電腦,運(yùn)行Win32diskimager。
映像文件選擇剛下載的img文件,設(shè)備選擇內(nèi)存卡盤(pán)符,然后選擇寫(xiě)入,就開(kāi)始安裝系統(tǒng)了,安裝完成后會(huì)彈出完成對(duì)話框。安裝完成后在Windows系統(tǒng)看到內(nèi)存卡只有74MB這是正常的,Windows看不到Linux下的分區(qū)。 然后在內(nèi)存卡根目錄下新建文件名為ssh的空白文件(沒(méi)有后綴名),這樣就能開(kāi)啟SSH服務(wù)登陸樹(shù)莓派了。 將內(nèi)存卡插入樹(shù)莓派,用網(wǎng)線連接樹(shù)莓派網(wǎng)口和路由器lan口,然后接上電源線。樹(shù)莓派就開(kāi)機(jī)了! 登陸路由器后臺(tái)查看樹(shù)莓派的內(nèi)網(wǎng)IP
可以看到這里樹(shù)莓派獲取到的IP地址為192.168.2.6,記住這個(gè)地址 下載并安裝PuTTY,安裝完成后運(yùn)行PuTTY。
將電腦和樹(shù)莓派置于同一局域網(wǎng),在主機(jī)名稱(chēng)中輸入192.168.2.6,端口默認(rèn)的22就可以,然后點(diǎn)擊打開(kāi)。這時(shí)會(huì)彈出安全警告,點(diǎn)是即可;之后輸入用戶名:pi;密碼:raspberry(輸入時(shí)密碼不可見(jiàn))就成功登陸樹(shù)莓派了。
域名 大家可以在阿里云注冊(cè)一個(gè)喜歡的域名,部分域名一年也就幾塊錢(qián)。至此準(zhǔn)備工作就完成了。 搭建可道云 PuTTY登陸后為root用戶設(shè)置密碼,輸入(PuTTY中單擊鼠標(biāo)右鍵粘貼): sudo passwd root 會(huì)提示輸入密碼,然后確認(rèn)輸入密碼(輸入時(shí)密碼不可見(jiàn))。
輸入如下命令就可切換到root用戶: su 我們先解除樹(shù)莓派對(duì)root用戶直接登陸的限制,編輯sshd_config文件: sudo nano /etc/ssh/sshd_config 按Ctrl+W搜索PermitRootLogin,刪除前面的#并把without-password改為yes: PermitRootLogin yes 按Ctrl+O保存文件,Ctrl + X退出編輯然后重啟樹(shù)莓派: 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 這時(shí)訪問(wèn)樹(shù)莓派的IP就可以看到apache2的默認(rèn)頁(yè)了。 掛載硬盤(pán) 樹(shù)莓派掛載NTFS硬盤(pán)默認(rèn)是只讀文件系統(tǒng),我們可以通過(guò)其它工具實(shí)現(xiàn),安裝ntfs-3g: sudo apt-get install ntfs-3g modprobe fuse 接下來(lái)我們創(chuàng)建掛載點(diǎn),我選擇的掛載點(diǎn)在/media/pi/mo文件夾: sudo mkdir /media/pi/mo 查看系統(tǒng)當(dāng)前掛載的硬盤(pán): fdisk -l 我們會(huì)看到最下面有如下信息: 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為這塊硬盤(pán)的分區(qū)信息。下面我們就以Apache的默認(rèn)用戶www-data來(lái)掛載硬盤(pán),輸入如下命令來(lái)查看用戶身份: sudo -u www-data id 顯示信息如下: uid=33(www-data) gid=33(www-data) groups=33(www-data) 然后讓硬盤(pán)能夠自動(dòng)掛載,編輯/etc/fstab: sudo nano /etc/fstab 將如下內(nèi)容添加到文件最后一行: /dev/sda1 /media/pi/mo ntfs uid=33,gid=33,noexec,umask=007 0 0 這里uid和gid為用戶和組,也就是上面我們查看到的信息;umask表示拒絕的權(quán)限,其中第一個(gè)數(shù)字為0。表示不拒絕任何權(quán)限,即可讀、寫(xiě)、執(zhí)行,第二、三個(gè)數(shù)字分別代表用戶組和其他用戶。按Ctrl+O保存文件,然后Ctrl + X退出編輯,重啟后生效: reboot 配置可道云 下載并解壓可道云 cd /media/pi/mo/kod wget http://static./update/download/kodexplorer4.25.zip unzip kodexplorer4.25.zip chmod -Rf 777 ./* 配置apache: nano /etc/apache2/sites-available/kod.conf 粘貼如下內(nèi)容: <VirtualHost *:80> ServerName kod.wumo.com ServerAdmin abc@Outlook.com DocumentRoot /media/pi/mo/kod <Directory "/media/pi/mo/kod/"> Options FollowSymLinks AllowOverride All Require all granted </Directory> 注:這里將kod.wumo.com替換成你自己的用來(lái)訪問(wèn)云盤(pán)的域名。重啟apache2: sudo service apache2 restart 解析域名 我們先在路由器上配置端口轉(zhuǎn)發(fā),進(jìn)入路由器管理后臺(tái),找到端口轉(zhuǎn)發(fā)/端口映射這項(xiàng),以我手里這臺(tái)刷了老毛子的斐訊為例:服務(wù)名稱(chēng)隨意;端口范圍我這里填58080(圖上是80,別管它),這個(gè)端口是可以任意的,它是我們通過(guò)域名訪問(wèn)樹(shù)莓派上的web服務(wù)時(shí)使用的端口,你可以用其他端口但盡量避開(kāi)80、443、8080這些端口,因?yàn)檫\(yùn)營(yíng)商會(huì)封禁這些web服務(wù)默認(rèn)端口;內(nèi)網(wǎng)IP:樹(shù)莓派的內(nèi)網(wǎng)IP;本地端口:80;這樣我們就把對(duì)路由器58080端口的訪問(wèn)轉(zhuǎn)移到樹(shù)莓派的80端口了。這里我們也為aria2配置一條轉(zhuǎn)發(fā)規(guī)則:將路由器的6800端口轉(zhuǎn)發(fā)到樹(shù)莓派的6800端口。
家庭寬帶IP會(huì)經(jīng)常改變,這里就需要?jiǎng)討B(tài)域名解析。動(dòng)態(tài)域名的功能大多數(shù)路由器都有,如果你不會(huì)的話可以參考這篇文章用WinScp將softether(提取碼:uqgx)上傳到樹(shù)莓派根目錄并解壓: 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 然后設(shè)置密碼: ./vpncmd 輸入1,后按三次回車(chē),然后輸入: ServerPasswordSet 按照提示設(shè)置密碼,然后下載并安裝Windows端管理工具(在上面的網(wǎng)盤(pán)鏈接里),點(diǎn)擊“新設(shè)置”添加連接文件。主機(jī)名填樹(shù)莓派內(nèi)網(wǎng)IP,端口:443,密碼:你剛才設(shè)置的密碼。
確定后選擇“遠(yuǎn)程訪問(wèn)vpnserver”,然后一路確定,你就能看到分配到的動(dòng)態(tài)解析的域名了,
記下這個(gè)域名,我的域名是阿里云注冊(cè)的,進(jìn)入阿里云控制臺(tái)>我的資源>云解析DNS>你的域名,選擇添加解析,
記錄類(lèi)型:CNAME;主機(jī)記錄:配置apache時(shí)填寫(xiě)的域名(上文中我填的是kod);記錄值:動(dòng)態(tài)DNS分配的域名。 至此我們的私有云就搭建完成了!用瀏覽器訪問(wèn)http://你的域名:轉(zhuǎn)發(fā)到樹(shù)莓派的端口號(hào)就可以看到我們搭建的云盤(pán)了。效果如下:
本文就是用可道云內(nèi)置的MD編輯器寫(xiě)的。 配置Aria2 這里aria2的配置參考這篇文章。 安裝Aria2 sudo apt-get install aria2 配置Aria2在/etc目錄下創(chuàng)建aria2目錄用來(lái)存放配置文件: sudo mkdir /etc/aria2 創(chuàng)建空白的aria2.session文件: sudo touch /etc/aria2/aria2.session 創(chuàng)建配置文件: sudo nano /etc/aria2/aria2.conf 在該文件中輸入以下內(nèi)容: # 文件的保存路徑(可使用絕對(duì)路徑或相對(duì)路徑), 默認(rèn): 當(dāng)前啟動(dòng)位置 dir=/media/pi/mo/kod/data/User/admin/home/download # 啟用磁盤(pán)緩存, 0為禁用緩存, 需1.16以上版本, 默認(rèn):16M disk-cache=32M # 文件預(yù)分配方式, 能有效降低磁盤(pán)碎片, 默認(rèn):prealloc # falloc和trunc則需要文件系統(tǒng)和內(nèi)核支持 # NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要注釋此項(xiàng) file-allocation=none # 斷點(diǎn)續(xù)傳 continue=true ## 下載連接相關(guān) ## # 最大同時(shí)下載任務(wù)數(shù), 運(yùn)行時(shí)可修改, 默認(rèn):5 max-concurrent-downloads=10 # 同一服務(wù)器連接數(shù), 添加時(shí)可指定, 默認(rèn):1 max-connection-per-server=5 # 最小文件分片大小, 添加時(shí)可指定, 取值范圍1M -1024M, 默認(rèn):20M # 假定size=10M, 文件為20MiB 則使用兩個(gè)來(lái)源下載; 文件為15MiB 則使用一個(gè)來(lái)源下載 min-split-size=10M # 單個(gè)任務(wù)最大線程數(shù), 添加時(shí)可指定, 默認(rèn):5 split=10 # 整體下載速度限制, 運(yùn)行時(shí)可修改, 默認(rèn):0 #max-overall-download-limit=0 # 單個(gè)任務(wù)下載速度限制, 默認(rèn):0 #max-download-limit=0 # 整體上傳速度限制, 運(yùn)行時(shí)可修改, 默認(rèn):0 #max-overall-upload-limit=0 # 單個(gè)任務(wù)上傳速度限制, 默認(rèn):0 #max-upload-limit=0 # 禁用IPv6, 默認(rèn):false disable-ipv6=true ## 進(jìn)度保存相關(guān) ## # 定時(shí)保存會(huì)話, 0為退出時(shí)才保存, 需1.16.1以上版本, 默認(rèn):0 #save-session-interval=60 ## RPC相關(guān)設(shè)置 ## # 啟用RPC, 默認(rèn):false enable-rpc=true # 允許所有來(lái)源, 默認(rèn):false rpc-allow-origin-all=true # 允許非外部訪問(wèn), 默認(rèn):false rpc-listen-all=true # 事件輪詢方式, 取值:[epoll, kqueue, port, poll, select], 不同系統(tǒng)默認(rèn)值不同 #event-poll=select # RPC監(jiān)聽(tīng)端口, 端口被占用時(shí)可以修改, 默認(rèn):6800 #rpc-listen-port=6800 # 設(shè)置的RPC授權(quán)令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項(xiàng) rpc-secret=123456789 # 設(shè)置的RPC訪問(wèn)用戶名, 此選項(xiàng)新版已廢棄, 建議改用 --rpc-secret 選項(xiàng) #rpc-user=<USER> # 設(shè)置的RPC訪問(wèn)密碼, 此選項(xiàng)新版已廢棄, 建議改用 --rpc-secret 選項(xiàng) #rpc-passwd=<PASSWD> ## BT/PT下載相關(guān) ## # 當(dāng)下載的是一個(gè)種子(以.torrent結(jié)尾)時(shí), 自動(dòng)開(kāi)始BT任務(wù), 默認(rèn):true #follow-torrent=true # BT監(jiān)聽(tīng)端口, 當(dāng)端口被屏蔽時(shí)使用, 默認(rèn):6881-6999 listen-port=51413 # 單個(gè)種子最大連接數(shù), 默認(rèn):55 #bt-max-peers=55 # 打開(kāi)DHT功能, PT需要禁用, 默認(rèn):true enable-dht=true # 打開(kāi)IPv6 DHT功能, PT需要禁用 #enable-dht6=false # DHT網(wǎng)絡(luò)監(jiān)聽(tīng)端口, 默認(rèn):6881-6999 #dht-listen-port=6881-6999 # 本地節(jié)點(diǎn)查找, PT需要禁用, 默認(rèn):false #bt-enable-lpd=true # 種子交換, PT需要禁用, 默認(rèn):true enable-peer-exchange=true # 每個(gè)種子限速, 對(duì)少種的PT很有用, 默認(rèn):50K #bt-request-peer-speed-limit=50K # 客戶端偽裝, PT需要 peer-id-prefix=-TR2770- user-agent=Transmission/2.77 # 當(dāng)種子的分享率達(dá)到這個(gè)數(shù)時(shí), 自動(dòng)停止做種, 0為一直做種, 默認(rèn):1.0 seed-ratio=0.1 # 強(qiáng)制保存會(huì)話, 即使任務(wù)已經(jīng)完成, 默認(rèn):false # 較新的版本開(kāi)啟后會(huì)在任務(wù)完成后依然保留.aria2文件 #force-save=false # BT校驗(yàn)相關(guān), 默認(rèn):true #bt-hash-check-seed=true # 繼續(xù)之前的BT任務(wù)時(shí), 無(wú)需再次校驗(yàn), 默認(rèn):false bt-seed-unverified=true # 保存磁力鏈接元數(shù)據(jù)為種子文件(.torrent文件), 默認(rèn):false bt-save-metadata=false 注1:rpc-secret=123456789,改為你自己的密碼; 注2:aria2默認(rèn)下載目錄筆者放在了可道云管理員文件目錄下的download文件夾,下載完成后打開(kāi)可道云即可看到。 啟動(dòng)aria2 這里我們用www-data用戶來(lái)運(yùn)行aria2,先賦予配置目錄可執(zhí)行權(quán)限: sudo chown -R www-data:www-data /etc/aria2 以www-data用戶運(yùn)行aria2: sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf 如果沒(méi)有提示任何錯(cuò)誤信息,那就按Ctrl+C停止上面的語(yǔ)句,以Daemon的形式,轉(zhuǎn)為后臺(tái)運(yùn)行: sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D 做成系統(tǒng)服務(wù): sudo nano /etc/init.d/aria2c 粘貼以下內(nèi)容: #!/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 然后設(shè)置這個(gè)文件的權(quán)限: sudo chmod 755 /etc/init.d/aria2c 測(cè)試服務(wù)是否可以啟動(dòng): sudo service aria2c start 添加aria2c服務(wù)自動(dòng)運(yùn)行: sudo update-rc.d aria2c defaults 安裝aria的web管理界面這里我們選擇aria2-NG作為web管理界面創(chuàng)建目錄: 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 輸入以下內(nèi)容: <VirtualHost *:80>
ServerName aria2.wumo.com
ServerAdmin qazqazqwer@Outlook.com
DocumentRoot /var/www/html/aria2
<Directory "/var/www/html/aria2/">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>注:和上文一樣把a(bǔ)ria2.wumo.com替換成你用來(lái)訪問(wèn)aria2管理界面的域名。 ln -s /etc/apache2/sites-available/aria2.conf /etc/apache2/sites-enabled/aria2.conf 重啟apache2: sudo service apache2 restart 然后去阿里云把你用來(lái)訪問(wèn)aria2管理界面的域名的CNAME記錄解析到動(dòng)態(tài)域名上。用瀏覽器輸入http://用來(lái)訪問(wèn)aria2管理界面的域名:外網(wǎng)端口(上文中我用的是58080)訪問(wèn)你的aria2。這里會(huì)顯示認(rèn)證錯(cuò)誤:
到AriaNG設(shè)置>RPC>Aria2RPC密鑰輸入上文你設(shè)置的密碼,然后重新加載頁(yè)面:
這里就會(huì)顯示已連接了。
這樣我們就大功告成了~ |
|
|
來(lái)自: 看見(jiàn)就非常 > 《待分類(lèi)》