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

推荐订阅源

WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Proofpoint News Feed
量子位
K
Kaspersky official blog
S
SegmentFault 最新的问题
博客园 - 叶小钗
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
F
Fortinet All Blogs
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cisco Blogs
T
Tenable Blog
U
Unit 42
S
Schneier on Security
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
Visual Studio Blog
The Hacker News
The Hacker News
Jina AI
Jina AI
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
Intezer
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
V
V2EX
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
www.infosecurity-magazine.com
www.infosecurity-magazine.com
PCI Perspectives
PCI Perspectives
腾讯CDC
Webroot Blog
Webroot Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Recorded Future
Recorded Future
D
DataBreaches.Net
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog

爱吃猫的鱼

当身体被强制暂停 盘点开发者眼里的赛博大善人(一) 博客系统 FlecBlog 现已正式开源 Windows 注册表原理与实战指南 GitHub Actions 自动化部署全攻略 自研博客系统打造极致极简创作体验 2025 年度总结 替代 Alist 的多存储文件列表程序 OpenList 高通 410 随身 WiFi 刷入 Debian 利用 BAT 脚本实现高效自动化部署方案 B7c61c40 全面详解开箱即用的 AI 工具 Cursor 2024 年度总结 使用 Hexo 多种部署方法搭建个人网站 全面详细的常用Linux命令汇总(2) Follow:信息浏览聚合,万物皆可订阅 QRcodeGen项目介绍,基于Python打造二维码生成新利器 Nginx 可视化编辑工具 Nginx UI 安装和使用 深入探究电子邮件三大协议 使用Ventoy集成多PE打造强大U盘 Xterminal:颜值高、功能强,追求卓越体验的SSH工具 高效利用 GitHub 搜索,精准快速获取所需 IDM:广受欢迎的高速下载管理器 让Meting API解锁音乐开发新可能 零基础Docker入门指南 服务器最佳搭档,宝塔和1Panel的部署与选择 FinalShell:功能强大的服务器管理和远程连接工具 掌握Markdown技巧,轻松应对写作需求 C3dc4fa3 玩转npm:从基础到实践的全面指南 GitHub Desktop:让代码托管不再高深莫测 85af4b3 推荐10个有趣的摸鱼网站,让快乐简单起来 F34ad695 E2f1455b 503a6294 22ea4c20 A43ddadb Ba7d8a84 Caffd8d6 20820ccd E3ddac0 88040fa7 Ca1756cf Aa5669ee 78084f29 98b56a65 Efba7c23
利用 Termux 让安卓手机成为专属家庭服务器
Talen · 2024-12-03 · via 爱吃猫的鱼

1 前言

电子产品更新速度快,旧手机往往容易被闲置,不想挂闲鱼就只能放在抽屉落灰,与其这样不如资源再利用,将旧手机制作成为家庭服务器,实现文件存储与共享、个人博客、媒体服务等多种功能,对于喜欢折腾技术的用户来说这无疑是一个充满挑战与乐趣的项目。

Termux 是一个适用于 Android 的终端模拟器,其环境类似于 Linux 环境,无需Root或设置即可使用。

注意

本文演示中使用的安卓设备为Redmi K30 8+128 MIUI 13.0.6

通过 GitHub 或者 APKFab 应用商店安装 Termux,下载地址可在官网查看。

image-20241128203928646

为避免后续下载操作网络缓慢,建议切换国内镜像源。

在唤出的图形化界面中,第一步选择 Mirror group 并点击 OK 确定,第二步选择 Chinese Mainlan 并点击 OK 确定。

image-20241128232348569

更新包管理器索引并将已安装的包升级到最新版本。

BASH

pkg update && pkg upgrade -y

安装 vim、wget、unzip 等必备工具。

BASH

pkg install vim wget unzip -y

在 Termux 中使用 ifconfig 命令查看 Termux 主机 IP 地址,这里可以看到当前为 192.168.0.21,记录备用。

image-20241130140031969

3 环境准备

本节涉及的环境准备仅为本文有所需要的,但也不需要全部进行安装,而是根据实际情况有所选择的安装。

3.1 MySQL

MariaDB 是 MySQL 的一个分支,是一个开源的关系型数据库管理系统。

3.1.1 安装

在 Termux 中使用一条命令就可以快速安装 MariaDB。

BASH

pkg install mariadb -y

查看版本信息,若出现版本号即安装完成。

3.1.2 启动服务

不建议直接使用 mysqld 命令启动 MySQL 服务,这样会话将一直存活无法进行其它操作,所以可以使用 nohup 命令来后台启动。

然而这个方法当服务意外终止将无法实现自启动,所以可以将 mysqld_safe 脚本与 root 用户一起运行实现自启动防止意外终止,mysqld_safe 脚本是用于监控 MySQL 运行情况并在其终止时重新启动,相当于多了一个守护进程。

BASH

mysqld_safe -u root &

