David
发布于 2015-04-10 / 19 阅读 / 0 评论 / 0 点赞

搭建Samba+Aria2c+Yaaw下載服務器

上年迅雷開始封殺資源,百度網盤“小電影”全部變成8秒教育片,果然還是下載下來好,反正硬盤也不貴...買買買 對於一些BT種子或者磁鏈的文件(通常都是電影什麼的),基本上很難避免要用到類似“離綫下載”功能,這裡我用的是115網盤來代替迅雷離綫,最好是VIP(淘寶价20多壹年),接收禮包無壓力,離綫又不會封資源,谷歌搜索下“115禮品碼”各種福利電影,有點賣廣告的嫌疑。 第一次接觸Ubuntu的時候已經嘗試過弄Aria2c+Yaaw來下載迅雷離綫文件,那時候速度還是杠杠的,但是畢竟接觸還不是很深,完全搞不懂為什麼跟着教程來還是不行,最後還是放棄了。 語文不是語文老師教的,不扯了,開始吧。

硬件

[su_list]
  • 樹莓派,我用的是model B
  • 4口帶隔離有源的USB Hub
  • 西數500G(有壞道)+ORICO USB3.0硬盤盒 獨立供電
[/su_list] 既然硬盘盒已经独立供电,为什么还要用USB Hub呢?如果你有经常插拔树莓派USB设备的话,就会发现有时候插一个或者拔一次都会引起树莓派重启,长久下来SD卡可经不起这样玩,血淋淋的教训-_-! [su_note note_color="#4bd3f8" radius="1"]注意:目前樹莓派對USB3.0還沒有完美支持,通過網絡讀取硬盤文件的時候(寫入沒問題),經常出現IO錯誤,暫時除了換USB2.0硬盤盒外別無他法。[/su_note] 对于新版本的B+或者2B,就不大清楚了,好像做些了防护什么的吧,等他出USB3.0版本再更新硬件也不迟

系統設置

有了外置硬盤,就得考慮自動掛載。硬盤已經格式化成ext4,為什麼不用ntfs?後面再說。使用系統自帶fstab配置文件掛載有兩種寫法,暫時寫一種。這個時候硬件必須連接好,看看外置硬盤對應“盤符” 盤符 硬盤位置 從上面圖片知道,sda硬盤裏有個sda1的分區,sda1就是“盤符” 編輯/etc/fstab文件,加入
#硬盤位置        掛載點         格式    
/dev/sda1       /home/pi/hdd    ext4    defaults          0       0
效果如圖,注意第四行,其他不用管 fstab 接著在/home/pi/下新建個叫“hdd”的文件夾并執行:
sudo mount -a
mount幫助 如圖所示,-a參數意為:按照/etc/fstab配置掛載所有位置,當然不會重複掛載,只限於還沒掛載的 不過有時候會出現權限問題,各位觀眾~~~3條7
sudo chmod 777 /home/pi/hdd

Samba配置

其實裝不裝SMB也沒什麼所謂,讀取讀不到的話,基本上失去共享的意義。或許以後的樹莓派會支持USB3.0,又或者直接在PC機上按本文章配置流程搭建就不存在USB3.0兼容問題 安裝Samba相關內容
sudo apt-get install samba samba-common-bin
我這裡就不配置要密碼認證方式,使用起來很不爽
#備份當前配置信息,以後或許會用到
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak


#刪掉/etc/samba/smb.conf
sudo rm -f /etc/samba/smb.conf


#重建smb.conf
sudo vi /etc/samba/smb.conf
填入以下內容,注意路徑位置
[global]
        log file = /var/log/samba/log.%m
        #windows的域
        workgroup = WORKGROUP
        #不使用用戶認證
        security=share
[hdd]
        #共享文件夾的名字,隨意就行,無所謂
        comment = File
        #將要共享的文件夾
        path = /home/pi/hdd
        read only = no
        public = yes
        guest ok = yes
        browseable = yes
        create mask = 0777
        directory mask= 0777
如果想要密碼認證的話,把上面“security=share”改成"security=user"、“guest ok”和“public”均改成"no"并向smb添加用戶和密碼,輸兩次密碼的喲
smbpasswd -a 用戶名
最後重啟Samba服務
sudo service samba restart
至此,通過window訪問  樹莓派的IP地址   ,應該可以看到共享文件夾,試試往裏面粘貼些文件,試試速度如何。千萬別試圖複製任何文件,不然出現IO錯誤,“盤符”就會變成sdb什麼的,你得重啟樹莓派了。PS:變成sdb也不是不能用,自己選吧

Aria2c配置

