今天尝试在树莓派安装Aria2,下载到移动硬盘。过程中遇到很多问题,在此记录。

安装

1、安装Aria2

apt-get install aria2

2、安装Nginx

安装Nginx是为了反代Aria2的Jsonrpc接口,为其添加HTTPS证书。因为常用的Webui,比如这个,使用了HTTPS,如果Aria2的接口使用HTTP的话,会发生MixedContent错误,被Chrome拦截,无法连接。

apt-get install nginx

3、配置Aria2

这里有一个配置文件,其中的file-allocation改成none。否则下载文件时,将无法分配磁盘空间。Log中显示fallocate failed. cause: Operation not supported
增加以下配置项目:

log=/var/log/aria2.log
log-level=error

其他根据需要改动。
配置完成,运行aria2c --conf-path=/etc/aria2.conf -D,将aria2后台运行。

4、配置Nginx

/etc/nginx/conf.d/里面新建一个aria2.conf文件。
自行修改域名和证书文件路径。

server{
    server_name 域名;
    listen 443 ssl;
    ssl on;
    ssl_certificate /etc/ssl/证书文件.cer;
    ssl_certificate_key /etc/ssl/证书密钥.key;
    location /jsonrpc {
        proxy_pass  http://127.0.0.1:6800/jsonrpc;
        proxy_redirect     off;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

完成后运行命令nginx -s reload使新的配置生效。

5、下载FRP

  • 这里下载FRP最新版的ARM文件。文件名类似于frp_版本号_linux_arm.tar.gz
  • 此处提供版本号为0.21.0的文件下载。点此下载
  • 解压文件,放到/home/frp文件夹下

    mkdir /home/frp
    cd /home/frp
    wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm.tar.gz
    tar zxf frp_0.21.0_linux_arm.tar.gz
    mv frp_0.21.0_linux_arm/* .
    chmod +x frpc

6、配置FRP

此处使用一个大佬提供的免费FRP服务,http://freenat.win/
新建一个myfrp.conf文件,修改以下配置文件后输入。
remote_port可能被占用,换一个即可。

[common]
server_addr = freenat.club
server_port = 7000
token = frp888

#开启树莓派ssh端口转发,不需要的可以不开
[my_pi_ssh]
privilege_mode = true
type = tcp
local_ip = 127.0.0.1
local_port = 22
use_gzip = true
use_encryption = true
authentication_timeout = 0
#如被占用,则自行选择一个空闲的端口
remote_port = 10090

#开启Aria2接口转发
[my_aria2_web]
type = http
local_ip = 127.0.0.1
local_port = 443
custom_domains = 你的域名

7、运行FRP

新建一个窗口来运行。

apt-get install screen -y
screen -R frp
cd /usr/local/frp
./frpc -c myfrp.conf

如果输出类似以下内容,并且没有报错,表示启动成功。同时按Ctrl、A、D三个键离开当前窗口。

root@raspberrypi:/usr/local/frp# ./frpc -c myfrp.conf
2018/10/10 04:42:05 [I] [proxy_manager.go:300] proxy removed: []
2018/10/10 04:42:05 [I] [proxy_manager.go:310] proxy added: [evan_pi_ssh my_aria2_web]
2018/10/10 04:42:05 [I] [proxy_manager.go:333] visitor removed: []
2018/10/10 04:42:05 [I] [proxy_manager.go:342] visitor added: []
2018/10/10 04:42:05 [I] [control.go:246] [***] login to server success, get run id [***], server udp port [7001]
2018/10/10 04:42:05 [I] [control.go:169] [***] [my_aria2] start proxy success
2018/10/10 04:42:05 [I] [control.go:169] [***] [my_pi_ssh] start proxy success

8、完结撒花

打开浏览器访问https://你的域名/jsonrpc?callback=1,出现以下提示表示成功。

{"id":null,"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Request."}}

管理命令

  • 进入FRP的窗口
    screen -ls查看窗口列表,screen -r 821或者screen -r frp进入窗口。按Ctrl+A+D,离开窗口。

    root@raspberrypi:~# screen -ls
    There are screens on:
  • Sockets in /run/screen/S-root.

  • 查看Aria2日志
    tail /var/log/aria2.log -f,这个命令会刷新新增的内容,按Ctrl+C退出。
  • 重启Aria2
    ps -aux | grep aria2找到Aria进程的PID。
root@raspberrypi:~# ps -aux | grep aria2
root      2743 16.8  4.0  53440 17980 ?        Ss   05:08  12:48 aria2c --conf-path=/etc/aria2.conf -D
root      3069  0.0  0.4   4364  1804 pts/3    S+   06:24   0:00 grep aria2

上面示例中的pid就是2743。结束并重启。

kill 2743
aria2c --conf-path=/etc/aria2.conf -D
文章目录