N1如何完美刷入armbian系统教程

本文转载于 https://yuerblog.cc/2019/10/23/斐讯n1-完美刷机armbian教程/
介绍的比较详细了,我略微修改一下细节,增加一下相关文件下载渠道.

2020-12-15日补充,N1由armbian直刷openwrt,个人觉得openwrt带的功能更好的解决了瞎折腾,同样也可以使用docker,所以个人推荐直刷openwrt系统.

2020-12-13日补充内核升级,解决docker stop命令执行会引起系统重启.

  • 首先下载所需内核 https://pan.baidu.com/s/1BIjHHfi90Oa7Le91Q8gkOg 密码:02im,下载/N1_Openwrt/Armbian_buster_内核5.3.x(N1、贝壳云)/纯内核/amlogic目录下的boot-*modules-*的任意版本都行,然后上传到N1的 /opt 目录下.
cd /opt
tar -xzvf boot-5.4.28-amlogic-flippy-32+.tar.gz
tar -xzvf modules-5.4.28-amlogic-flippy-32+.tar.gz
cp vmlinuz-5.4.28-amlogic-flippy-32+ /boot
cp uInitrd-5.4.28-amlogic-flippy-32+ /boot
cp initrd.img-5.4.28-amlogic-flippy-32+ /boot # 可选
cp System.map-5.4.28-amlogic-flippy-32+ /boot  # 可选
cp config-5.4.28-amlogic-flippy-32+ /boot # 可选
cp -a 5.3.6-amlogic-flippy-9+ /lib/modules
cd /boot
cp vmlinuz-5.4.28-amlogic-flippy-32+ zImage
cp uInitrd-5.4.28-amlogic-flippy-32+ uInitrd
sync
#下面关闭看门狗
cat >> /etc/modprobe.d/99-local.conf <<EOF
blacklist meson_gxbb_wdt
EOF
#最后重启即可
reboot
#验证
uname -r

出处:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=958173&page=30#pid4980801 楼层:440

2020-04-29补充:历经半个月的使用,bug有卸载软件或者长时间下载会造成readonly file system,这个重启就好。但软件无法卸载。其它基本正常。

一、教程

怎么说呢?我被斐讯 N1 刷机 Armbian 活生生折腾了 4 个晚上,终于还是搞定了。

首先得恭喜你,运气好搜到了我的博客,否则你可能需要 8 个晚上,16 个晚上,甚至绝望。

我先说一下网上教程都坑在哪里:

  • 搞不清楚到底哪个 Armbian 内核版本好用(好用是指:稳定、低负载、各硬件驱动正常)。
  • 搞不清楚所选内核应该配套哪个 dtb 文件(或者不知道 dtb 是啥)。
  • 刷到 emmc 遇到各种诡异现象(例如:偶然上不去网、readonly、拔掉 U 盘后无法启动)。
  • 刷到 emmc 不正常,不知道如何正确重刷。

没错,我把所有坑都踩了一遍,累的我死去活来。

所以,你搜到我的博客算是真的走运了:

我会告诉你每一步怎么做,用什么版本,为什么会被坑。

主要是因为它比树莓派好。

网上实测 N1 性能超过树莓派 3B+,我觉得没必要实测了,因为计算性能本身就不是板子的强项,够用即可。

