樹莓派搭建個(gè)人 NAS 下載機(jī)(實(shí)現(xiàn)離線下載功能)

前言

什么是樹莓派挟鸠?

15000475503758.jpg

當(dāng)然不是上圖的這個(gè)增拥。

樹莓派(英語:Raspberry Pi)劳闹,是一款基于Linux的單板機(jī)電腦。它由英國的樹莓派基金會(huì)所開發(fā)耘戚,目的是以低價(jià)硬件及自由軟件促進(jìn)學(xué)校的基本計(jì)算機(jī)科學(xué)教育嗡髓。

是下圖這個(gè)。

15000476245744.jpg

樹莓派到目前為止有 A型收津,A+型饿这,B型,B+型撞秋,B型 (第2代)长捧,B型 (第3代)。詳情的硬件規(guī)格參見吻贿。

而是手上的這款應(yīng)該屬于『B型 (第2代)』串结,已經(jīng)放了多年了。一直在思考一個(gè)問題『我能用它來做得什么呢舅列?』

最近我決定拿它來搭建個(gè) NAS 下載機(jī)肌割。

安裝系統(tǒng)

格式化SD卡

14997746545028.jpg

注意一定要選擇 FAT 格式。

通過 df -h 我們可以查看掛載的卷

14997748999370.jpg

/dev/disk1s1 就是我掛載的 SD 卡帐要。

分區(qū)卸載

接下來通過 diskutil unmount 命令把敞,卸載 SD 卡的分區(qū)。

14997751001738.jpg

確認(rèn)設(shè)備

通過 diskutil list 命令榨惠,確認(rèn)設(shè)備奋早。

14997752179418.jpg

寫入系統(tǒng)鏡像

這時(shí)需要先下載個(gè)系統(tǒng)鏡像。鏡像可以到樹莓派官網(wǎng)下載赠橙。 https://www.raspberrypi.org/downloads

14997773262421.jpg

樹莓派官網(wǎng)提供了各種不同版本版系統(tǒng)耽装。這里我選擇了 NOOBS

下載完鏡像后期揪,使用下面命令寫入系統(tǒng)鏡像

sudo dd bs=4m if=2017-06-21-raspbian-jessie-lite.img of=/dev/disk1

打印下面信息掉奄,說明寫入系統(tǒng)鏡像成功

14997771209704.jpg

這時(shí),將 SD 卡横侦,電源線和顯示器接到樹莓派上挥萌,就可以登錄樹莓派的系統(tǒng)命令行了。
樹莓派默認(rèn)用戶名為 pi枉侧,默認(rèn)密碼是 raspberry引瀑。

啟動(dòng) SSH 服務(wù)

樹莓派默認(rèn)已經(jīng)預(yù)裝的 SSH,只要啟動(dòng) SSH 服務(wù)就可以愉快的通過 SSH 登錄了榨馁。

sudo service ssh start

更新 apt-get

使用以下命令憨栽,更新 apt-get

sudo apt-get update

安裝 zsh

為什么要安裝 zsh 呢? 這不是必須的,這是個(gè)人喜好屑柔,這樣我才能愉快的使用命令行屡萤。
通過 apt-get 就可以輕松安裝

sudo apt-get install zsh

安裝 git

sudo apt-get install git

安裝 Oh My Zsh

當(dāng)然這邊也不是必須的,個(gè)人喜好罷了掸宛。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安裝 docker

樹莓派在 jessie 這個(gè)版本就已經(jīng)支持了 docker死陆。目前我使用的版本就是這個(gè)版本。

14997816201076.jpg

使用下面命令安裝 docker

curl -sSL https://get.docker.com | sh

安裝完后唧瘾,通過下面命令措译,把 pi 這個(gè)賬號(hào)加入到 docker 群組

sudo usermod -aG docker pi

掛載移動(dòng)硬盤

14997832023156.jpg

需要先把移動(dòng)硬盤格式化成 ExFAT 的格式。

然后把移動(dòng)硬盤插到樹莓派上饰序。

通過 sudo fdisk -l 命令可以看到插到樹莓派的移動(dòng)硬盤领虹。

14997831050247.jpg

