当Cloudflare全球服务中断,网络世界按下暂停键时,LeePoet却开启了一段有趣的折腾之旅。于是将目光投向闲置的安卓手机,借助强大的终端环境Termux,一步步安装了Node.js环境、Hexo博客框架,并巧妙运用nohup命令将服务置于后台运行。最终,通过Cpolar内网穿透,成功将这个搭建在手机上的HEXO博客发布到了公网。

今天也就是20251118大概下午7点左右CLOUDFLARE全球应该都挂了。正好,闲来无事,想把之前搭的一个HEXO站点备份一下,以免再出现之前这个站点数据丢失再来找不回来的尴尬场面。这次打算把那个站点备一份到LeePoet闲鱼165元包邮的老旧手机VivoS1Pro上。
于是就要给手机装上HEXO,之前做过笔记,装HEXO首先要依造NPM,而NPM又是NODEJS的组件,NODEJS又依赖系统环境,而LeePoet的VivoS1Pro是安卓。安卓如果需要启动服务,除了一些服务器的APK之外,就是使用Termux,Termux是一个强大的Android终端模拟器和Linux环境应用,无需root权限即可运行。
而Termux是可以安装NODEJS的,那么再反向一下,思路就很清晰了。
我可以通过给手机安装Termux,再通过Termux再装上NODEJS环境。
pkg install node


一开始没装成功,提示用 pkg install nodejs 或者 pkg install nodejs-lts 装,于是我使用了 pkg install nodejs-lts 进行安装。

安装完成后,输入node -v 和 npm -v 来验证版本号是否安装成功。
然后安装HEXO脚手架 npm install -g hexo-cli

安装完后,我们就要自己新建一个文件夹做为hexo blog的存放目录。所以ls先查看一下当前目录下的文件。可以看到只有一个 storage 文件夹。这个相当于手机的根文件夹于是 cd 到这个目录下,再查看。并用 hexo init hexoblog 初始化并创建这个文件夹。然后再cd到这个文件夹下使用 npm install 安装HEXO博客框架。并使用 hexo s 启动服务。

再通过NPM安装HEXO。另外HEXO的运行单窗口模式下是动不了的,这种情况就需要把HEXO运行在后台,把HEXO运行在后台的话就要运用到几个技巧:
1.nohup命令忽略挂断信号,使进程与终端分离。基本命令:
# 在Hexo博客根目录下执行
nohup hexo server -p 4000 > hexo.log 2>&1 &
命令解释:
nohup:确保命令不因终端关闭而中断。> hexo.log:将标准输出重定向到hexo.log文件。2>&1:将标准错误也重定向到标准输出(即同一个日志文件)。&:让命令在后台运行。
但是这里我选择使用 nohup hexo server -p 4000 > hexo.log 2>&1 &

可以看到这个时候HEXO已经在后台启动了。
其它隐藏后台的方法:
2.PM2 是管理 Node.js 应用的理想工具,它能自动重启崩溃的进程,非常适合生产环境
npm install -g pm2
之后建启动脚本:在 Hexo 的根目录下创建一个名为 run.js的文件,内容如下:
const { exec } = require('child_process');
// 将端口号改为你自己使用的端口
exec('hexo server -p 4000', (error, stdout, stderr) => {
if(error){
console.log(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
})[2,4](@ref)。
启动与管理:
- 启动:在
run.js所在目录运行pm2 start run.js。 - 查看状态:使用
pm2 status或pm2 list查看运行状态。 - 查看日志:使用
pm2 logs run。 - 设置开机自启:可以运行
pm2 startup和pm2 save来配置
3.使用 screen 或 tmux 终端会话这种方法将会话与终端分离,适合需要直接与 Hexo 进程交互的场景。
•安装 screen(通常系统已预装):# 如果未安装,例如在Ubuntu/Debian上:
sudo apt-get install screen
•基本使用:
# 创建一个名为"hexo"的新会话并进入
screen -S hexo
# 在新建的会话中启动Hexo
hexo server -p 4000
# 按 Ctrl + A, 松开后按 D,从会话中分离(detach)
# 此时即使关闭终端,Hexo也在后台运行
# 恢复(重新连接)到hexo会话
screen -r hexo
# 如果只有一个screen任务,可直接用 screen -r
因为现在把HEXO在后面运行了,至此,我们还可以再给它上一个穿透。
因为之前已经安装了穿透。这个时候我直接运行命令就可以了。

然后就会进入CPOLAR的命令行面板

通过这个四级域名即可公网访问了。然后打包我之前的HEXO站点通过Termux的最佳搭档“Material Files”文件管理器。直通Termux的环境文件夹,把打包好的HEXO丢进HEXOBLOG里重新生成并后台启动HEXO服务。再对4000端口穿透一下。


搞定

这部手机是Vivo S1 Pro 8+256G的。165元捡来的再加了个64G的TH卡,平时搭几个站运行点服务表示压力不会太大。

发表回复