树莓派:Frp+Aria2+Nginx远程下载

Frp内网穿透+Aria2 BT下载器+Nginx反代,实现远程下载,这样就不会浪费寝室的宽带了,断网之后就可以直接看下载下来的视频了。

Aria2

安装Aria2

1
2
sudo apt update
sudo apt install aria2

创建配置文件

1
2
3
sudo mkdir /etc/aria2
sudo touch /etc/aria2/aria2.conf /etc/aria2/aria2.session
sudo vim /etc/aria2/aria2.conf

配置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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#文件的保存路径(可使用绝对路径或相对路径),默认:当前启动位置
dir=/media/pi/
#启用磁盘缓存,0为禁用缓存,需1.16以上版本,默认:16M
disk-cache=32M
#文件预分配方式,能有效降低磁盘碎片,默认:prealloc,NTFS建议使用falloc,EXT3/4建议trunc,MAC下需要注释此项
#预分配所需时间:none < falloc ? trunc < prealloc,falloc和trunc则需要文件系统和内核支持
file-allocation=none
#断点续传
continue=true
#最大同时下载任务数,运行时可修改,默认:5
max-concurrent-downloads=4
#同一服务器连接数,添加时可指定,默认:1
max-connection-per-server=4
#最小文件分片大小,添加时可指定,取值范围1M -1024M,默认:20M
min-split-size=10M
#单个任务最大线程数,添加时可指定,默认:5
split=4
#整体下载速度限制,运行时可修改,默认:0
#max-overall-download-limit=0
#单个任务下载速度限制,默认:0
#max-download-limit=0
#整体上传速度限制,运行时可修改,默认:0
#max-overall-upload-limit=0
#单个任务上传速度限制,默认:0
#max-upload-limit=0
#禁用IPv6,默认:false
disable-ipv6=true
#从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
#在Aria2退出时保存错误/未完成的下载任务到会话文件
save-session=/etc/aria2/aria2.session
#定时保存会话,0为退出时才保存,需1.16.1以上版本, 默认:0
#save-session-interval=60
#启用RPC,默认:false
enable-rpc=true
#允许所有来源,默认:false
rpc-allow-origin-all=true
#允许非外部访问,默认:false
rpc-listen-all=true
#RPC监听端口,端口被占用时可以修改,默认:6800
rpc-listen-port=6800
#设置的RPC授权令牌,v1.18.4新增功能,取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=123456
#rpc-secret=<TOKEN># 设置的RPC访问用户名,此选项新版已废弃,建议改用 --rpc-secret 选项
#rpc-user=<USER># 设置的RPC访问密码,此选项新版已废弃,建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
#事件轮询方式,取值:[epoll, kqueue, port, poll, select],不同系统默认值不同
#event-poll=select
#当下载的是一个种子(以.torrent结尾)时,自动开始BT任务,默认:true
#follow-torrent=true
#BT监听端口,当端口被屏蔽时使用,默认:6881-6999
listen-port=51413
#单个种子最大连接数:默认:55
#bt-max-peers=55
#打开DHT功能,PT需要禁用,默认:true
enable-dht=false
#打开IPv6 DHT功能,PT需要禁用
enable-dht6=false
#DHT网络监听端口,默认:6881-6999
#dht-listen-port=6881-6999
#本地节点查找,PT需要禁用,默认:false
#bt-enable-lpd=false
#种子交换,PT需要禁用,默认:true
enable-peer-exchange=false
#每个种子限速,对少种的PT很有用,默认:50K
#bt-request-peer-speed-limit=50K
#客户端伪装,PT需要
peer-id-prefix=-ND2017-
user-agent=Transmission/4.1
#当种子的分享率达到这个数时,自动停止做种,0为一直做种, 默认:1.0
seed-ratio=0
#强制保存会话,即使任务已经完成,默认:false,较新的版本开启后会在任务完成后依然保留.aria2文件
force-save=true
#BT校验相关,默认:true
#bt-hash-check-seed=true
#继续之前的BT任务时,无需再次校验,默认:false
bt-seed-unverified=true
#保存磁力链接元数据为种子文件(.torrent文件),默认:false
bt-save-metadata=true

测试运行Aria2

1
2
3
4
5
#测试启动Aria2,如果没有提示任何错误信息可以Ctrl + C停止
sudo aria2c --conf-path=/etc/aria2/aria2.conf

#以Daemon的形式后台运行Aria2
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

开机自启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
sudo nano /etc/init.d/aria2c

内容如下:

#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO

case "$1" in
start)
echo "Starting aria2c..."
sudo -u pi aria2c --conf-path=/etc/aria2/aria2.conf -D
;;
stop)
echo "Stopping aria2c..."
killall aria2c
;;
restart)
$0 stop && sleep 3 && $0 start
;;
esac
exit
1
2
3
4
sudo chmod +x /etc/init.d/aria2c

#添加开机启动
sudo update-rc.d aria2c defaults

aria2的web管理界面–AriaNg

1
2
3
4
# 下载aira-ng
wget https://github.com/mayswind/AriaNg/releases/download/0.4.0/aria-ng-0.4.0.zip -O aira-ng.zip
# 解压到`/var/www'目录下
unzip aira-ng.zip -d aira-ng

Frp

我在这一篇文章中也有写frp的相关内容,大家可以作为参考。

frp穿透内网访问树莓派上的web站点

同样的,也只需看其中frp的部分即可。

下面我放出我的配置文件,具体网上的参考很多

配置frpc.ini

1
2
bind_port = 7000
vhost_http_port = 80

配置frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[common]
server_addr = 服务器IP
server_port = 7000

[ssh1]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 5000

[web1]
type = http
local_port = 80
custom_domains = test.lihtao.com

[web2]
type = http
local_port = 2000
custom_domains = aria2.lihtao.com

frp是可以配置多站点的,并且是以名称来区分的,比如上面的web1和web2

Nginx

Nginx的安装配置

nginx的安装配置可以看我的这几篇文章,写的比较详细。

将Hexo部署到vps,实现自动发布

Ngixn同vps配置多站点(含SSL)

Nginx反向代理

大家只需看其中nginx的部分即可,其它可以略过

配置反向代理

只需在server部分添加如下模块:

1
2
3
4
5
6
location / {
proxy_pass http://127.0.0.1:6800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

server部分的完整配置如下:

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
server {
listen 80;
server_name test.lihtao.com;

location / {
root /var/www/blog;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

server {
listen 2000;
server_name aria2.lihtao.com;

location / {
proxy_pass http://127.0.0.1:6800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

server {
listen 6800;
server_name localhost;

location / {
root /var/www/aira-ng;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

配置完成后只需重启nginx即可。

Samba

samba的安装配置可以参考这篇文章

树莓派常见问题总结

效果展示

首先在浏览器中输入网址,这里我们输入:aria2.lihtao.com

效果如下:

这里还需要一些配置

为了清楚一点,我以图片的形式展示

好像只能下载磁力链接。

Donate comment here
-------------本文结束感谢您的阅读-------------
0%