接著創(chuàng)建一個(gè)掛載磁盤使用的目錄

使用以下命令掛載磁盤

sudo mount -o uid=pi,gid=pi /dev/sda2 /home/pi/data

這條命令表示,需要把移動(dòng)硬盤掛載到 /home/pi/data 目錄求豫。

這時(shí)塌衰,你可能會(huì)看到以下錯(cuò)誤提示

mount: unknown filesystem type 'exfat'

樹莓派默認(rèn)不識(shí)別 exfat, 需要安裝 exfat-fuse 后再執(zhí)行命令蝠嘉。

安裝 exfat-fuse

sudo apt-get install exfat-fuse

掛載完后最疆,在 home/pi/data下 以下文件夾

aria2/.aria2
aria2/downloads

部署 Samba 共享文件

這里我選擇使用 Docker 來,部署 Samba(這也算是個(gè)人潔癖吧)是晨。
Github 上有個(gè) dperson/samba肚菠,是一個(gè)已經(jīng)寫好的 Docker 項(xiàng)目舔箭≌纸桑可惜他并沒有支持樹莓派的環(huán)境。我們先讓其支持樹莓派的環(huán)境层扶。

通過 git 命令箫章,將工程 clone 下來。

cd samba
cp Dockerfile Dockerfile.arm
vi Dockerfile.arm

FROM debian:stretch 改為 FROM resin/rpi-raspbian

這樣就可以愉快的構(gòu)建樹莓派版本的 Samba Docker 鏡像了镜会。

使用以下命令構(gòu)建鏡像

sudo docker build -f Dockerfile.arm -t dperson/samba  .

構(gòu)建完鏡像后檬寂,接下來就是運(yùn)行鏡像啟動(dòng)共享服務(wù)

sudo docker run -it -p 139:139 -p 445:445 \
       -v  /home/pi/data/aria2/downloads:/downloads \
       -d --name="samba" dperson/samba \
       -u "pi;pi" \
       -s "downloads;/downloads;yes;no;no;all;pi"

這里,共享了 downloads 目錄戳表,并創(chuàng)建了 pi 用戶桶至。詳細(xì)的參數(shù)說明請(qǐng)參見

部署 webui-aria2

aria2 是一個(gè)很牛逼的命令行下載工具匾旭,同時(shí)也能支持 RPC 模式镣屹。

  • 簡(jiǎn)單來說就是有以下特性:
  • 支持多協(xié)議: HTTP / HTTPS,F(xiàn)TP价涝,SFTP女蜈,BitTorrent和Metalink
  • 多線程連線:aria2 會(huì)自動(dòng)從多個(gè)線程下載文件,并充分利用你的帶寬;
  • 輕量:運(yùn)行時(shí)不會(huì)占用過多資源伪窖,根據(jù)官方介紹逸寓,內(nèi)存占用通常在 4MB~9MB,使用BitTorrent 協(xié)議覆山,下行速度 2.8MB/s 時(shí) CPU 占用率約 6%竹伸;
  • 全功能 BitTorrent 客戶端,可以當(dāng)BT客戶端使用簇宽,拋棄迅雷佩伤。
  • 支持 RPC 界面遠(yuǎn)程控制

webui-aria2 則是 aria2 的 web 版。

首先用 git clone webui-aria2 的工程晦毙。

git clone https://github.com/ziahamza/webui-aria2.git

webui-aria2 官方已提供了能構(gòu)建樹莓派版本的 Dockerfile生巡,直接通過下面的命令構(gòu)建鏡像。

cd webui-aria2
sudo docker build -f Dockerfile.arm -t yourname/webui-aria2 .

然后在目錄(/home/pi/data/aria2/.aria2)下創(chuàng)建文件 session.txt见妒,aria2.log孤荣,aria2.conf

aria2.conf 配置如下:

