📱用旧手机搭建Linux服务器
00 分钟
2023-5-23
2024-3-11
type
status
date
slug
summary
tags
category
icon
password
注:本教程基于 ZeroTermux 软件,若有侵权联系删除!

准备阶段

材料:
一部安卓的旧手机(若已root可解锁更多玩法)
一张手机卡(用于分配ip地址,使用其分配的ipv6地址实现远程访问)
或者如果你家的宽带能给设备分配公网ipv6地址也可以不用手机卡
能折腾的肝

步骤

下载安装 ZeroTermux 软件
软件已经模拟了一个阉割版的Linux系统,但是其功能并不完整
想要远程使用ssh连接本机还需要进行以下操作

必要配置

换源提升官方下载服务的下载速度

右滑屏幕左侧轻按音量+键打开右侧菜单
按第一个按钮切换源为清华源
notion image
后续会有几次询问,一律输入y回车

安装vim

vim为Linux常用文本编辑器,软件内模拟环境并没有自带,需要额外安装。
后续会有几次询问,一律输入y回车。

设置软件后台免杀

在手机设置中将软件设置省电白名单
输入以下命令设置后台免杀
在文件内任意位置(除了注释)插入如下内容

安装sshd服务

安装

在软件界面输入如下指令
出现询问选项一律输入y回车
安装完成后输入sshd启用服务
此时已经可以通过ssh连接到本机

连接方法

连接方法有以下两种:
  1. 局域网连接
客户端(请求连接的设备)和服务端(旧手机)连接同一个局域网
服务端打开设置查询本机 ip ,复制格式为 192.168.x.x 的内网ip地址(各品牌手机步骤略有不同,自己百度)
客户端(电脑):Win + R 输入 cmd 打开命令行输入:
客户端(手机):同样安装ZeroTermux软件并安装sshd服务后,直接输入
其中端口默认为8022(不是22是因为非 root 状态下22端口无权调用,所以安装的 sshd 服务默认为8022端口连接),用户名可以在服务端输入 whoami 查询到本机登录的用户名
  1. 流量连接
服务端打开设置查询本机 ip ,复制 ipv6 格式的内网 ip 地址(各品牌手机步骤略有不同,自己百度)
客户端(仅支持 WIFI 的电脑):另一部手机打开流量并打开热点,电脑连接后使用cmd输入
客户端(手机):同样安装ZeroTermux软件并安装sshd服务后,直接输入

设置开机自启

右滑屏幕左侧轻按音量+键打开右侧菜单
向下滑找到开机启动按钮,切换为开状态
notion image
重启软件看到以下提示即成功开启
输入以下命令设置sshd开机自启
在文件内任意位置(除了注释)插入如下内容

远程连接ssh

上一步已经部署好了sshd服务,可以通过ipv6地址在流量环境下使用ssh连接,但流量运营商分配的ipv6地址会定期更换,不便于ssh的连接,那么如何解决这一问题呢?
可以购买网上的DDNS(动态域名解析)服务,将你的服务端的ipv6地址绑定到一个域名上面,开启DDNS服务,按照其教程配置即可。
运营商提供的ipv6地址是公网ip,可以使用ssh连接上对应的机器,所以可以使用ipv6的机器理论上都可以连接上这个运营商ipv6指向的机器。
笔者写了一个脚本,起了个名字叫做lDDNS(local Dynamic Domain Name System),可以实现DDNS等效的功能,可以实现长期远程连接服务端,不用操心ipv6地址的变动,原理如下:
  1. 查询服务端ipv6地址,比较上一次查询结果是否相等
  1. 若相等则不做任何操作,若不相等则ipv6地址已变化,进行地址上传操作
  1. 有两个版本的上传,一个使用git上传到Github私有仓库,优点为免费,缺点为配置略微麻烦;另一个使用你自己购买的有公网ip的服务器,优点为速度快且安全,缺点为购买服务器有一定成本

Git版 脚本配置

安装

服务端安装git

连接Github仓库

生成密钥(后面一路回车)
复制公钥
复制输出的公钥打开Github并登录,在设置页面添加ssh密钥
notion image
notion image
notion image
Title内随便填一个名字
在Key内粘贴刚刚复制的ssh公钥
notion image
设置完成后在服务端输入如下内容(不要修改)
若提示Hi,则本地git已成功连接Github
在自己的Github下新建一个私有库
notion image
notion image
Repository name填入仓库名字
选择Private设置仓库为私有(除非你想公开你的ipv6地址)
选中Add a README file
notion image
修改生成分支为master
notion image
在服务端输入
操作结束后若能在仓库内看到a.txt则表示上传成功