N1 的优势在于:

  • ARM64 主流架构,真 64 位 linux 系统,docker 随便玩。(Armbian 输出:Linux aml 5.0.2-aml-s905 #5.77 SMP PREEMPT Mon Apr 1 17:41:33 MSK 2019 aarch64 GNU/Linux)
  • 真千兆有线网口,2.4/5G 双频 wifi,可以作热点。
  • 自带 8G 的 emmc 存储,linux 系统直接刷到盒子里,不用额外插 SD 卡,I/O 性能好。
  • CPU 4 核,2G 内存。

唯一缺点:

  • USB2.0,显然是不配套千兆网口带宽的,磁盘将成为了下载电影的瓶颈。
  • 需要精力折腾,因为是小众社区来支持 N1 硬件适配到 Armbian 系统,安装过程缺乏标准化的方案。

全网只有拼多多售卖。

截止 2019 年 11 月份,全新未开封未刮 K 码的全新 N1,售价在 130 元左右,我建议大家还是买新的省心。

N1 目前处于炒作阶段,价格持续攀升,建议趁早购买。

注意:不需要买 USB 双公头刷机线,无论刷机还是重刷都是用不到的!

连接 HDMI、网线、电源,你会进入斐讯自带的安卓系统。

安卓系统的标准启动过程如下:

  • bootloader:斐讯针对该盒子硬件实现的类似 BIOS 的东西,它负责硬件的初始化,最终引导操作系统。
  • boot 分区:放着安卓操作系统的内核文件,由 bootloader 唤起,也就实现了进入操作系统的效果。
  • recovery 分区:类似于 WinPE 的东西,如果 boot 分区挂了,则可以通过 Recovery 方式进入一个临时的操作系统,然后恢复 boot 分区(类似于 ghost 做系统)。

问题就在于,bootloader 是斐讯针对盒子定制的,它设置了一些限制,比如:

  • 只能使用他家的安卓系统
  • 不支持 U 盘引导操作系统

所以呢,恩山论坛有一位叫做 webpad 的大神,修改了斐讯的 bootloader。

我们要做的,就是把 bootloader 覆盖到盒子里面去。

webpad 提供了工具,大家按照教程与工具:https://www.right.com.cn/forum/thread-340279-1-1.html,通过 adb 网络连接的方式刷入即可。

一台 N1 这辈子只需要做一次降级操作,后续不需要再研究这个问题了。

连接 USB 线刷的方式,除非你想玩电视系统,否则刷 Armbian 是不需要强制使用的。

刷 armbian 的整体逻辑如下:

  • 为了把 armbian 刷入 emmc 存储,我们首先得把 armbian 刷到 U 盘上,然后通过 U 盘引导进入 armbian 系统。
  • U 盘进入系统后,我们执行一个命令就可以把 armbian 系统的 boot 分区以及 rootfs 等等都 copy 到 emmc 上。
  • 一旦完成 emmc 刷写,此后 bootloader 就会直接读 emmc 中的 boot 分区,直接引导进入 armbian。

首先是选什么版本的 Armbian,以及替换哪一个 dtb 文件,我直接告诉大家结论:

Armbian 5.77 版本,使用 xiangsm 的 dtb 文件,这是恩山论坛的帖子:https://www.right.com.cn/forum/thread-510423-1-1.html

这是目前恩山论坛最新也是最广泛肯定的版本,大家就不要自己再折腾研究了。

至于 armbian 和 dtb 分别是什么来头,我简单说明一下:

  • armbian:直接来源于 armbian 的官方,armbian 其实就是 debian 发行版为 arm 架构适配后的版本。也就是说,恩山论坛是没有人去改动 armbian 系统代码的,是非常可靠的。
  • dtb:各种品牌的盒子千千万,每个盒子使用的网卡啊、cpu 芯片啊的型号千千万,armbian 内核为了能够和这些外设正常工作,就要求提供一种叫做 dtb 的描述文件,我理解就是针对各个硬件的驱动程序。
    • 为了让斐讯 N1 的各个硬件可以被 armbian 正常调度,所以需要给斐讯 N1 适配一套 dtb 文件。
    • dtb 文件需要随着内核编译,所以不同 armbian 内核版本必须使用配套的 dtb 文件。
    • 目前斐讯 N1 的 dtb 文件已经被 armbian 收录到官方源码库里,但是使用的时候 linux 负载会显示的很高,所以热心网友为 armbian5.77 编译了一个 fix 过的 dtb 文件。

armbian5.77 大家直接走我的网盘下载即可,因为从 armbian 官方下载非常慢:

链接: https://pan.baidu.com/s/1-7AmPhRkP1LKtqb6X7s9IA 提取码: sjp9 复制这段内容后打开百度网盘手机 App,操作更方便哦

现在将系统烧录到 U 盘。

armbian5.77 修改过的 dtb 文件从上面的帖子里下载,然后打开我的电脑 U 盘:

将 meson-gxl-s905d-phicomm-n1-xiangsm.dtb 文件放到 dtb/文件夹 下面,修改一下 uEnv.ini 文件指向它:

dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb
ethaddr=fc:7c:02:ea:75:4d #固定mac地址用

千万不要在安卓系统开机的情况下插入 U 盘,否则 U 盘中的文件权限会被安卓系统篡改!这不是一句废话!

千万不要在安卓系统开机的情况下插入 U 盘,否则 U 盘中的文件权限会被安卓系统篡改!这不是一句废话!

千万不要在安卓系统开机的情况下插入 U 盘,否则 U 盘中的文件权限会被安卓系统篡改!这不是一句废话!

补充:如果没有 USB 双公头线,那么将无法通过 webpad 降级工具的功能 3)触发 U 盘启动。

