关于在闲置安卓手机(小米6)运行Linux的尝试
小米6是小米公司在2017年4月19日正式发布的手机,是小米数字系列的第六代手机,搭载高通骁龙835处理器,6GB LPDDR4x运行内存……emmm偏题了
总体思路是这样的,首先需要在手机上能够运行linux,然后需要搭建需要的环境,例如我打算安装个宝塔面板试试。要让其作为服务器,则需要能够在公网连接它,我这边通过阿里云DNS解析它的ipv6地址。最后的最后,由于目前运营商公网ipv6地址在一段时间后会重新分配,需要配置一个自动获取新IP地址并且通过阿里云Accesskey修改DNS云解析(本牛的域名在万网,所以用阿里云的DNS解析,你如果是其他注册商的,应该也是没问题的~),进行重新解析的功能,到此理论上小米6就成为了一台仅ipv6访问的服务器。
写在前面:手机运行linux可以算是一次尝试和学习,最终能否满足各自的需求有待考量,如果真有个人轻量化服务器的需求还是建议大家使用正经服务器,
- 背景1:在网络上收集经验时发现有UbuntuTouch这个东西,但是经过尝试,发现安装程序无法写入,需要安装这个UT tweaktool程序解锁文件系统写入权限,但是我这边安装完后打不开(不知道是否是我的问题),故在此略过。
- 背景1:发现可以使用Termux来在Android上运行linux,但是它作为一个仿linux终端程序,兼客性比较差。经过尝试,在Termux中,遇到需要使用到root权限的内容就会比较麻烦,故也在此略过。
一、准备工作
我的小米6使用的是MIUI9的开发版,起初打算直接在安全中心获取root,但官方支持已过期不能在授权管理开启root,且它提供的root不算真正的root。
所以需要给它刷上面具Magisk,获取root权限。
需要解锁system分区,去酷安下载syslock这个app,授予root权限便可一键开启。
下载Linux Deploy和busybox如图:
在其他设备上准备好ssh连接软件,电脑上可以用Xshell(个人家庭用户免费),手机上可以用ConnectBot,当然ssh连接工具的选择是多样的,你们可以选自己喜欢的~
二、安装容器
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。
Linux Deploy是在 Android 上运行的chroot容器。使用Linux Deploy,通过简单的操作,可实现运行Debian/Ubuntu 等多个流行的 Linux 发行版本。
1、安装BusyBox
- 安装好BusyBox后在手机上运行它,界面上有“INSTALL”和“REMOVE”按钮,点击INSTALL,记下上方显示的路径,一般为 /system/xbin ,可以在设置中更改
2、配置Linux Deploy
打开Linux Deploy,点击左上角 => 设置,在应用一栏中将锁定WI-FI和CPU唤醒勾选上
可以打开开机自启动
在环境一栏中设置PATH变量为 /system/xbin,就是上文提到的BusyBox里显示的路径,之后点击更新环境
在调试一栏中,将调试模式勾选上
回到Linux Deploy主界面,点击右下角 ≡ 配置Linux Deploy
发行版GUN/LINU选择CentOS,架构这里取决你的CPU架构,一般软件自动识别,小米6是aarc64,源地址:这里填的是网络地址,这里推荐使用国内的镜像源
http://mirrors.ustc.edu.cn/centos-altarch/
,安装类型我选择的是镜像(其他的类型我没尝试),安装路径我填为:/data/linux.img 。然后下面有一处自定义镜像大小,我打算分配50G空间,它这里的单位是MB,故写做51200MB,可根据自己需求调整往下翻,有一处文件系统,默认ext4不做改动,用户名自行设置,我这里设置为root,密码自行设置
接着往下翻,初始化启用这里将其勾选,按照网络上的说法是“一般情况下只要把“初始化”打上勾就行了,这样就可以开机自动执行“rc.local”文件里的内容了”,最后,把下面启用SSH服务器勾选,至此,针对Linux Deploy的配置就结束了。
现在回到Linux Deploy的主界面,点击右上角安装,耐心等待安装完成后,点击下方启动按钮
至此,在手机上的操作就结束了。
三、连接SSH
- 打开SSH工具,主机名用户名@IP地址,这个IP地址可以看Linux Deploy软件顶上的显示,SSH端口默认22,其它的略过不谈,出现用户名@XXX就表明连接上了,大家可以根据自己需求随便玩弄了~
接下的内容是讲一讲我实现将小米6手机作为带域名的公网ipv6的服务器的过程
四、宝塔面板的安装配置
- 我目的是将小米6手机作为带域名的公网ipv6服务器,我这里选择安装宝塔面板,主要是图它个简单易操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17安装wget
yum install wget
更换阿里源
cd /etc/yum.repos.d/
cat CentOS-Base.repo
wget http://mirrors.aliyun.com/repo/Centos-altarch-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
查看是否更换成功
cat CentOS-Base.repo
更换成功后清除缓存并重建
yum clean all
yum makecache
安装环境
yum install screen iptraf-ng unzip openssh-clients subversion git man setuptool system-config-firewall-tui ntsysv vim links bzip2 pcre-devel zlib-devel NetworkManager-tui mariadb-server gcc-c++ make
更新软件
yum -y update
安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh - 安装完成后,键入
bt
查看宝塔控制台功能,自行修改用户名和密码,bt 14
查看面板开放端口,使用浏览器进行访问。 - 可以输入命令关闭宝塔面板安全入口:
rm -f /www/server/panel/ data /admin_path.pl
随后直接输入IP地址:端口来访问面板,这里可以看到,已成功登录宝塔面板
- 在宝塔安装nginx后,新建一个网站,自动生成index.html页面,我进行了一点点修改哈哈~
- 在网站设置中设置指向你的服务器ip地址(如果有公网ipv4地址得话)或者域名(在域名注册商进行DNS解析)
- 到这里,小米6服务器已经能够正常内网访问了,那么接下来是进行动态域名解析
动态域名解析服务(DDNS),是把一个固定的域名解析到一个具有动态IP的主机上,因此始终可以通过一个固定的域名访问这台设备的IP地址
五、配置动态域名解析
- 上文提到,自己拥有域名得话,可以在域名注册商进行DNS解析,但是本人这边ipv6地址不固定,每次ip变化就需要手动到域名控制台修改解析,那么就需要一个工具来帮助我们自动化这个流程。目前网上比较热门的解决方案有使用ddns-go,但它并未提供供安卓手机使用的版本。
- 最终我还是找到了一个app自动管理域名注册商的DNS解析服务,间隔十分钟检测ip变化并同步到DNS解析控制台,我使用Accesskey进行配置后,查看了操作记录,确实有每间隔十分钟对dns云解析进行操作,但是至今我的ipv6地址未变化过,故先不下定论能否使用。
写在最后:一切就绪之后,仍然不能从外网访问到index.html,经过查找问题,我发现HTTP和HTTPS默认的80与443端口被运营商禁用,解决办法是可以在域名后手动加其他端口并绑定网页,如此操作一番,大获成功~
当然,手机需要运行linux也能开启网页服务器,没必要一番折腾来这里开网页哈哈,至于这手机成为服务器之后干什么用,自己钻研钻研,有什么好的想法欢迎分享~