#用戶名
#rpc-user=user
#密碼
#rpc-passwd=passwd
#上面的認(rèn)證方式不建議使用,建議使用下面的token方式
#設(shè)置加密的密鑰
#rpc-secret=token
#允許rpc
enable-rpc=true
#允許所有來源, web界面跨域權(quán)限需要
rpc-allow-origin-all=true
#允許外部訪問须揣,false的話只監(jiān)聽本地端口
rpc-listen-all=true
#RPC端口, 僅當(dāng)默認(rèn)端口被占用時(shí)修改
#rpc-listen-port=6800
#最大同時(shí)下載數(shù)(任務(wù)數(shù)), 路由建議值: 3
max-concurrent-downloads=5
#斷點(diǎn)續(xù)傳
continue=true
#同服務(wù)器連接數(shù)
max-connection-per-server=5
#最小文件分片大小, 下載線程數(shù)上限取決于能分出多少片, 對(duì)于小文件重要
min-split-size=10M
#單文件最大線程數(shù), 路由建議值: 5
split=10
#下載速度限制
max-overall-download-limit=0
#單文件速度限制
max-download-limit=0
#上傳速度限制
max-overall-upload-limit=0
#單文件速度限制
max-upload-limit=0
#斷開速度過慢的連接
#lowest-speed-limit=0
#驗(yàn)證用盐股,需要1.16.1之后的release版本
#referer=*
#文件保存路徑, 默認(rèn)為當(dāng)前啟動(dòng)位置
dir=/User/xxx/Downloads
#文件緩存, 使用內(nèi)置的文件緩存, 如果你不相信Linux內(nèi)核文件緩存和磁盤內(nèi)置緩存時(shí)使用, 需要1.16及以上版本
#disk-cache=0
#另一種Linux文件緩存方式, 使用前確保您使用的內(nèi)核支持此選項(xiàng), 需要1.15及以上版本(?)
#enable-mmap=true
#文件預(yù)分配, 能有效降低文件碎片, 提高磁盤性能. 缺點(diǎn)是預(yù)分配時(shí)間較長(zhǎng)
#所需時(shí)間 none < falloc ? trunc << prealloc, falloc和trunc需要文件系統(tǒng)和內(nèi)核支持
file-allocation=prealloc

接下來通過下面??命令啟動(dòng) docker

sudo docker run --restart=always -d -v /home/pi/data/aria2:/data -p 6800:6800 -p 9100:8080 --name="webui-aria2" yourname/webui-aria2

??注意你映射的磁盤路徑哦

最后你就可以通過 http://[樹莓派IP]:9100 訪問 Aria2 WebUI 了。

最后嘮叨點(diǎn)什么

是的,目前像市面上的一些路由器都已經(jīng)有了這些功能了卵酪。
但是如果你想在這個(gè)功能的基礎(chǔ)上在去擴(kuò)展一些功能卻不是那么容易的事幌蚊。
這使用 aria2 做, aria2 是開源的溃卡。你可以更具自己的需求去擴(kuò)展一些功能溢豆。
例如:實(shí)現(xiàn)自動(dòng)下載電影,什么的瘸羡。

最最最后漩仙,歡迎討論、批評(píng)犹赖、指錯(cuò)队他。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市峻村,隨后出現(xiàn)的幾起案子麸折,更是在濱河造成了極大的恐慌,老刑警劉巖雀哨,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件磕谅,死亡現(xiàn)場(chǎng)離奇詭異私爷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)膊夹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門衬浑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人放刨,你說我怎么就攤上這事工秩。” “怎么了进统?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵助币,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我螟碎,道長(zhǎng)眉菱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任掉分,我火速辦了婚禮俭缓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酥郭。我一直安慰自己华坦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布不从。 她就那樣靜靜地躺著惜姐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椿息。 梳的紋絲不亂的頭發(fā)上歹袁,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音撵颊,去河邊找鬼宇攻。 笑死惫叛,一個(gè)胖子當(dāng)著我的面吹牛倡勇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘉涌,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼妻熊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了仑最?” 一聲冷哼從身側(cè)響起扔役,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎警医,沒想到半個(gè)月后亿胸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坯钦,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年侈玄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婉刀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡序仙,死狀恐怖突颊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情潘悼,我是刑警寧澤律秃,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站治唤,受9級(jí)特大地震影響棒动,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宾添,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一迁客、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辞槐,春花似錦掷漱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹿榜,卻和暖如春海雪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舱殿。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工奥裸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沪袭。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓湾宙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親冈绊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侠鳄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容