替代方法是下载 adb 工具,然后执行如下 2 个命令,即可确保支持 U 盘启动:

adb connect 斐讯 IP

adb shell reboot update

先让 N1 断电,然后插上 U 盘到靠近 HDMI 的 USB 口,然后通电即可进入 armbian 系统,启动过程中有一些看似报错的东西不需要理睬,属于正常。

默认root 1234登录即可。

ls -l / 确认一下目录权限没有被安卓篡改,都是 root 用户即可:

root@aml:~# ls -l /

total 84

drwxr-xr-x   2 root root  4096 Apr  1  2019 bin

drwxr-xr-x   6 root root 16384 Jan  1  1970 boot

drwxr-xr-x  17 root root  4100 Oct 22 21:46 dev

drwxr-xr-x  87 root root  4096 Oct 23 02:01 etc

drwxr-xr-x   2 root root  4096 Feb  3  2019 home

drwxr-xr-x  17 root root  4096 Apr  1  2019 lib

drwx------   2 root root 16384 Oct 22 20:17 lost+found

drwxr-xr-x   2 root root  4096 Oct 22 20:18 media

drwxr-xr-x   2 root root  4096 Oct 22 20:18 mnt

drwxr-xr-x   2 root root  4096 Apr  1  2019 opt

dr-xr-xr-x 137 root root     0 Jan  1  1970 proc

drwx------   5 root root  4096 Oct 23 10:12 root

drwxr-xr-x  20 root root   700 Oct 23 11:04 run

drwxr-xr-x   2 root root  4096 Apr  1  2019 sbin

drwxrwxr-x   2 root root  4096 Apr  1  2019 selinux

drwxr-xr-x   2 root root  4096 Apr  1  2019 srv

dr-xr-xr-x  12 root root     0 Jan  1  1970 sys

drwxrwxrwt   7 root root   160 Oct 23 12:00 tmp

drwxr-xr-x  10 root root  4096 Apr  1  2019 usr

drwxr-xr-x  12 root root  4096 Apr  1  2019 var

这一步非常坑!

网上都说执行 / root/install.sh 刷写 U 盘中的 armbian 到 emmc,但实际上这个脚本存在严重问题:

拔掉 U 盘后,首次 emmc 启动可以成功,再重启一次就无法进入系统了,应该是 boot 分区的处理存在 bug。

如果你此前已经 install.sh 被坑了,你必须再次插入 U 盘来引导系统,然后继续往下读。

真正有效的刷写方式是执行如下命令:

nand–sata-install

它可以完成所有刷写 emmc 所需的事情,完成后 halt 关机拔掉 U 盘,所有刷机工作就结束了。

如果你想重刷 armbian 系统,那么还是 U 盘启动 armbian,重新执行 nand-sata-install 即可完整覆盖掉 emmc 中的数据,网上的教程一般是教你 ddbr 或者线刷先恢复到安卓系统再重来,这都是胡扯。

我遇到的第一个问题就是开机后,偶尔无法联通外网。

