zoukankan      html  css  js  c++  java
  • 树莓派实现一个下载机


    这回又买了一块树莓派,这次用的是B+。树莓派做BT下载器的特性就是省电啊。

    原来想买一个路由器刷openwrt,后来觉得路由器可能性能有限,而且稍有不慎会刷坏uboot,所以暂且不考虑了。



    搭建过程网上都有,但是很零碎,这里整理一下步骤,下面分为几个步骤吧:


    准备工作

    拿到树莓派后,烧写官方的镜像(2014-09-09-wheezy-raspbian.zip)到一张TF卡(我用的8GB的sandisk)。

    然后插到树莓派卡槽,最后加电启动。



    开机启动后树莓派会自动打开SSH的功能,将树莓派用网口插到路由器上,然后从路由器上看树莓派的IP地址,

    最后用电脑连接到树莓派(SSH)。

    一开始要运行一下配置,扩大树莓派的根目录的空间,不然所有软件装完之后空间会只剩几百兆。

    sudo raspi-config

    一般选择第一项就可以了。


    另外要提一下,树莓派默认的登录名和密码是:

    username:pi
    password:raspberry


    另外,需要升级一下软件源,并且安装vim:

    sudo apt-get update
    sudo apt-get install vim



    格式化U盘

    格式化U盘为ext4格式,以提高性能。

    第一次挂载U盘时请使用 


    sudo fdisk -l


    格式化:

    mkfs.ext4 -m 1 /dev/sda1

    其中/dev/sda1 是找到的U盘,一般在Ubuntu下面找到的是/dev/sdb,不知道为什么这里会显示sda


    先找到U盘,然后将它挂到你需要的目录里面去。



    自动挂载U盘

    目前移动硬盘不够用,先用U盘来试水。将U盘重命名为U1,然后编辑/etc/fstab:

    proc            /proc           proc    defaults          0       0
    /dev/mmcblk0p1  /boot           vfat    defaults          0       2
    /dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
    LABEL=U1	/home/pi/HDD	ext4	defaults	0	0
    可以看出最后多加了一行,用label的好处就是如果要将U盘换成移动硬盘的话设置好卷标就行了。

    其中/home/pi/HDD这个目录不要忘记创建了,而且挂载上去后设置好777权限。

    建立samba


    如果要从树莓派拷贝文件,必须建立一个文件共享的方案。这里建立起一个samba(感觉ftp也可以)

    sudo apt-get install samba samba-common-bin 


    其中,samba-common-bin 是用来检测samba是否正常的软件,也可以不安装。

    编辑samba的配置文件:
    sudo vim /etc/samba/smb.conf 

    在最后添加一项自己的定义项:
    [mydata]
            comment = my own data
            path = /home/pi/HDD
            browseable = yes
            read only = no

    然后新建一个samba用户:

    注意,samba用户必须是一个linux用户,samba用户的密码和linux用户的密码不一样。

    这里偷个懒,直接将pi添加为samba用户:

    pi@raspberrypi /etc/samba $ sudo smbpasswd -a pi
    New SMB password:
    Retype new SMB password:
    Added user pi.

    最终的效果如下,可以用windows访问树莓派了(用户名和密码是上面自己设置的):





    安装下载工具

    sudo apt-get install aria2 

    装好之后就开始准备配置文件(按需要自己修改吧,目前我自行修改成这个样子):

    #允许rpc
    enable-rpc=true
    #允许所有来源, web界面跨域权限需要
    rpc-allow-origin-all=true
    #允许非外部访问
    rpc-listen-all=true
    #最大同时下载数(任务数), 路由建议值: 3
    max-concurrent-downloads=20
    #断点续传
    continue=true
    #同服务器连接数
    max-connection-per-server=5
    #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
    min-split-size=10M
    #单文件最大线程数, 路由建议值: 5
    split=10
    #下载速度限制
    max-overall-download-limit=0
    #单文件速度限制
    max-download-limit=0
    #上传速度限制
    max-overall-upload-limit=30K
    #单文件速度限制
    max-upload-limit=0
    #断开速度过慢的连接
    #lowest-speed-limit=0
    #验证用,需要1.16.1之后的release版本
    #referer=*
    input-file=/home/pi/HDD/aria2/aria2.session
    save-session=/home/pi/HDD/aria2/aria2.session
    #定时保存会话,需要1.16.1之后的release版
    save-session-interval=60
    #文件保存路径, 默认为当前启动位置
    dir=/home/pi/HDD/download
    #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
    #disk-cache=0
    #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
    #enable-mmap=true
    #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
    #所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
    file-allocation=prealloc
    
    #启用本地节点查找
    bt-enable-lpd=true
    
    
    #单种子最大连接数
    #bt-max-peers=55
    #强制加密, 防迅雷必备
    #bt-require-crypto=true
    #当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT
    follow-torrent=true
    #BT监听端口, 当端口屏蔽时使用
    #listen-port=6881-6999
    
    disable-ipv6=true
    
    
    log=/home/pi/HDD/aria2/aria2.log
    log-level=notice
    
    #添加额外的tracker
    bt-tracker=
    http://121.14.98.151:9090/announce,
    http://121.14.98.151:9090/announce,
    http://anisaishuu.de:2710/announce,
    http://bigfoot1942.sektori.org:6969/announce,
    http://bt.careland.com.cn:6969/announce,
    http://bt2.careland.com.cn:6969/announce,
    http://exodus.desync.com/announce,
    http://exodus.desync.com:6969/announce,
    http://hdreactor.org:2710/announce,
    http://i.bandito.org/announce,
    http://open.nyaatorrents.info:6544/announce,
    http://shadowshq.yi.org:6969/announce.php,
    http://siambit.org/announce.php,
    http://tracker.bestxl.com:8077/announce,
    http://tracker.nwps.ws:6969/announce,
    http://tracker.trackerfix.com/announce,
    http://tracker.trackerfix.com:80/announce,
    http://tracker1.torrentino.com/announce,
    http://tracker1.wasabii.com.tw:6969/announce,
    http://tracker2.torrentino.com/announce,
    http://tracker3.torrentino.com/announce,
    udp://12.rarbg.me:80/announce,
    udp://9.rarbg.com:2710/announce,
    udp://9.rarbg.me:2710/announce,
    udp://bt.rutor.org:2710,
    udp://coppersurfer.tk:6969/announce,
    udp://eddie4.nl:6969/announce,
    udp://exodus.desync.com:6969,
    udp://explodie.org:6969/announce,
    udp://open.demonii.com:1337,
    udp://open.demonii.com:1337/announce,
    udp://shadowshq.yi.org:6969/announce,
    udp://tracker.coppersurfer.tk:6969/announce,
    udp://tracker.ex.ua:80/announce,
    udp://tracker.istole.it:6969,
    udp://tracker.istole.it:80,
    udp://tracker.istole.it:80/announce,
    udp://tracker.istole.it:80/announcea,
    udp://tracker.leechers-paradise.org:6969/announce,
    

    其中,tracker不知道有没有生效,我将此配置文件放在/home/pi/HDD/aria2

    从windows里面看就是这个样子:




    开启aria2:

    sudo aria2c --conf-path=/home/pi/HDD/aria2/aria2.conf
    

    这里让它在前台运行,要在后台运行的话请在后面加一个'&'


    安装LAMP Web server


    安装这些软件是为了aria2准备一个服务器环境。

    sudo apt-get install apache2
    sudo apt-get install mysql-server
    sudo apt-get install php5
    sudo apt-get install php5-mysql
    

    实际上,mysql用不着安装


    安装完之后就可以用浏览器直接访问树莓派的IP地址,看到

    “It works!” 

    这个字样就可以了。

    安装aria2 前端


    实际上,上面安装的aria2是命令行运行的,用起来不方便,这里下载一个做好的前端:

    http://github.com/ziahamza/webui-aria2

    一般人download zip就可以了,用不着用git下载。

    然后将此物传到samba,再解压到/var/www。
    比如解压好的是/var/www/myweb, 这样就可以访问树莓派的IP地址,后面再加上/myweb 就可以访问了。



    使用aria2

    使用过程就不用详谈了,这里可以添加三种下载的方式:





    这篇博客是搭建完毕之后写的,不知道有没有的漏的,有的话请提出来。


  • 相关阅读:
    Codeforces 678E 状压DP
    Codeforces 667C DP
    POJ 3017 DP + 单调队列 + 堆
    Codeforces 1154F (DP)
    Codeforces 1154G 枚举
    Codeforces 1153D 树形DP
    Codeforces 1109E 线段树
    Codeforces 1109C 线段树
    Codeforces 1109D (树的计数问题)
    async/await
  • 原文地址:https://www.cnblogs.com/tanhangbo/p/4282597.html
Copyright © 2011-2022 走看看