如果上面都沒問題的話,那後面就完全沒壓力了,這部分上圖困難,自己搗鼓下吧 一開始我是用apt-get安裝Aria2c,後來發現版本(1.12左右)太舊不支持定時保存進度,中途退出Aria2c的話,就得重新下載,這不是一般的蛋疼,得自己下載最新版本編譯安裝
wget http://sourceforge.net/projects/aria2/files/stable/aria2-1.18.8/aria2-1.18.8.tar.gz
截止本文發表,最新版本為1.18.10,小修改就不更新了 輕車熟路,解壓縮、編譯、安裝走起
#解壓
tar zxf aria2-1.18.8.tar.gz

#進入解壓出來的文件夾
cd aria2-1.18.8/

#開始編譯與安裝
sudo ./configure
#還有
sudo make && sudo make install
現在可以慢慢等,先玩幾局LOL,需要大概2個小時左右(怎麼把編譯好的提取出來,然後直接在其他樹莓派安裝呢?) 連跪幾局後,現在的遊戲都不好玩,什麼鳥公平勝率系統,就不能讓我躺贏幾局嗎? 再看回樹莓派,已經安裝完成了,開始弄配置文件。不對稱網絡養不起PT,下載BT種子什麼的都是由115代勞,所以配置文件中並沒有包含BT部分設置,編輯文件
sudo vi /home/pi/aria2.conf
# 断点续传
continue=true
# 以后台程序运行
daemon=true
# 下载目录,没有该目录用 mkdir 命令新建,不然会报错
dir=/home/pi/hdd/complete
# 开启 rpc 模式
enable-rpc=true
# 关闭文件预分配,建议关闭,不然下个大文件得等半天
file-allocation=none
# 命令行模式下多任务下载
force-sequential=true
# 读取下载进度文件,没有该文件用 touch 命令新建,不然会报错
input-file=/home/pi/aria2.s
# 保存日志到文件,没有该文件用 touch 命令新建,不然会报错
log=/var/log/aria2.log
# 日志级别
log-level=notice
# 最大同时下载任务数
max-concurrent-downloads=3
# 同服务器最大连接数
max-connection-per-server=5
# 开启命令行模式下的参数化模式,比如 http://{sv1,sv2,sv3}/foo.iso 或 http://host/image[000-100:2].img
parameterized-uri=true
# YAAW 需要
rpc-allow-origin-all=true
# rpc 模式下,允许从外部访问
rpc-listen-all=true
# 保存 BT 种子和磁力链接的元数据
rpc-save-upload-metadata=true
# 保存下载进度到文件,没有该文件用 touch 命令新建,不然会报错
save-session=/home/pi/aria2.s
# 自动保存下载进度到文件的时间
save-session-interval=30
#单文件最大线程数
split=2
注釋已經很清楚了,文件和文件夾必須創建好,否則Aria2c啟動不了 接著把啟動停止重啟Aria2c配置成系統服務,媽媽再也不用擔心命令太長
sudo vi /etc/init.d/aria2
路徑信息要根據自己情況修改。
#!/bin/sh

#之前的配置文件
CONF=/home/pi/aria2.conf

case "$1" in
  start)
    echo "Starting aria2c service"
    sudo aria2c --conf-path=$CONF -D
    echo "done !"
    ;;
  stop)
    echo "Stopping aria2c service"
    sudo killall -w aria2c
    echo "done !"
    ;;
  restart)
    echo "Restarting aria2c service"
    sudo killall -w aria2c
    sudo aria2c --conf-path=$CONF -D
    echo "done !"
    ;;
  *)
    echo "$0 {start|stop|restart}"
    ;;
  esac
exit
需要改好可執行權限
sudo chmod +x /etc/init.d/aria2
現在試下啟動Aria2c
sudo service aria2 start
在看下是否真的啟動成功,上面的服務配置不支持檢測是否真的啟動成功,有需要請自行修改
sudo ps x |grep aria2
啟動情況 嗯~看到綠色框中的內容,已經成功執行,还差最后一点,配置开机启动
sudo update-rc.d aria2 defaults
至此,整個流程已經完成90%,剩下的沒什麼難度

Nginx配置

