【树莓派笔记】搭建下载服务

树莓派的一大用途就是作为下载服务器,毕竟一直开着电脑下载还是挺费电的。而且电脑上也不方便共享。基于树莓派搭建一个下载服务器,在用 Samba 共享出去,所有设备都能使用远程下载服务和 NAS 服务。配合 DLNA,电视投影仪之类的设备也能方便的播放 NAS 上的高清电影。

transmission

BT 下载首选 transmission,自带一个 web 管理界面。Ubuntu 上通过 apt 安装 transmission-daemon。以下是一些参考设置。

  • 配置文件在 /etc/transmission-daemon/settings.json
  • 通过web界面修改的重启daemon之后会被覆盖,因此应该在配置文件中修改,然后reload daemon systemctl reload transmission-daemon
  • 强制加密下载 "encryption": 2
  • Ubuntu 上 transmission 运行的用户默认是 debian-transmission,如果想让 Samba 用户能直接管理 BT 下载的文件,需要将 Samba 用户加入 debian-transmission 组,并且 transmission 里设置 umask 为 2,即让transmission 以 664 权限创建新文件:"umask": 2
  • 访问 Web 管理界面的 IP 白名单:"rpc-whitelist": "192.168.1.*"
  • 指定下载目录:"download-dir": "/data/transmission/downloads"
  • 通过 rpc-usernamerpc-password 配置 Web 管理界面用户名和密码,密码直接写明文即可,reload 后会自动加密
  • 设置 "watch-dir": "/data/transmission/torrents",即监视某个目录下的种子文件,自动开始下载
  • 路由器需要做 NAT 开放 peer-port 设置的端口。

另外,可以通过 https://github.com/AndrewMarchukov/tracker-add 项目来优化下载。

transmission

aria2

aria2 主要用于多线程下载 HTTP 直链文件。远程下载可以通过 AriaNg 来实现。

aria2 参考配置:

#后台运行
daemon=true
#rpc密钥,这个密钥就是rpc的密码,AriaNg 设置时会用到
rpc-secret=secret
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
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=0
#单文件速度限制
max-upload-limit=0
#文件保存路径, 默认为当前启动位置
dir=/data/aria2
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
#不进行证书校验
check-certificate=false
#保存下载会话
save-session=/home/user/.config/aria2/aria2.session
input-file=/home/user/.config/aria2/aria2.session
#断点续传
save-session-interval=60

使用 systemd 管理 aria2:

[Unit]
Description=Aria2
After=network.target

[Service]
User=user
Group=group
ExecStart=/usr/bin/aria2c --conf-path=/home/user/.config/aria2/aria2.config
ExecReload=/bin/kill -HUP $MAINPID
Type=forking
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

AriaNg 的 Nginx 配置:

server {
    listen 8080;
    root /data/wwwroot/ariang;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    access_log /data/log/nginx/ariang_access.log;
    error_log /data/log/nginx/ariang_error.log;

    server_name _;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}

然后访问 AriaNg,配置 rpc 密钥之后就可以使用了。

AriaNg

DLNA

安装 minidlna。然后通过 /etc/minidlna.conf 来配置,主要关注以下配置:

# A表示这个目录是存放音乐的,当minidlna读到配置文件时,它会自动加载这个目录下的音乐文件
media_dir=A,/samba/DLNA/Music
media_dir=P,/samba/DLNA/Picture
media_dir=V,/samba/DLNA/Video
# 配置minidlna的数库数据的存放目录
db_dir=/samba/DLNA/db
# 配置日志目录
log_dir=/samba/DLNA/log

支持 DLNA 的播放器:

  • Windows 10: windows media play, VLC
  • 安卓: VLC

Samba

安装 samba,配置文件在 /etc/samba/smb.conf

[global]
    # 控制连接数量,超过之后新连接将被拒绝
    max connections = 5
    # 白名单 
    hosts allow = 127. 192.168.1. 10.
   
    # logs split per machine
    log file = /data/log/samba/log.%m
    # max 50KB per log file, then rotate
    max log size = 50
    
    security = user
    passdb backend = tdbsam
    guest ok = no

    load printers = no
    cups options = raw

    #用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
    

    # Some other performace tuning options
    # disable links and symbol links
    follow symlinks = no
    wide links = no
    # enable some read/write tuning
    use sendfile = yes
    read raw = yes
    write raw = yes
    aio read size = 16384
    aio write size = 16384
    write cache size = 262144
    max xmit = 65536
    large readwrite = yes
    getwd cache = yes
    # disable locking, because only 2 share can be written.
    strict locking = no
    fake oplocks = yes
    oplocks = no

[homes]
    comment = Home Directories
    path = /data
    # 是否显示目录
    browseable = yes
    writable = yes
    create mode = 0664
    directory mode = 0775
    guest ok = no
    valid users = user

添加用户:

useradd user
smbpasswd -a user

另外要注意 Samba 所在盘要用 xfs 或者 ext4 文件系统,不要用 ntfs ,在Linux上 ntfs-3g 速度比较慢,大约只有 xfs 的一半。

(全文完)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注