文章目录
前言
玩nas的很多都离不开Alsit和aria2,有的人没有nas的也会买个盒子来安装alist,安卓可以直接安装alsit,但是不能安装小雅alist,因为小雅alsit的储存库是加密的,否则是可以直接通过安装alist,再导入进去的原生alsit的,所以突发奇想要在安卓运行小雅alsit,刚好有一台闲置的手机,有128G,可以用来下载影视
本教程参考自https://gist.github.com/oofnikj/e79aef095cd08756f7f26ed244355d62/
一、使用环境
手机:小米CC9pro 128G
系统:miui12
安卓系统:11
处理器:高通骁龙730G
RAM:8G
root状态:未root
二、实现原理,不想了解可以跳过
1.免root安装方式
在安卓上免root运行linux,我所知道的就只有使用Termux,使用Termux应该大致分两种,一种是使用Chroot或Proot或者AnLinux,一种是QEMU模拟,前者性能最佳,后者属于套娃
方式一
Chroot或Proot或者AnLinux
1.内核限制:Docker依赖于Linux内核的cgroups和namespaces特性,而安卓设备的内核通常不具备这些功能,或者其配置不支持Docker所需的功能。
2.权限问题:Docker需要root权限来管理容器和访问系统资源,而Proot通常在不需root的情况下运行,无法提供Docker所需的权限。
方式二
还有一种方法就是我们要使用的,在安卓安装Termux,在Termux安装QEMU,在QEMU安装Alpine Linux,在Alpine Linux安装docker,看起来很复杂,其实还好,
1.QEMU是一个开源仿真器和虚拟机软件,支持多种架构的虚拟化。通过在Termux中安装QEMU,你可以模拟出一个完整的计算机系统(如x86、ARM架构等)。
虚拟化允许在安卓设备上运行其他操作系统,这得益于QEMU的仿真和虚拟化能力,虽然性能可能比直接在硬件上运行要低。
2.Alpine Linux是一个轻量级Linux发行版,因其小巧和效率而常用于容器化场景。
在QEMU中运行Alpine Linux,意味着在安卓设备的虚拟机中运行一个完整的Linux环境。这样做的好处是,能够在这个环境中运行需要完整Linux内核特性的应用程序。
3.Alpine Linux具备完整的Linux内核功能,因此可以在其上运行Docker。这样,可以利用Alpine提供的完整Linux特性来运行和管理Docker容器。
三、所需工具
termux-app
项目地址:https://github.com/termux/termux-app#github
官网:https://termux.dev/en/
如果你有电脑,可以安装一个投屏工具,开启开发者模式,使用USB或者无线连接,可以直接在将代码复制到手机上,方便很多
官网:https://cn.anlinksoft.com/
四、开始操作
安装好了termux-app需要配置一下常驻后台,每个品牌方法不一样,基本都是在电池或设置-应用程序那里设置的,自行百度解决
因为很多资源,比如镜像,都在国外,最好是开加速器,步骤看着有点多,主要是我写的很详细,操作起来命令不多的
1.打开app
1.安装 QEMU和wget和vim
pkg install wget vim qemu-utils qemu-common qemu-system-x86_64-headless
2.下载 Alpine Linux 3.12(虚拟化优化)ISO
mkdir alpine && cd $_
wget http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/alpine-virt-3.12.3-x86_64.iso
3.创建磁盘(注意它实际上不会占用 8GB 的空间,可以自己调节)
qemu-img create -f qcow2 alpine.img 8G
4.创建并启动脚本文件
vim run.sh
5.编辑启动脚本文件
输入a,不会的搜索vim教程,
qemu-system-x86_64 -machine q35 -m 2048 -smp cpus=2 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
-cdrom alpine-virt-3.12.3-x86_64.iso \
-nographic alpine.img
粘贴脚本后点击ESC,再点击CTRL,再输入英文标点符号:,输入wq,回车就保存了
6.赋予权限后启动
chmod +x run.sh
./run.sh
启动过程需要时间,看设备的性能
5.使用用户登录root(无密码)
root
6.设置网络(按 Enter 使用默认值):
localhost:~# setup-interfaces
Available interfaces are: eth0.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0]
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]
Do you want to do any manual network configuration? [no]
localhost:~# ifup eth0
7.创建应答文件以加快安装速度
wget https://gist.githubusercontent.com/oofnikj/e79aef095cd08756f7f26ed244355d62/raw/answerfile
8.补丁程序setup-disk以在启动时启用串行控制台输出
sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk
9.运行安装程序以安装到磁盘
setup-alpine -f answerfile
会提示设置密码,可以设置,也可以直接回车不设置
10.安装完成后关机
以下才是安装完成,没有显示这个重新执行9再次安装
!
随后执行关机
poweroff
11.重新编辑启动脚本
vim run.sh
12.修改为以下
qemu-system-x86_64 -machine q35 -m 2048 -smp cpus=2 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22,hostfwd=tcp::9000-:9000,hostfwd=tcp::34256-:34256,hostfwd=tcp::5678-:5678 -device virtio-net,netdev=n1 \
-nographic alpine.img
hostfwd=tcp::2222-:22,hostfwd=tcp::9000-:9000,hostfwd=tcp::34256-:34256,hostfwd=tcp::5678-:5678
这是需要提前配置好虚拟机的端口映射,要不然安装好了需要重新启动时进行配置,我们可以在启动前就配置好,2222是给ssh的,9000我是给Portainer,34256是小雅扫码获取cookie的,5678是小雅主程序,根据你自己所需要多少端口配置
13.进系统后登录,账号是root,密码刚步骤9安装的时候设置的
14.安装curl、bash、docker并启动
alpine:~# apk add curl bash
alpine:~# apk update && apk add docker
alpine:~# service docker start
alpine:~# rc-update add docker
15.安装小雅alsit
直接使用一件安装就可以,这个自行百度教程进行安装。需要注意的是,使用一键命令安装,需要提前开放34256端口,待会需要进行扫描获取cookie
以下是开放端口命令
iptables -A INPUT -p tcp --dport 34256 -j ACCEPT
iptables-save > /etc/iptables/rules.v4
小雅一件安装
项目地址:https://github.com/DDS-Derek/xiaoya-alist
使用
bash -c "$(curl --insecure -fsSL https://ddsrem.com/xiaoya_install.sh)"
备用
bash <(curl --insecure -fsSL https://ddsrem.com/xiaoya/all_in_one.sh)
bash <(curl --insecure -fsSL https://fastly.jsdelivr.net/gh/DDS-Derek/xiaoya-alist@latest/all_in_one.sh)
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/DDS-Derek/xiaoya-alist/master/all_in_one.sh)
bash -c "$(curl --insecure -fsSL https://fastly.jsdelivr.net/gh/DDS-Derek/xiaoya-alist@latest/main.sh)"
bash -c "$(curl --insecure -fsSL https://raw.githubusercontent.com/DDS-Derek/xiaoya-alist/master/main.sh)"
以上6条命令执行一条就可以了
16.运行结果
五、代码释义,不想学习了解可以不看
前期准备
安装软件包:
pkg install wget vim qemu-utils qemu-common qemu-system-x86_64-headless:
wget用于下载文件。
vim是文本编辑器。
qemu-utils和qemu-common提供QEMU的基本工具。
qemu-system-x86_64-headless是QEMU的X86_64架构的模拟器,无需图形界面。
安装步骤
下载Alpine Linux ISO:
mkdir alpine && cd $_:创建名为alpine的目录并进入该目录。
wget http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/alpine-virt-3.12.3-x86_64.iso:下载Alpine Linux的虚拟化优化版本ISO。
创建虚拟磁盘:
qemu-img create -f qcow2 alpine.img 8G:创建一个格式为qcow2的虚拟磁盘文件,最大8GB。qcow2是QEMU的磁盘格式,支持动态分配空间(即使定义为8GB,实际只占用已使用的数据空间)。
创建和编辑启动脚本:
vim run.sh:创建并编辑一个名为run.sh的脚本文件。
脚本内容用于启动QEMU虚拟机,其中:
-machine q35:使用Q35芯片组(现代且支持更多特性)。
-m 2048:分配2048MB内存给虚拟机。
-smp cpus=2:分配2个虚拟CPU。
-cpu qemu64:使用QEMU自定义的64位CPU模型。
-drive if=pflash…:加载UEFI固件。
-netdev user…:配置用户模式网络,其中hostfwd=tcp::2222-:22将主机的2222端口映射到虚拟机的22端口(SSH)。
-cdrom alpine-virt-3.12.3-x86_64.iso:使用下载的ISO作为光驱启动。
-nographic alpine.img:以无图形模式启动虚拟机并使用alpine.img作为硬盘。
运行和配置虚拟机:
chmod +x run.sh:赋予脚本可执行权限。
./run.sh:启动虚拟机。
登录后进行网络配置和安装:
使用setup-interfaces配置网络,选择eth0并设置为dhcp。
ifup eth0:启动网络接口。
下载应答文件和补丁程序:
wget https://gist.githubusercontent.com/…/answerfile:下载自动应答文件,加速安装过程。
sed -i -E ‘s/…/…’ /sbin/setup-disk:修改setup-disk脚本以启用串行控制台输出,使启动日志可以在无图形界面下查看。
安装Alpine到磁盘:
setup-alpine -f answerfile:使用应答文件进行无交互安装。
完成后重启并修改启动脚本:
修改run.sh以去掉CD-ROM启动项,并增加更多端口映射,以便后续应用程序使用。
安装和启动Docker:
apk update && apk add docker:更新包管理器并安装Docker。
service docker start:启动Docker服务。
rc-update add docker:设置Docker服务开机自启。
安装和配置小雅alsit:
开放34256端口用于应用程序通信,使用iptables进行端口开放,并保存规则。
iptables -A INPUT -p tcp --dport 34256 -j ACCEPT:允许34256端口的TCP流量进入。
iptables-save > /etc/iptables/rules.v4:保存防火墙规则。
教程结束
由于我也是刚安装好,稳定性暂时还不知道,自行测试