家中废弃的手机有好几个啦,特别是屏幕碎了,但是性能还算不错的手机,扔了浪费,换屏又不值得,能否把安卓当作一台低功耗的服务器使用呢?
等我有空了研究一下,当作一个小型的服务器也不错啊。
Termux
安装自行百度,很简单就是一个app。
安装完以后,我的第一个想法,能否通过电脑ssh远程这台手机呢?这个暖心键盘操作起来会比较爽。
Termnux安装ssh服务
安装openssh
apt update
apt install openssh
启动sshd服务
sshd
这样手机上就安装好了 ssh并启动了服务。
哇,竟然真可以!这样直可以把安卓手机当Linux用啦!我在继续研究一下。
设置自动启动ssh服务
echo "sshd" >> ~/.bashrc
连接手机的ssh
手机查看当前用户名
whoami
我的显示结果为:
u0_a131
手机查看当前ip
ifconfig -a
我的手机当前的ip为 :192.168.101.156
连接测试
电脑上运行:
ssh -p 8022 u0_a131@192.168.101.156
这里需要说明一下 手机上安装的ssh默认端口为 8022
,真没想到我一次就连接成功啦。那么问题来了,这里的用户u0_a131密码是多少啊?
那我们设置一下这个密码如何?
修改密码
passwd
在次连接
ssh -p 8022 u0_a131@192.168.101.156
输入我新设置的密码 123456,成功进来啦!!!
没想到这么简单,我的手机竟然变成了一台Linux服务器啦!!!
下面我尝试看看能不能安装jdk😝
Termux中安装Java环境
执行以下代码:
pkg install wget && wget https://raw.githubusercontent.com/MasterDevX/java/master/installjava && bash installjava
上面的代码执行完成了,很快就出现上面的界面,我以为又轻松的成功了,然而并没有。
$ java -version
Bad system call
这咋办呢?暂时没有思路。
我又执行了一次:
wget https://raw.githubusercontent.com/MasterDevX/java/master/installjava && bash installjava
我在想会不会是path的环境变量没有配置,先去吃饭了,回来在搞搞。
Bad system call解决办法
经我发现java应该已经安装成功了,因为 /data/data/com.termux/files/usr/bin目录中实际上是有java的。
那就在换个思路吧! 会不会是没有权限的呢?会不会java需要有root权限来执行呢?
Termux 使用root权限
安装proot
pkg install proot
执行
termux-chroot
网上说,这样就可以获取root权限。但是我看前面的$还是没变啊。
运行完成后再次执行
每次进来还要手动执行termux-chroot设置自启动
java -version
运行成功啦,这也太爽了!有了java就可以玩太多的东西啊。这台安卓手机已经不是一台普通的手机啦,成了服务器啦。
来了解一下这台服务器的配置信息吧。
top
不看不知道,一看吓一跳,这不就是我手机上的信息吗?这里的com.tencent.mm应该是腾讯的app的进程吧。我本以为这个Termux只是一个安卓模拟器,看来没那么简单啊。感觉这更像是linux的终端啊。
第一个在手机上运行的spring boot程序
上传 jar文档到手机上
在Mac上我使用 sftp工具FileZilla把springboot.jar上传到手机上啦。
这个会ssh的应该都会吧?不清楚怎么用的看这里:
运行 spring boot项目
java -jar springboot.jar
竟然运行成功啦!刷新了我对安卓手机的认知了。
然后浏览器中访问:http://192.168.101.156:8082/
竟然正常可以访问!这哪个手机啊,这不就是低功耗的linux服务器吗?
图形界面
已知问题
我在启动我的spring boot 项目后,发现项目中用到的数据源无法正常访问。
我猜测应该是 dns对域名解析的问题,暂时未解决,有空在研究吧。
/etc/resolv.conf
#若此文件为空,则
rm /etc/resolv.conf
echo “nameserver 8.8.8.8” >> /etc/resolv.conf