前言
什么是樹莓派挟鸠?
當(dāng)然不是上圖的這個(gè)增拥。
樹莓派(英語:Raspberry Pi)劳闹,是一款基于Linux的單板機(jī)電腦。它由英國的樹莓派基金會(huì)所開發(fā)耘戚,目的是以低價(jià)硬件及自由軟件促進(jìn)學(xué)校的基本計(jì)算機(jī)科學(xué)教育嗡髓。
是下圖這個(gè)。
樹莓派到目前為止有 A型收津,A+型饿这,B型,B+型撞秋,B型 (第2代)长捧,B型 (第3代)。詳情的硬件規(guī)格參見吻贿。
而是手上的這款應(yīng)該屬于『B型 (第2代)』串结,已經(jīng)放了多年了。一直在思考一個(gè)問題『我能用它來做得什么呢舅列?』
最近我決定拿它來搭建個(gè) NAS 下載機(jī)肌割。
安裝系統(tǒng)
格式化SD卡
注意一定要選擇 FAT 格式。
通過 df -h
我們可以查看掛載的卷
/dev/disk1s1
就是我掛載的 SD 卡帐要。
分區(qū)卸載
接下來通過 diskutil unmount
命令把敞,卸載 SD 卡的分區(qū)。
確認(rèn)設(shè)備
通過 diskutil list
命令榨惠,確認(rèn)設(shè)備奋早。
寫入系統(tǒng)鏡像
這時(shí)需要先下載個(gè)系統(tǒng)鏡像。鏡像可以到樹莓派官網(wǎng)下載赠橙。 https://www.raspberrypi.org/downloads
樹莓派官網(wǎng)提供了各種不同版本版系統(tǒng)耽装。這里我選擇了
NOOBS
。
下載完鏡像后期揪,使用下面命令寫入系統(tǒng)鏡像
sudo dd bs=4m if=2017-06-21-raspbian-jessie-lite.img of=/dev/disk1
打印下面信息掉奄,說明寫入系統(tǒng)鏡像成功
這時(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è)版本。
使用下面命令安裝 docker
curl -sSL https://get.docker.com | sh
安裝完后唧瘾,通過下面命令措译,把 pi
這個(gè)賬號(hào)加入到 docker 群組
sudo usermod -aG docker pi
掛載移動(dòng)硬盤
需要先把移動(dòng)硬盤格式化成
ExFAT
的格式。
然后把移動(dòng)硬盤插到樹莓派上饰序。
通過 sudo fdisk -l
命令可以看到插到樹莓派的移動(dòng)硬盤领虹。
接著創(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)什么
- 如果對(duì)于 Docker 不熟悉的可以看看 Docker — 從入門到實(shí)踐耻卡,也歡迎閱讀我之前寫的 初探Docker
- 為什么要用樹莓派做個(gè)離線下載機(jī)疯汁?
是的,目前像市面上的一些路由器都已經(jīng)有了這些功能了卵酪。
但是如果你想在這個(gè)功能的基礎(chǔ)上在去擴(kuò)展一些功能卻不是那么容易的事幌蚊。
這使用 aria2 做, aria2 是開源的溃卡。你可以更具自己的需求去擴(kuò)展一些功能溢豆。
例如:實(shí)現(xiàn)自動(dòng)下載電影,什么的瘸羡。
最最最后漩仙,歡迎討論、批評(píng)犹赖、指錯(cuò)队他。