惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
Y
Y Combinator Blog
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
博客园_首页
大猫的无限游戏
大猫的无限游戏
美团技术团队
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
小众软件
小众软件
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园 - 【当耐特】
J
Java Code Geeks
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
Stack Overflow Blog
Stack Overflow Blog
博客园 - 司徒正美

Comments for Cocoa

Rust Learning from Zero (23) —— The OwO software distribution system! Rust Learning from Zero (22) —— SSL certificates management and distribution with Rust 最近 | Cocoa 留言☆〜(ゝ。∂) | Cocoa 我们可以有无任何监管或审核的自由 App Store / Market 吗? iPad 与 Raspberry Pi 4 通过 Type-C 直连 —— SSH 篇 在 Raspberry Pi 4 上编译 64-bit 的 MongoDB Server Brainfuck Interpreter in C++17——A Modern Approach to Kill Your Brain
在 CentOS 7 中编译安装 Aria2
ryza · 2020-03-15 · via Comments for Cocoa

以前自己折腾的时候主要是 Ubuntu / Debian,自己有记录一份 Ubuntu / Debian 下 Aria2 的编译安装流程~不过 CentOS 的话,因为是 RedHat 系,所以有蛮多不一样的地方,于是就一边摸索一边记录下来了~

那么第一步就是安装各种依赖了,当然还有 autotools 和 libtool 也是需要的/

sudo yum install expat-devel libssh2-devel libxml2-devel \
     c-ares-devel zlib-devel gnutls-devel nettle-devel \
     gmp-devel libsqlite3x-devel automake autoconf \
     gettext-devel libtool

第二步则是安装 GCC 8.0 了喵~因为 Aria2 需要 C++14 的编译支持,而 CentOS 默认的似乎是 GCC 4.9.0 的样子

sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++

安装好之后,就可以先切换到 GCC 8.0 的环境下来操作了/

sudo scl enable devtoolset-8 -- zsh

第三步就很简单了,git clone 下来 Aria2 的 repo,然后正常编译安装就好~

git clone --depth=1 https://github.com/aria2/aria2.git cd aria2 autoreconf -i && ./configure --enable-libaria2 && \
     make -j`nproc` && sudo make install

下面就来到了第四步~这里假设希望的 Aria2 的下载目录和 session 目录都是 /mnt/vdb/aria2~先创建名为 aria2 的用户和 group,然后创建好对应的下载目录和 session 文件,并且将下载目录和 session 文件的所属用户和所属组都设置为 aria2,同时设置 aria2 用户和组对该下载目录可读可写。

sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --user-group aria2
sudo mkdir -p /mnt/vdb/aria2 && sudo touch /mnt/vdb/aria2/.aria2.session
sudo chown -R aria2:aria2  /mnt/vdb/aria2
sudo chmod -R 664 /mnt/vdb/aria2

当然为了方便,可以将自己也加入到 aria2 组里~

sudo usermod -a -G "$(whoami)"

然后将 Aria2 的配置文件放到 /mnt/vdb/aria2.conf

cat <<EOF | sudo tee /mnt/vdb/aria2/aria2.conf
dir=/mnt/vdb/aria2
disk-cache=128M
file-allocation=trunc
continue=true
max-concurrent-downloads=10
max-connection-per-server=16
min-split-size=1M
split=32
max-overall-download-limit=0
max-download-limit=0
disable-ipv6=true
input-file=/mnt/vdb/aria2/.aria2.session
save-session=/mnt/vdb/aria2/.aria2.session
save-session-interval=60
enable-rpc=true
rpc-listen-all=true
rpc-allow-origin-all=true
rpc-listen-port=23333
rpc-secret=YOUR_SECRET
follow-torrent=true
bt-max-peers=1024
enable-dht=true
bt-save-metadata=true
EOF

其中,高亮部分则是用于 RPC 连接 Aria2 时的 secret,假如 Aria2 运行在 1.2.3.4:23333 上的话,在设置了 rpc-secret 之后,就是使用

http://token:[email protected]:23333/jsonrpc

这个地址去连接~

不过不要忘了设置 CentOS 的防火墙~

sudo firewall-cmd --zone=public --add-port=23333/tcp --permanent
sudo firewall-cmd --reload

如果觉得 HTTP API 不安全的话,还可以利用 Lets Encrypt 申请一份 SSL 证书~具体如何申请证书这里就不作赘述了~

假设证书在 /etc/example.com/fullchain.pem,而对应的私钥在 /etc/example/privkey.pem,那么在 Aria2 的配置文件里加入以下几行就可以~

rpc-secure=true
rpc-certificate=/etc/example.com/fullchain.pem
rpc-private-key=/etc/example.com/privkey.pem

此时 RPC 方式连接 Aria2 就是

https://token:[email protected]:5678/jsonrpc

最后的话,可以设置 Aria2 的 systemd 服务~

cat <<EOF | sudo tee /etc/systemd/system/aria2.service
[Unit]
Description=Aria2
After=network-online.target

[Service]
User=aria2
ExecStart=/usr/local/bin/aria2c --conf-path=/mnt/vdb/aria2/aria2.conf
RestartSec=5
Restart=always

[Install]
WantedBy=multi-user.target
EOF

最后启用并且 start 就没问题了w

sudo systemctl enable aria2
sudo systemctl start aria2
sudo systemctl status aria2

いまが最高!