树莓派的一大用途就是作为下载服务器,毕竟一直开着电脑下载还是挺费电的。而且电脑上也不方便共享。基于树莓派搭建一个下载服务器,在用 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-username
和rpc-password
配置 Web 管理界面用户名和密码,密码直接写明文即可,reload
后会自动加密 - 设置
"watch-dir": "/data/transmission/torrents"
,即监视某个目录下的种子文件,自动开始下载 - 路由器需要做 NAT 开放
peer-port
设置的端口。
另外,可以通过 https://github.com/AndrewMarchukov/tracker-add
项目来优化下载。
aria2
aria2 主要用于多线程下载 HTTP 直链文件。远程下载可以通过 AriaNg 来实现。
aria2 参考配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#后台运行 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[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 配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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 密钥之后就可以使用了。
DLNA
安装 minidlna
。然后通过 /etc/minidlna.conf
来配置,主要关注以下配置:
1 2 3 4 5 6 7 8 |
# 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
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
[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 |
添加用户:
1 2 |
useradd user smbpasswd -a user |
另外要注意 Samba 所在盘要用 xfs
或者 ext4
文件系统,不要用 ntfs
,在Linux上 ntfs-3g
速度比较慢,大约只有 xfs
的一半。
(全文完)
发表回复