后来我发现,只需要开机后多等一会,外网就会联通了,所以这个问题就不纠结了。

另外,armbian 启动的时候没有等待网卡分配到 IP,会导致一些监听网络的程序无法正常工作,需要大家修改一下网卡的模式为 auto,即可强制开机等待网络分配(当然太久分配不到也会超时进入系统):

修改 / etc/network/interfaces,注释 hotplug 热插拔模式,换成 auto 即可:

root@aml:~# cat /etc/network/interfaces

source /etc/network/interfaces.d/*

# Wired adapter #1

auto eth0

#allow-hotplug eth0

我在路由器上给 N1 分配静态 IP 的时候发现,armbian 的有线网卡每次重启后 MAC 地址都会变,解决方法也不复杂。

打开 / etc/network/interfaces 文件,在 eth0 网卡上写死一个 mac 地址即可:

root@aml:~# cat /etc/network/interfaces

source /etc/network/interfaces.d/* 
# Wired adapter #1  
allow-hotplug eth0  
no-auto-down eth0  
iface eth0 inet dhcp  
hwaddress 4e:03:88:54:39:93

发现 ssh 终端无法显示中文,也无法输入中文。

输入 armbian-config 命令,选择 personal,locales,确认 locale 配置了 en_US.utf-8,但仍旧无法使用中文。

执行 locale 命令显示如下,的确诡异:

root@aml:~# locale -a

C

C.UTF-8

en_US.utf8

POSIX

root@aml:~# locale

LANG=en_US.UTF-8

LANGUAGE=

LC_CTYPE="en_US.utf-8"

LC_NUMERIC="en_US.utf-8"

LC_TIME="en_US.utf-8"

LC_COLLATE="en_US.utf-8"

LC_MONETARY="en_US.utf-8"

LC_MESSAGES="en_US.utf-8"

LC_PAPER="en_US.utf-8"

LC_

LC_ADDRESS="en_US.utf-8"

LC_TELEPHONE="en_US.utf-8"

LC_MEASUREMENT="en_US.utf-8"

LC_IDENTIFICATION="en_US.utf-8"

LC_ALL=en_US.utf-8

经过查实,armbian 官方也有人反馈,只需要改一下 / etc/environment 中的 LC_ALL:

root@aml:~# cat /etc/environment
ARCH=arm64
LC_ALL=”en_US.utf-8″

执行 armbian-config,选择 personal,然后配置 Timezone 为 chongqing 即可。

执行 armbian-config,选择 personal,选择 Mirror 中清华大学的那个即可。

当你完成了上述所有步骤,如果你对网速没有太高要求,那么就可以让 N1 联无线网。

这样的话,N1 就可以放在任何有电源的地方,当一个小型 linux 服务器了。

执行 armbian-config,选择 network -> wlan0,选择 wifi 信号输入账号密码即可。

默认 debian 的 vim 右键没法粘贴内容,需要改一下模式:

vim /usr/share/vim/vim80/defaults.vim

查找 set mouse

if has('mouse')

  set mouse=a

endif

将值从 "a" 改成 "r"

if has('mouse')

  set mouse=r

endif

至此,斐讯 N1 刷 armbian 就完成了,一个可靠稳定的盒子,祝大家玩的愉快。

二、N1安装docker以及扩展U盘

点击标题访问

三、安装aria2以及web访问页面

1.可选择 apt安装 or 编译安装 or 一键脚本

apt install aria2 #apt源版本是1.30

---手动安装---

> wget https://github.com/aria2/aria2/releases/download/release-1.35.0/aria2-1.35.0.tar.bz2
> tar -jxv -f aria2-1.35.0.tar.bz2
> cd aria2-1.35.0/
> ./configure
> make
> cd src/ && cp aria2c /usr/bin/

---一键脚本---
参考以下链接,如果你无法访问 github 会安装失败,建议你选择手动安装.
https://p3terx.com/archives/aria2-oneclick-installation-management-script.html

2.配置aria2服务端

mkdir /opt/aria2
cd /opt/aria2
touch aria2.session
vi aria2.conf

点击查看详细内容

#需要修改的基本在这开始
#文件保存路径, 默认为当前启动位置
dir=/data/media
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
input-file=/opt/aria2/aria2.session
save-session=/opt/aria2/aria2.session
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=改为你的密码
#基本需要修改的结束
###
# 断点续传
continue=true
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 单个任务最大线程数, 添加时可指定, 默认:5
split=30
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
min-split-size=10M
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=16
# 断开速度过慢的连接
lowest-speed-limit=0
# 整体下载速度限制, 运行时可修改, 默认: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
# 当服务器返回503错误时, aria2会尝试重连
# 尝试重连次数, 0代表无限, 默认:5
max-tries=0
# 重连冷却, 默认:0
#retry-wait=0
###
## 进度保存相关 ##
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=30
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
###
## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=kqueue
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=
###
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true,可选:false|mem
follow-torrent=true
# BT监听端口(TCP), 默认:6881-6999
listen-port=51413
# DHT网络监听端口(UDP), 默认:6881-6999
dht-listen-port=6881-6999
# DHT(IPv4)文件
dht-file-path=/opt/aria2/dht.dat
# DHT(IPv6)文件
dht-file-path6=/opt/aria2/dht6.dat
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
# 在没有 IPv6 的环境中不建议开启,否则会导致 DHT 功能异常。
enable-dht6=false
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# 单个种子最大连接数,0为不限制,默认:55
bt-max-peers=0
# 期望下载速度,Aria2会临时提高连接数以提高下载速度,单位K或M。默认:50K
bt-request-peer-speed-limit=10M
# 全局最大上传速度限制, 运行时可修改, 默认:0
max-overall-upload-limit=5M
# 单个任务上传速度限制, 默认:0
max-upload-limit=0
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=1.0
# 最小做种时间(分钟)。此选项设置为0时,将在BT任务下载完成后不进行做种。
seed-time=0
# 做种前检查文件哈希, 默认:true
bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=false
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
# 加载已保存的元数据文件,默认:false
bt-load-saved-metadata=true
# 删除未选择文件,默认:false
bt-remove-unselected-file=true
# 保存上传的种子,默认:true
rpc-save-upload-metadata=true
# BT强制加密, 默认: false
# 启用后将拒绝旧的 BT 握手协议并仅使用混淆握手及加密,理论上可以防版权投诉与迅雷吸血。
# 此选项相当于后面两个选项(bt-require-crypto=true, bt-min-crypto-level=arc4)的快捷开启方式,但不会修改这两个选项的值。
bt-force-encryption=true
# BT加密需求,默认:false
# 启用后拒绝与旧的 BitTorrent 握手协议(\19BitTorrent protocol)建立连接,始终使用混淆处理握手。
bt-require-crypto=true
# BT最低加密等级,可选:plain(明文),arc4(加密),默认:plain
bt-min-crypto-level=arc4
# 客户端伪装
user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
# PT需要保持 user-agent 和 peer-agent 两个参数一致。即注释上面这行,然后取消注释下面的相关选项。
#user-agent=qBittorrent/4.2.2
peer-agent=qBittorrent/4.2.2
peer-id-prefix=-qB4220-
#----------------------------------
#user-agent=Transmission 2.94
#peer-agent=Transmission 2.94
#peer-id-prefix=-TR2940-
#----------------------------------
#user-agent=Deluge 2.0.3
#peer-agent=Deluge 2.0.3
#peer-id-prefix=-DE2030-
#----------------------------------
#user-agent=μTorrent 3.5.5
#peer-agent=μTorrent 3.5.5
#peer-id-prefix=-UT355W-
#----------------------------------
#user-agent=μTorrent Mac 1.8.7
#peer-agent=μTorrent Mac 1.8.7
#peer-id-prefix=-UM1870-
#bt-tracker 下载不能输在起跑线上
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://exodus.desync.com:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://9.rarbg.to:2710/announce,udp://public.popcorn-tracker.org:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://tracker.mg64.net:6969/announce,udp://mgtracker.org:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://bt.xxx-tracker.com:2710/announce,udp://thetracker.org:80/announce,udp://open.demonii.si:1337/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.qt.is:6969/announce,udp://tracker.port443.xyz:6969/announce,udp://tracker.ds.is:6969/announce,udp://tracker.cypherpunks.ru:6969/announce,udp://tracker-2.msm8916.com:6969/announce,udp://retracker.lanta-net.ru:2710/announce,udp://open.stealth.si:80/announce,udp://tracker1.itzmx.com:8080/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.sandrotracker.biz:6969/announce,udp://tracker.iamhansen.xyz:2000/announce,udp://torr.ws:2710/announce,http://t.nyaatracker.com:80/announce,http://retracker.telecom.by:80/announce,http://open.acgnxtracker.com:80/announce,udp://zephir.monocul.us:6969/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker.kamigami.org:2710/announce,udp://tracker.cyberia.is:6969/announce,https://evening-badlands-6215.herokuapp.com:443/announce,http://tracker.city9x.com:2710/announce,http://retracker.mgts.by:80/announce,http://open.acgtracker.com:1096/announce,http://nbz.f3322.net:36006/announce,http://0d.kebhana.mx:443/announce,wss://tracker.openwebtorrent.com:443/announce,wss://tracker.iamhansen.xyz:443/announce,wss://tracker.fastcast.nz:443/announce,wss://tracker.btorrent.xyz:443/announce,ws://tracker.btsync.cf:2710/announce,udp://z.crazyhd.com:2710/announce,udp://wambo.club:1337/announce,udp://trackerxyz.tk:1337/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.xku.tv:6969/announce,udp://tracker.tvunderground.org.ru:3218/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.justseed.it:1337/announce,udp://tracker.halfchub.club:6969/announce,udp://tracker.files.fm:6969/announce,udp://tracker.dutchtracking.com:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.desu.sh:6969/announce,udp://tracker.bluefrog.pw:2710/announce,udp://t.agx.co:61655/announce,udp://sd-95.allfon.net:2710/announce,udp://santost12.xyz:6969/announce,udp://retracker.nts.su:2710/announce,udp://retracker.coltel.ru:2710/announce,udp://pubt.in:2710/announce,udp://peerfect.org:6969/announce,udp://packages.crunchbangplusplus.org:6969/announce,udp://p4p.arenabg.com:1337/announce,udp://oscar.reyesleon.xyz:6969/announce,udp://open.facedatabg.net:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://inferno.demonoid.pw:3418/announce,udp://explodie.org:6969/announce,https://tracker.torrentsnows.com:443/announce,http://tracker1.itzmx.com:8080/announce,http://tracker.vanitycore.co:6969/announce,http://tracker.torrentyorg.pl:80/announce,http://tracker.tfile.me:80/announce,http://tracker.mg64.net:6881/announce,http://tracker.internetwarriors.net:1337/announce,http://tracker.electro-torrent.pl:80/announce,http://therightsize.net:1337/announce,http://share.camoe.cn:8080/announce,http://retracker.spb.ru:80/announce,http://omg.wtftrackr.pw:1337/announce,http://mgtracker.org:6969/announce,http://agusiq-torrents.pl:6969/announce
###
## 磁盘相关 ##
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
enable-mmap=true
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: 快none < trunc < falloc < prealloc慢
#file-allocation=trunc
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=64M

获取dht.dat文件(如果没有BT种子文件下载需求,可不下载.)
wget https://raw.githubusercontent.com/P3TERX/aria2.conf/master/dht.dat
touch dht6.dat

3.安装nginx或者apache2做web端(此处nginx)

apt install nginx

vi /etc/nginx/conf.d/aria2.conf #配置nginx

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

        root /var/www/ariahtml;
        index index.html index.htm index.nginx-debian.html;

        server_name 192.168.1.x; #此处更改为你的机器ip或者域名

        location / {
                try_files $uri $uri/ =404;
        }
}

下载webui
mkdir /var/www/ariahtml
cd /var/www/ariahtml
wget https://github.com/mayswind/AriaNg/releases/download/1.1.4/AriaNg-1.1.4-AllInOne.zip
unzip AriaNg-1.1.4-AllInOne.zip

4.配置systemctl启动

vim /lib/systemd/system/aria2.service


[Unit]
Description=aria2 project
After=network.service

[Service]
Type=simple
User=root
Group=root
KillMode=control-group
PIDFile=/opt/aria2/aria.pid
ExecStart=/usr/bin/aria2c --conf-path=/opt/aria2/aria2.conf
ExecReload=
ExecStop=
PrivateTmp=true

[Install]
WantedBy=multi-user.target

5.配置自动更新tracker.sh

vi /opt/aria2/tracker.sh

点击查看详细内容

#!/bin/bash
#=================================================
# https://github.com/P3TERX/aria2.conf
# File name:tracker.sh
# Description: Get trackers and add to aria2.conf
# Lisence: MIT
# Version: 1.4
# Author: P3TERX
# Blog: https://p3terx.com
#=================================================
###
INFO="[\033[32mINFO\033[0m]"
ERROR="[\033[31mERROR\033[0m]"
ARIA2_CONF=${1:-aria2.conf}
###
echo && echo -e "$INFO Check downloader ..."
if [ $(command -v curl) ]; then
    DOWNLOADER='curl -fsSL'
elif [ $(command -v wget) ]; then
    DOWNLOADER='wget -qO-'
else
    echo -e "$ERROR curl or wget is not installed."
fi
###
# BT tracker is provided by the following project.
# https://github.com/XIU2/TrackersListCollection
# https://github.com/ngosang/trackerslist
# Fallback URLs provided by jsDelivr and Cloudflare Workers
# https://www.jsdelivr.com
# https://workers.cloudflare.com/
echo && echo -e "$INFO Get trackers ..."
TRACKER=$(
    ${DOWNLOADER} https://trackerslist.com/all_aria2.txt ||
        ${DOWNLOADER} https://cdn.jsdelivr.net/gh/XIU2/TrackersListCollection/all_aria2.txt ||
        ${DOWNLOADER} https://trackerslist.p3terx.workers.dev/all_aria2.txt ||
        {
            ${DOWNLOADER} https://ngosang.github.io/trackerslist/trackers_all.txt ||
            ${DOWNLOADER} https://cdn.jsdelivr.net/gh/ngosang/trackerslist/trackers_all.txt ||
                ${DOWNLOADER} https://ngosang-trackerslist.p3terx.workers.dev/trackers_all.txt
        } | awk NF | sed ":a;N;s/\n/,/g;ta"
)
###
[ -z $TRACKER ] && echo -e "
$ERROR Unable to get trackers, network failure or invalid links." && exit 1
echo -e "
--------------------[TRACKERS]--------------------
${TRACKER}
--------------------[TRACKERS]--------------------
"
[ ${ARIA2_CONF} == "cat" ] && exit 0
###
echo -e "$INFO Adding trackers to '${ARIA2_CONF}' ..." && echo
if [ ! -f ${ARIA2_CONF} ]; then
    echo -e "$ERROR '${ARIA2_CONF}' does not exist."
    exit 1
else
    [ -z $(grep "bt-tracker=" ${ARIA2_CONF}) ] && echo "bt-tracker=" >>${ARIA2_CONF}
    sed -i "s@^\(bt-tracker=\).*@\1${TRACKER}@" ${ARIA2_CONF} && echo -e "$INFO Trackers added successfully!"
fi
###

执行更新
chmod +x tracker.sh
./tracker.sh "/opt/aria2/aria2.conf"

6.启动aria2和nginx

systemctl restart nginx
systemctl start aria2
访问 http://your ip

致谢

posted @ 2020-04-08 15:05  jonnyan  阅读(26680)  评论(0编辑  收藏  举报