前言
由于最近一直想对云端的博客做一个备份本地备份,但是又不想购买一台轻量 NUC,恰巧有一台闲置的小米 Note3,一合计,是不是可以给小米 Note3 刷一个 Linux 系统或使用目前已有的容器技术运行一个 Linux 系统?说干就干,于是开始了收集教程,查找资料的过程,经过反复的测试与排雷,最终得到以下可行的方案(其实其他方案也可行就是配置比较麻烦,遇到的问题都大差不差)。
硬件、软件准备
- 小米 Note3
- Root 工具(Magisk)
- BusyBox(1.34.1)
- Linux Deploy(2.6.0)
- 电脑一台,用于 Root,以及 SSH 连接
DDNS-Go(ddns-go_6.8.1_linux_arm64.tar.gz)、Termux
配置 Busy Box
安装完成 Busy Box 后,打开软件,授予 BusyBox Root 权限。
点击右上角的三个点 “ ” – 设置(Settings):
- 语言:简体中文(关闭软件后再次进入就会显示中文)
- 安装路径(默认):/system/xbin
- 安装组件(默认):勾选
- 替换组件(默认):勾选
以上设置好后关闭软件,再次进入软件,点击主界面的安装。
配置 Linux Deploy
安装完成 Linux Deploy 后,打开软件,授予 Linux Deploy Root 权限。
点击软件左上角的三条杠 “ ” – 配置文件 – “ ”
配置文件名称(小写):ubuntu
选择新增的配置文件 “ubuntu”,返回软件主界面,点击软件右下角的” “进入属性设置
- 引导设置
- 发行版 GNU/Linux:Ubuntu
- 架构:arm64
- 发行版 GNU/Linux 版本:bionic
- 安装类型:目录
- 安装路径:/data/user/ubuntu
- 用户名:root
- 用户密码:(默认或自定义)
- 本地化:zh_CN.UTF-8
- DNS:自动
- 初始化
- 启用:勾选
- 挂载
- 启用:勾选
- SSH
- 启用:勾选
回到 Linux Deploy 的主界面,点击右上角的三个点 “ ” – 安装。
安装完成后,即可通过 SSH 连接进入 ubuntu(若无法连接 ssh,右上角的三个点 “ ”- 配置,完成后再点击主界面的 “停止”,关闭软件并重新打开,点击” 启动),IP 地址是主界面顶部显示的 IP 地址。
安装宝塔面板
环境准备
通过 SSH 连接上 ubuntu,运行以下指令 1:
# 安装vim wget apt install vim wget # 更换阿里镜像源 vim /etc/apt/sources.list
替换默认的 2
http://archive.ubuntu.com/
为
http://mirrors.aliyun.com/
将以下代码注释掉
# deb http://ports.ubuntu.com/ bionic main universe multiverse # deb-src http://ports.ubuntu.com/ bionic main universe multiverse
并在以上代码前增加以下代码
deb https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse # deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
:wq
保存退出。
运行以下代码查看换源是否成功:
root@localhost:~# cat /etc/apt/sources.list deb https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse # deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse #deb http://ports.ubuntu.com/ bionic main universe multiverse #deb-src http://ports.ubuntu.com/ bionic main universe multiverse
安装面板
更新软件源 3 并安装宝塔面板
apt update apt install # 安装宝塔所需的一些依赖环境 apt install python-setuptools # Ubuntu/Deepin宝塔面板安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
执行 wget 命令后,大概 20 分钟 4 可以完成宝塔面板的安装
修复网络问题
宝塔面板安装完成后,会发现手机上不了网,导致无法完成宝塔面板的手机绑定。原因是:宝塔面板默认开启防火墙,导致无法获取外部网络数据,只能在局域网内连通。知道了原因也就很好解决了,ssh 连接 ubuntu,执行以下对应系统的命令关闭宝塔面板的防火墙:
Centos 6: service iptables stop #停止 chkconfig iptables off #禁用 Centos 7: systemctl stop firewalld.service #停止 systemctl disable firewalld.service #禁用 Ubuntu/Debian: ufw disable #方法1 sudo ufw disable #方法2
执行以上命令之后就可以正常联网,使用宝塔面板了。
安装 LNMP
安装 [php-8.0] | 03-20 12:35:54 | 13 分 44 秒 | 安装成功 |
安装 [mysql-mariadb_10.4] | 03-20 12:35:14 | 58 分 59 秒 | 安装成功 |
安装 [nginx-1.26] | 03-20 12:31:38 | 15 分 55 秒 | 安装成功 |
安装必要环境库 | 03-20 12:31:38 | 2 分 37 秒 | 安装成功 |
修复 MariaDB 无法运行的问题
查看 MariaDB 的安装日志以及错误日志
# 安装日志 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) # 错误日志 [ERROR] Can't create IP socket: Permission denied …… [Warning] option 'max_allowed_packet': unsigned value ……
错误原因
- 找不到
mysql.sock
文件 - 权限不足
- 最大允许数据包的值有误
修改配置
建立 mysql.sock
文件 5,尝试运行
root@localhost:~# find / -name mysql.sock root@localhost:~#
发现确实找不到结果,如果能查到结果,只需 mysql.sock
所在位置做一个软连接到 /tmp
目录下即可解决。
在宝塔面板更改 /etc
目录下的 my.cnf
文件,参照以下代码进行修改,并保存。
[client] #password = your_password port = 3306 #修改socket路径以修复mysql.sock文件,下同 #socket = /tmp/mysql.sock socket = /var/lib/mysql/mysql.sock [mysqld] port = 3306 #修复mysql.sock文件 #socket = /tmp/mysql.sock socket = /var/lib/mysql/mysql.sock datadir = /www/server/data #新增 user = root 以修复权限不足的问题 user = root #修复最大允许数据包的值有误的问题 #max_allowed_packet = 100G max_allowed_packet = 100M
确保目录 /var/lib/mysql/
存在,并且赋予其 777
权限
chmod 777 /var/lib/mysql
在宝塔面板中重启,正常情况下 mysql
已经正常运行了。
再次运行以下代码,查找 mysqld.sock
所在位置:
root@localhost:~# find / -name mysql.sock /var/lib/mysql/mysql.sock
尝试使用该 Sock 文件登入
#(初始密码为空,直接回车就行) root@localhost:~# mysql -uroot -p -S /var/lib/mysql/mysql.sock Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 23 Server version: 10.4.34-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
如果出现以上相似的结果,就说明可以使用。
建立软连接
接下来只有建立软连接到 /tmp
中,并恢复原配置即可。
#建立软连接 root@localhost:~# ln -s /var/lib/mysql/mysqld.sock /tmp/mysql.sock #验证 /tmp 目录下是否有 mysql.sock 文件 root@localhost:~# ls /tmp/ mysql.sock
恢复配置
将 my.cnf
中修复 mysql.sock
的内容改回默认配置,并保存
[client] #password = your_password port = 3306 socket = /tmp/mysql.sock #socket = /var/lib/mysql/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock #socket = /var/lib/mysql/mysql.sock datadir = /www/server/data
再次重启数据库,确认是否正常运行。

