旧手机闲置?教你用Termux搭建个移动服务器
Posted DieHunter1024
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旧手机闲置?教你用Termux搭建个移动服务器相关的知识,希望对你有一定的参考价值。
目录
前言
最近偶然看到网上有人用KSWEB搭建本地服务器,于是突发奇想也想在手机中搭建一个node环境试试,趁着周末有空,麻溜的试了试。这篇文章将针对我的搭建过程,遇到的问题及解决方案做个记录
我的计划是使用手机搭建一个node环境,通过内网穿透将服务器暴露。然而KSWEB主打php+mysql,暂时不适合我,所以在网上找了几个解决方案:Termux,Linux Deploy,Anbox
最终基于方便和轻量,选择了Termux,说干就干
前情提示:安卓6的机子由于各种兼容问题最终还是没有完成搭建,后续使用的是安卓9的机子
准备工作
- Termux
- 安卓手机(最好是安卓7+,并且不使用模拟器),我的一号机是荣耀6-安卓6;二号机是华为荣耀-安卓9
- vpn
- 谷歌商店,有最好
- 电脑:adb
实践
安装Termux:
有无谷歌商店:有的话直接安装,没有的话请往下看
如果是高版本的手机一般不会有安装不上的问题(在安卓模拟器上我出现过无法安装的问题),如果安装不上可以先使用数据线连接电脑,运行下面的指令查询手机CPU架构
adb shell getprop ro.product.cpu.abi
并直接在GitHub下载对应的包安装
直接使用adb install 安装包路径+安装包全称进行安装
如果是低版本的系统,像我这用的是安卓6,只能下载历史版本的软件
这里是老版本的地址(需要vpn),没vpn的用这个地址
运行Termux:
运行软件踩坑的开门红是软件的bootstrap安装,软件第一次安装初始化时会请求bootstrap模块(这一步需要挂梯子),低版本安卓6挂梯子仍然出现这个提示
在安卓9的高版本程序中挂梯子顺利请求到并安装成功
初步猜测是软件版本过低,拿不到依赖包,使用Fiddler抓包试试
果不其然,请求的地址拿不到源文件,直接报404
我的解决方案是参考之前的文章使用重定向,代理到新的源文件中,这个也需要开vpn
下面是增加的函数
static function ReplaceUrl(oSession, origin_host, replace_host)
if(oSession.fullUrl.indexOf(origin_host)!=-1)
MessageBox.Show(oSession.fullUrl)
oSession.fullUrl = oSession.fullUrl.Replace(origin_host,replace_host);
var replace_host = 'https://archive.org/download/termux-repositories-legacy/bootstrap-archives-legacy-24.12.2019.tar/bootstrap-archives%2Fbootstrap-arm.zip'
var origin_host = 'https://termux.net/bootstrap/new/bootstrap-arm.zip'
ReplaceUrl(oSession, origin_host, replace_host)
完成下载安装bootstrap模块后,就可以继续下一步操作了
有个注意点,如果无法挂vpn的同学可以找到我的文件中的termux-v0.79-offline-bootstraps.apk离线包直接安装,如果安装后报错的话则还是需要挂梯子安装手机对应架构的bootstrap模块
环境配置:
termux的操作可以参考这篇文章,讲的很详细
前置操作,切换pkg的国内镜像
sed -i 's@^\\(deb.*stable main\\)$@#\\1\\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\\(deb.*games stable\\)$@#\\1\\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\\(deb.*science stable\\)$@#\\1\\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg update
Node安装
pkg i node-lts
远程或局域网连接ssh
先在termux上安装nmap和openssh
pkg i nmap openssh -y
设置termux密码
passwd
启动ssh和nmap
sshd
nmap 127.0.0.1
看到这个基本就大功告成,在电脑上用git-bash试试(手机ip可以在手机设置或使用命令ifconfig查看)
ssh 192.168.0.103 -p 8022
效果展示
部署一个Node项目
const http = require("http");
http
.createServer((_, res) =>
res.setHeader("Access-Control-Allow-Origin", "*"); //设置响应头解决跨域
console.log("get msg");
res.write("hello world");
res.end();
)
.listen(10243, () =>
console.log("server start");
);
写个最简单的node服务部署到服务器中
在局域网中输入http://192.168.0.103:10243/
写在最后
至此,一个完整的移动端服务搭建完成
参考这篇文章:没有云服务器?内网穿透了解一下_DieHunter1024的博客-CSDN博客
可以将服务器部署至公网中,有兴趣的同学可以试试
感谢你看到这里,希望这篇文章能帮助你
如果有帮助还请支持一下博主,感谢!
Android手机做为云服务器实操
Android手机做为云服务器实操
工具-TWRP-frp-Termux】旧手机暴改成免费云服务器
旧手机搭建云服务器
教你从0到1升级自己的旧手机,让你家里成为云服务中心
旧安卓机别扔了,自制 Web 服务器了解一下!
旧手机搭建个人服务器教程
1. 一台旧手机
2. Termux工具
先关问题查看 【教程】使用Termux在手机上运行Python
2.1 更换安装源
Termux 镜像使用帮助
手动是修改
编辑 $PREFIX/etc/apt/sources.list 修改为如下内容
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main
命令修改
sed -i 's@^\\(deb.*stable main\\)$@#\\1\\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list
apt update && apt upgrade
2.2 安装vim 、 Python、Flask
请使用内置或安装在 Termux 里的文本编辑器,例如 vi / vim / nano 等,不要使用 RE 管理器等其他具有 ROOT 权限的外部 APP 来修改 Termux 的文件
pkg install vim
pkg install python
pkg install flask
2.3 flask Demo服务器
from flask import Flask
app = Flask(__name__)
import threading
count = 1
@app.route("/hello")
def hello():
return "hello"
if __name__ == '__main__':
app.run(host='0.0.0.0',port = 8080,debug=True)
ifconfig
可以查看,也会有提示,注意这个app.route
3. 内网穿透工具
ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考博客:10分钟教你搭建自己的ngrok服务器
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
教程:最简单的FRP内网穿透教程
4. Hexo博客测试
Hexo + Github + 域名 参照安装生成 hexo s --debug
5. 内网穿透连接域名待续~~
以上是关于旧手机闲置?教你用Termux搭建个移动服务器的主要内容,如果未能解决你的问题,请参考以下文章
安卓手机使用Termux搭建web服务器(含frp内网穿透wake on lan远程唤醒)