之前提到过(详见之前这篇文章)Aria2具有JSON-RPC/XML-RPC操控接口,因此大多数图形化界面都是以此接口开发的。在这里以AriaNg为例,介绍图形化界面的部署。

AriaNg是什么

AriaNg 是一个让 aria2 更容易使用的现代 Web 前端. AriaNg 使用纯 html & javascript 开发, 所以其不需要任何编译器或运行环境. 您只要将 AriaNg 放在您的 Web 服务器里并在浏览器中打开即可使用. AriaNg 使用响应式布局, 支持各种计算机或移动设备.

引自其官方仓库 https://github.com/mayswind/AriaNg

官方并没解释Ng是什么意思,个人猜测可能是Next Generation?

AriaNg的安装

AriaNg作为一个纯HTML与Javascript语言的静态网页型应用,自然部署不是什么特别大的问题。预编译包提供标准版本(分为index.html与一系列css、js文件)和单文件版本(所有css,js,图片文件全部写进index.html)。单文件版本适合本地使用,而标准版本适合服务器部署。难点可能要数如何控制AriaNg与Aria2c的交互。

1. 配置网页服务器

此处提供一个Nginx的范例,可供局域网内使用。

server {
        listen 80;
        listen [::]:80;
        server_name _;

        location / {
                root /var/www/aria2;
                index index.html;
                try_files $uri $uri/ =404;
        }
}

此外也可以选择使用OSS+CDN托管,作为公共服务。

2. 代理Aria2c的RPC端口

如果只是在局域网里使用,只要放开aria2c默认的6800端口上的防火墙就可以了。但是如果只是在局域网里使用,那aria2c相对其他软件的优势也就体现不出来了(特指某迅雷)。因此肯定要将aria2c的RPC端口开放到公网,然后用aria2c的token保护这个端口,或者用些其他的方法。

不过好在XML-RPC也好,JSON-RPC也好,都是建立在HTTP应用层之上的。也就是说可以把它当成普通的Web服务端口,用各类网页服务器做反向代理。下面提供一个反向代理的例子:

server {
        listen 80;
        listen [::]:80;
        server_name _;

        location =/jsonrpc {
                # 这里填写正确的反向代理位置
                # 假设你内网穿透到公网服务器的6800端口上
                proxy_pass              http://localhost: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;
                # 使Nginx支持WebSocket反向代理
                proxy_http_version 1.1;
                proxy_set_header        Upgrade         $http_upgrade;
                proxy_set_header        Connection      "upgrade";
        }

        location / {
                return 404;
        }
}

那么到这里有些同志会问,直接防火墙开放公网服务器的6800端口不就好了吗?需要注意的是,默认情况下aria2c的RPC端口是HTTP协议的,即明文传输。如果需要aria2c方面开启SSL,需要在aria2c.conf中配置SSL证书。这么配置证书,难倒是不难;就是通常免费的SSL证书有效期有限,你总是要去换证书,而换证书这个操作,要自动化得要费点力气。

使用Nginx等网页服务器配置的好处在于,当你写完HTTP反向代理的配置文件之后,并且做完域名解析,使用certbot一键就能开启SSL并将所有非SSL流量重定向到SSL上(当然视情况可能需要按三次回车键吧),证书的更新将由后台的服务自动更新。如此一来,已经没有什么好怕的了。

3. 正确设置AriaNg连接参数

当使用 certbot 将所有流量都引导至SSL之后,Aria2 RPC 的地址中协议要设置为 https 或者 wss ,端口要设置为443。通常还要设置 Aria2 RPC 密钥为aria2c.conf中的 rpc-secret 项所对应的值 。

需要注意的是HTTP下的AriaNg可以用SSL上的RPC;而HTTPS下的AriaNg,如果不使用SSL上的RPC则会被视为混合内容,通常会被浏览器阻止。

至此Aria2c的图形化界面就算完成了
■QED

留下评论