使用 DDNS-Go
由于拥有动态公网 IPv6,因此可以使用 ddns-go 来实现域名动态更新 IP 解析 6。
在 Termux 中,执行以下命令
安装 wget
apt install wget
下载 ddns-go
wget https://github.com/jeessy2/ddns-go/releases/download/v6.9.1/ddns-go_6.9.1_android_arm64.tar.gz
新建文件夹
mkdir ddns-go
将压缩包解压进去
tar -zxvf ddns-go_6.9.1_android_arm64.tar.gz ddns-go
不能安装,但可直接启动 ddns-go
./ddns-go
因为无法安装 ddns-go
,因此需要保持 Tenmux 后台常驻
接下来便是根据官方教程进入网页后台配置 ddns。
参考资料
- 安卓手机 + LinuxDeploy+CentOS + 宝塔面板的安装教程_手机安装宝塔 - CSDN 博客 ↩︎
- ubuntu-ports 镜像_ubuntu-ports 下载地址_ubuntu-ports 安装教程 - 阿里巴巴开源镜像站 ↩︎
- 关于 armbian ubantu 系统 安装宝塔面板_armbian 安装宝塔 - CSDN 博客 ↩︎
- 5 分钟在 ARM 盒子上安装完宝塔面板,不得不说的秘密! – 知乎 ↩︎
- 亲测有效,解决 Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2) “;_can’t connect to local mysql server-CSDN 博客 ↩︎
- 华为麦芒 5 (安卓 6) termux 记录 使用 ddns-go,alist_ddnsgo 安卓 - CSDN 博客 ↩︎