有了Aria2c服務端,還需要一個客戶端來添加下載任務。網上有兩個現成網頁控制端:YaawWebui-Aria2,前者簡潔,後者詳細,自行選擇。 安裝Nginx,寫這麼詳細原來真的很累
sudo apt-get install nginx
家用網絡通常都是封80端口,所以得修改默認端口 編輯文件:/etc/nginx/sites-available/default nginx配置 圖中的8080便是新的監聽端口,在看下紅色線標記處,得知網頁文件存放位置 修改完配置後需要重新nginx服務,命令不寫 [su_note note_color="#4bd3f8" radius="1"]也不一定要用Nginx,也可以用Apache神馬的[/su_note] 這裡我用的是Yaaw,下載源代碼
git clone https://github.com/binux/yaaw.git
下載源代碼 如果無法訪問GitHub或者速度很慢,你得科學上網,至於如何在命令行下用代理,我會新開一篇文章來說,連接在這 接著把yaaw文件下的所有東西複製到/usr/share/nginx/www,也就是上面得知的位置,还有一点需要注意,此目录里的文件是铁定不能有可执行权限的
sudo cp -r yaaw/* /usr/share/nginx/www/
cp -r 意味递归复制该目录下所有的子目录和文件,目標位置必須也是個文件夾 喲西~就差最後一步,打開http://樹莓派IP地址:8080,如無意外,應該看到下面這個界面 主界面 但是現在還不能添加任務,得先配置~~點出配置界面,填上你的樹莓派IP地址 網頁配置 保存並刷新頁面,如果連接不上會有相關提示信息,得自己檢查下 至此,已經完成本文標題全部內容,以下部分可做可不做

DDns配置

上面配置都是基于跟樹莓派同處壹個局域網,做不到遠程控制下載任務,還不能最大化利用空閑帶寬雲雲 如果沒有自己域名,可以找下花生殼、3322等動態域名商,很多路由器都支持此類服務,不知道爲什麽家裏的TP-Link經常更新不到花生殼的IP地址,非得軟件更新,蛋疼~~ 3322(原來這貨叫“公雲”)有windows客戶端,即使在Linux系統下也只需定時訪問下指定URL即可做到更新IP地址,雖然我用的是免費服務,穩定性還是不錯的 那麽對于已經有自己域名的朋友來說,嗯~毫無疑問,必須優先使用自己的二級域名,我才不會學聯通,搞壹堆不同域名,有些聽都沒聽過,莫名其妙 我的域名托管在DNSPod,找下官方幫助文檔,已經有現成的python程序,嗯~伸手黨的福音,趕緊下載代碼
git clone https://github.com/leeyiw/dnspod_ddns.git
根據說明文檔改好賬戶、密碼、二級域名和域名,這部分屬于額外內容,不詳細說,上地址自己看文檔,不懂再找我 做好動態域名,還得在路由器上做好端口映射(話說現在家家基本上都有WIFI),稍等下域名更新,直接打開http://妳的域名:8080,妳就會看到熟悉的界面了 這樣也可以把SSH的22端口映射上去,外網連接樹莓派沒壓力,不過開放22端口難免會被掃端口和暴力爆破,可以通過修改SSH默認端口或者關閉密碼認證,也可以安裝Fail2ban這類軟件自動屏蔽攻擊IP 基本上修改下端口就可以擋掉90%攻擊,之前寫過壹個腳本來做屏蔽,發現大部分都是整個IP段,看看淘寶上賣的支持掃描服務器就知道是什麽情況~~~ 關于SSH安全問題,網上已經有教程,不再詳述

日常使用

過年的時候,聯通搞了個活動,廣東省可免費提速至20M,對于用了N年4M小水管的人來說,這簡直就是天上掉餡餅。仔細壹看,3月15號截止,不過每個月可以免費用30小時!!這餡餅味道有點問題 不知道聯通是怎麽想的,要加速必須開著客戶端,意味著手機用WIFI也要體驗20M速度的話就必須開著電腦,反人類設計,阻礙人類社會發展......燒死妳這個異教徒^-^ 監聽工具走起,看看會不會很複雜,要是HTTP控制的話(在Linux下用TCP還不大會),應該可以用樹莓派做,這貨必須24小時開著 原先打算放上源代碼,後來想想還是不要,最好妳們自己去做,很簡單的,中間如果妳發現了些莫名其妙的事情,不要來問我,我什麽都不知道 蛋扯完了,說點正事 壹開始硬盤還沒格式化成EXT4還是NTFS的時候,直接拿來用,那時候帶寬還是6M,滿速下載CPU直接100%,還是在超頻狀態下~~~正如網上說用NTFS格式性能確實很大影響 在上張提升20M帶寬且格式化EXT4的下載情況,不然無圖無真相,說我欺負妳們讀書少 下載情況 但即使不使用NTFS格式,跟电脑的下载速度还是差一点(2.9M左右),而且波动稍微有点大(100K-200K范围),电脑下载可以稳定跑到3.2M/S 那问题来了,为了达到最大速度而格式化成EXT4,却又不能通过树莓派读取文件,只好拔下直接插在电脑上~~USB Hub的作用就在这 电脑是Linux系统倒是没什么问题,毕竟我是.NET程序员,逃不了windows平台,出来吧~ext2fsd 插上你的硬盘,才不管你是接在主板上还是USB上~~打开软件就能看见那个没盘符的磁盘,文件系统也会显示etx3(即使是etx4),软件使用起来也不难,只需要注意读写保护,自动挂载和删除无效盘符,其他的不用管~~这样直接接电脑反而可以不用忍受树莓派那100M网络的限制,USB3.0爽得飞起