3.1.3 停止服务

MySQL 没有很好的终止命令,只能强制杀掉进程实现停止服务。

BASH

kill -9 `pgrep mysql`

3.1.4 设置 root 密码

设置密码前使用 root 用户登录密码为空,回车确认即可直接进入数据库。

BASH

mariadb -u root -p
# Enter password:      # 无需输入

然后使用 SQL 语句修改 root 密码,最后刷新权限并退出当前用户。

SQL

use mysql;
set password for 'root'@'localhost' = password('你设置的密码');

flush privileges;
quit;

这时 root 用户就需要使用密码进行登录了,密码为前面设置的密码。

BASH

mariadb -u root -p
# Enter password:      # 输入设置的密码

image-20241130223708315

3.2 Nginx

Nginx 是一款轻量级和高性能的 Web 服务器和反向代理服务器,凭借其高效的处理能力和稳定性而闻名,广泛应用于各种 Web 场景中。

3.2.1 安装

在 Termux 中使用一条命令就可以快速安装 Nginx。

查看版本信息,若出现版本号即安装完成。

3.2.2 基本命令

测试 Nginx

测试检查 Nginx 配置文件来判断 Nginx 是否正常。

image-20241129211803355

启动 Nginx

Nginx 的默认运行端口为 8080,启动完成后在浏览器访问 127.0.0.1:8080 进入 Nginx 欢迎页。

image-20241129212356591

重启 Nginx

当修改 Nginx 配置文件时需要重启 Nginx 生效。

停止 Nginx

Nginx 内置了两种停止命令。

BASH

nginx -s quit		# 在退出前完成已经接受的连接请求
nginx -s stop		# 快速关闭,不管有没有正在处理的请求

3.2.3 解析 PHP

3.2.3.1 安装 php-fpm

BASH

pkg install php-fpm -y

3.2.3.2 配置 php-fpm

编辑 php-fpm 配置文件 www.conf

BASH

vim $PREFIX/etc/php-fpm.d/www.conf

搜索 listen = 找到:

TEXT

listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock`

修改为:

BASH

listen = 127.0.0.1:9000

3.2.3.3 配置 Nginx

编辑 Nginx 的配置文件 nginx.conf

BASH

vim $PREFIX/etc/nginx/nginx.conf

对该文件作出以下修改:

  1. 添加 index.php 到默认首页的规则
  2. 取消 location ~ \.php$ 注释,修改 fastcgi_param 内容

image-20241129221030613

3.2.3.4 测试 PHP 解析

新建有内容的 info.php 文件

BASH

echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php

重启 Nginx 服务使配置生效

启动 php-fpm 服务

若解析成功,浏览器访问 127.0.0.1:8080/info.php 出现 PHP 信息页。

image-20241129222153438

3.3 Nodejs

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JavaScript 能够在服务器端运行,而不仅仅局限于浏览器环境。

3.3.1 安装

在 Termux 中使用一条命令就可以快速安装 Nodejs。

BASH

pkg install nodejs -y

查看版本信息,若出现两个版本号即安装完成。

3.3.2 测试使用

使用 Node.js 运行 js 脚本输出 Hello World,首先使用 vim hello.js 命令新建文件并添加脚本内容。

BASH

console.log('Hello World');

使用 node 命令尝试运行,正确输出 Hello World 即为成功。

3.3.3 静态 HTTP 服务器

http-server 是一个简单、零配置的命令行静态 HTTP 服务器。使用 npm 命令可以快速安装 http-server。

BASH

npm install -g http-server

等待安装完成后,运行 http-server 可查看访问地址,在浏览器中访问可查看根目录下全部文件。

image-20241201181642979

4 使用 KodBox 搭建云盘

Kodbox 是一款功能强大的私有云存储与协同办公平台。

安装前需准备 Nginx 环境,并确保已经可以解析 PHP,可查看本文 3.2 内容。

4.1 下载安装

前往官网下载页面查看最新版本,复制下载链接后使用 wget 直接下载。

BASH

wget https://static.kodcloud.com/update/download/kodbox.1.54.zip

解压包至 Nginx 的 kod 目录下。

BASH

unzip kodbox.1.54.zip -d $PREFIX/share/nginx/html/kod

4.2 登录配置

手机访问 127.0.0.1:8080/kod 即可进入系统安装页面,依次进行环境检测、数据库配置和账号设置。

  • 环境检测:部分非必要开启项失败可忽略,也可查看帮助解决。
  • 数据库配置:建议使用 SQLite + 文件缓存,有条件或有需求可以选择 MySQL
  • 账号设置:设置账号和密码用于系统管理员登录。

image-20241130131432401

至此安装完成,系统自动跳转到登录页面,使用设置的账号密码进入云盘首页。

image-20241130134254668

4.3 局域网连接

在同局域网下的任意设备通过浏览器访问 Termux主机IP:8080/kod 进行登录操作,Termux主机IP 通过 ifconfig 命令查看。

image-20241130140039572

在同局域网下的任意设备通过客户端连接站点进行登录操作,站点同浏览器访问地址。

image-20241130142006276

4.4 访问手机内部存储

在 Termux 中获取手机存储访问权限。

使用 ln -s <本机目录> <termux内部目录> 命令挂载手机存储目录,比如将手机的 Download 目录映射到 Termux 的 home 目录下。

BASH

ln -s /sdcard/Download /data/data/com.termux/files/home

然后在云盘系统中新增挂载,依次点击系统设置>存储管理>新增。

image-20241130144431724

image-20241130145250127

保存后刷新页面,就可以在文件管理中的网络挂载中查看到了。

image-20241130145507490

5 使用 WordPress 搭建博客

WordPress 是一款非常流行的开源内容管理系统,可以用于创建和管理网站。

安装前需准备 Nginx 环境和 MySQL 数据库,可查看本文 3.1 和 3.2 内容。

5.1 新建数据库

网站需要使用数据库,在正式安装前先新建一个数据库备用。

BASH

mariadb -uroot -p123456 -e"create database wordpress;show databases;"
# root为用户名,123456为密码,wordpress为名称

执行操作命令成功后输出数据库列表,列表中包含新建的 wordpress

image-20241130224249788

5.2 下载安装

前往官网下载页面复制最新版本下载链接后使用 wegt 直接下载。

BASH

wget https://cn.wordpress.org/latest-zh_CN.zip
# 或者选择指定版本下载:
wget https://cn.wordpress.org/wordpress-6.7.1-zh_CN.zip

解压包至 Nginx 的网站根目录下。

BASH

unzip wordpress-6.7.1-zh_CN.zip -d $PREFIX/share/nginx/html

5.3 登录配置

完成下载安装后在本机浏览器访问 127.0.0.1:8080/wordpress 或者在同局域网下的其它设备访问 Termux主机IP:8080/wordpress

image-20241130230250194

填写数据库连接信息,使用前面新建的数据库设置。如果数据库主机使用 localhost 无法连接可使用 Termux主机IP,依旧无法连接可以尝试创建一个新用户。

BASH

# 创建一个用户名为wordpress,密码为123456的新用户
mariadb -uroot -p123456 -e"GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;"

image-20241130234627033

接下来的步骤根据文字指引进行配置,最后根据设置的账号密码登录站点成功进入后台。

image-20241130235044001

6 使用 You-Get 下载媒体

You-Get 是一个命令行程序,提供便利的方式来下载网络上的媒体信息。

6.1 安装依赖

进行程序安装前首先获取所需依赖:Python3、FFmpeg。

BASH

pkg install python3 ffmpeg -y

6.2 安装 you-get

安装依赖完成后直接使用 pip 来安装。

6.3 下载媒体

支持下载的全部媒体平台可前往官方说明中查看,这里仅以 Bilibili 视频展示演示。

BASH

you-get https://www.bilibili.com/video/BV132421A7VN/

image-20241201220530901

7 安装 Ubuntu 学习 Linux

7.1 安装依赖

系统的安装将使用国光大佬制作的一键脚本,由于脚本存放于 GitHub 并且使用 Python 环境,所以使用需要安装 git 和 python,另外还需要 proot 才可以运行 Linux。

BASH

pkg install proot git python -y

7.2 下载安装

首先克隆这个一键安装脚本,将它保存到本地。

BASH

git clone https://github.com/sqlsec/termux-install-linux

然后运行这个安装脚本,出现安装指引,这里输入 1 来进行 Ubuntu 系统的安装。这里一定要先切换目录再运行脚本,不然会出现路径问题。

BASH

cd termux-install-linux
python termux-linux-install.py

image-20241202200435389

耐心等待安装完成。

image-20241202201232702

7.3 Ubuntu 启动

使用一行命令运行脚本就可以顺利启动 Ubuntu 系统。

BASH

~/Termux-Linux/Ubuntu/start-ubuntu.sh

image-20241202204347014

7.4 特别注意

这里所安装的系统是轻量级的,所以很多 Ubuntu 命令及功能无法使用,另外经过尝试,宝塔面板、Docker等均无法正常安装。

8 写在最后

本文介绍了利用 Termux 将安卓手机制作成家庭服务器的方法,包括 Termux 安装与设置、MySQL、Nginx、Node.js 等环境准备,以及使用 KodBox 搭建云盘、WordPress 搭建博客、You-Get 下载媒体、安装 Ubuntu 学习 Linux 等应用搭建与使用的步骤,涵盖了从基础环境搭建到多种功能实现的全过程,可将闲置安卓手机资源再利用,满足文件存储与共享、个人博客、媒体服务等多种需求。

利用 Termux 让安卓手机成为专属家庭服务器

https://blog.talen.top/posts/2e3499c7