安装脚本

回到lDDNS-git目录
输入脚本内容
在vim中输入如下内容并保存
输入以下命令测试是否成功
若能在仓库内看到更新的的lDDNS.txt文件,则安装完成

设置定时检查地址变化和开机自启

定时执行脚本可使用crontab这个工具,但是由于软件模拟的Linux没有systemctl服务,无法使用crontab这个工具,故使用无限循环脚本来实现定时检查功能。
在~/lDDNS-git目录下执行下列命令
在vim中输入以下内容并保存
输入以下命令设置lDDNS-git开机自启
在文件内任意位置(除了注释)插入如下内容

Server版 脚本配置

注意:Server版需要你有自己的服务器,且服务器拥有公网ip
PS:其实可以直接内网穿透,只不过内网穿透只针对一个端口

安装

创建lDDNS-server目录
输入脚本内容
在vim中输入如下内容并保存
输入以下命令测试是否成功
若能在服务器根目录看到更新的的lDDNS.txt文件,则安装完成

设置定时检查地址变化和开机自启

定时执行脚本可使用crontab这个工具,但是由于软件模拟的Linux没有systemctl服务,无法使用crontab这个工具,故使用无限循环脚本来实现定时检查功能。
在~/lDDNS-server目录下执行下列命令
在vim中输入以下内容并保存
输入以下命令设置lDDNS-git开机自启
在文件内任意位置(除了注释)插入如下内容

客户端ssh配置

使用以下脚本可以通过ipv6地址快速连接服务端
ssh_git.sh
ssh_server.sh

进阶操作

安装Linux系统

软件内模拟的Linux环境是不完整的,想要完整的Linux系统可以通过如下操作来安装(使用软件内置脚本)

步骤

右滑或双击屏幕左侧轻按音量+键打开右侧菜单
点击MOE全能开始安装脚本
notion image
后面有选项一律输入y回车
脚本安装完成后会进入这个界面,按上下键切换选项或上下滑动屏幕切换
这里如果手机未root则选择proot
手机已root则选择chroot
安装容器需要较长时间,请耐心等待
notion image
第一个选择配色可以跳过
该页面选择第一个选项,不可跳过
notion image
该选项随意选,无影响
notion image
该选项选择Baidu的DNS解析
notion image
NO
notion image
YES
notion image
这里笔者选第一个
notion image
这里笔者选第一个
notion image
这里选第一个进入安装界面
notion image
这里看自己喜好,笔者这里选择Ubuntu
notion image
这里笔者选第一个
notion image
进行安装,选第一个
notion image
请问您是否想要新建一个sudo用户呢?
选择 否
(忘记截这张图了。。)
notion image
进入这张图的界面,说明已经安装完毕了,可以选择取消退出该界面
notion image
等待语言环境安装完成之后,若弹出如下界面,说明已经安装成功并进入系统了
notion image

加密IP地址

虽然通过ssh传输的文件已经经过了ssh传输的加密保证不会被抓包获取明文IP,但是储存在云端的IP地址是明文保存的,如果不是很放心的话可以进行加密再传输使用,以下为需要修改的文件

Git版本 加密版

服务端

lDDNS_ipv6_git.sh

客户端

ssh_git.sh

Server版本 加密版

服务端

lDDNS_ipv6_server.sh

客户端

ssh_server.sh

补充

快速打开容器

在服务端目录内若想要快速打开Linux,可输入这条命令直接打开
其中参数需要修改为p或者c,取决于服务端安装的容器为proot还是chroot

在容器内安装宝塔

若安装完Linux系统后想要安装宝塔面板,需要在安装的Linux中先安装dpkg
然后才能安装得上宝塔面板(笔者踩过的坑)

修改命令行风格

如果想要原版Linux的命令行风格,在服务端界面下输入tmoe进入proot
notion image
选择第二个
notion image
notion image
先停止后台的进程
notion image
然后选第四个
notion image
选第八个,修改为bash
notion image
notion image
重新打开Linux,可以看到已经改好了
notion image

绑定域名

开机自启/后台保活

 
上一篇
修改 Referrer 实现绕过图片防盗链
下一篇
MySQL基础篇