title: 废物利用–旧手机搭建linux服务器
date: 2020-01-10 20:00:00
废物利用–旧手机搭建linux服务器
设备&环境
- Adroid手机: Honor 10 COL-AL10
- 手机操作系统: Android 8.1.0 & EMUI 8.1.0
- 电脑操作系统: Ubuntu 18.04LTS (如果刷root需要windows系统)
- adb-1.0.39 (可选)
- 服务器系统: ubuntu Bionic
前期准备
-
root是必不可少的, 华为/荣耀的手机会麻烦写,我是找了淘宝让别人远程帮刷,花了80大洋,心疼
-
我的荣耀10坏的地方还挺多,wifi数据上网都不彳亍, 买了一根支持pd充电的网线拓展坞. 不仅耳机口坏了而且蓝牙坏了,想做个小米音响都不行.
-
安装adb(可选)
可以不通过电脑数据线连手机安装linux deploy
ubuntu可以用apt安装, 可以参考Ubuntu安装adb
-
手机设置允许USB调制
-
辅助工具(可选)scrcpy, 能将手机的屏幕投到电脑屏幕上
sudo snap install scrcpy
-
手机端推荐工具: 黑客键盘(可选)、JuiceSSH(可选)
安装 linux deploy
下载地址: https://github.com/meefik/linuxdeploy/releases
在下载好的位置安装:
adb install linuxdeploy-2.6.0-259.apk
打开后软件如图所示:
修改配置(右下角), 名字linux可以在左侧栏的配置文件中修改
-
发行版, 这里给出的不是版本数字而是代号, 可参考Ubuntu 各版本代号简介, 我选择bionic
-
允许初始化这里勾选后, 我这里出现了问题, ssh启动失败. 建议不勾选.
-
允许使用SSH服务器(必须)
-
只做服务器不建议允许使用图形界面和音频输出
-
其余配置根据自己情况设置/不用改, 可参考我的配置:
然后返回主界面,右上角三个点, 点击配置. 会提示需要root权限.
然后三个点位置点击安装, 进行漫长的安装,<<< deploy
说明安装完成
点击启动,倒数第二行的ssh一定要是done, 否则需要重装
ssh连接(内网)
电脑端终端或者手机上JuiceSSH(或者其它终端软件)都能连
(电脑)复制公钥 :
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP地址
ssh连接,免密登录:
ssh 用户名@IP地址
命令su
可以切换到root
连接成功!
组网
大概查了一下, 想让外网访问内部局域网, 有内网穿透和搭建vpn两种方法(openvpn), 这里我使用的内网穿透的方法.
这两种方法都是需要已知公网的服务器的, 或者有的平台会做内网穿透的服务. 花生壳一步一收费,成本高于买服务器自己组. sunny ngrok有免费的内网穿透服务, 但试了一下ssh连时有时输个命令都会卡, 虽然付费的也不贵. 也可以考虑买便宜的服务器.
sunny ngrok
网址: http://www.ngrok.cc
注册之类的就不说了, 点隧道管理–>开通隧道,最后一个是免费的
点击立即购买,配置如下:
ssh使用tcp+22端口, 不建议更换, 如果是搭网页的话使用http+80端口, 隧道名称随便输
ps. 因为免费的只能申请一个, 这里这是演示截图, 和后面的端口号不一样
安装客户端: http://www.ngrok.cc/download.html
这里选择linux arm版
# 复制压缩包到服务器,改成自己的用户名/服务器IP
scp linux_arm.zip hjy@192.168.5.14:/home/hjy/linux_arm.zip
# 连接服务器
ssh hjy@192.168.5.14
su
apt install unzip # 已有unzip或者解包后再传的忽略这步
unzip linux_arm.zip # 解压
# 启动隧道
linux_arm/sunny clientid 隧道ID
# 挂起使用setsid
setsid linux_arm/sunny clientid 隧道ID &
隧道ID在隧道管理下:
隧道启动成功界面:
(电脑)ssh通过端口转发的域名连接:
ssh IP地址 -p 端口
端口不能省略,因为是端头转发,不是默认的22了
这样就完成了
frp内网穿透(自备公网IP服务器)
下载: https://github.com/fatedier/frp/releases
一个为客户端, 一个为服务端
配置客户端(手机)
手机cpu的框架是arm, 64位
scp frp_0.34.3_linux_arm64.tar.gz 192.168.5.14:/home/hjy/
ssh 192.168.5.14
tar -xvf frp_0.34.3_linux_arm64.tar.gz
cd frp_0.34.3_linux_arm64/
rm frps* # 删掉不用的服务端
目录如下:
frpc的c指的client客户端, 在这里指的是手机, frps的s指的是server服务端, 这里指具有公网ip的服务器
修改frpc.ini配置文件
[common]
server_addr = xxxx
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
启动并挂起:
./frpc -c frpc.ini &
配置服务端(vps)
# 关闭防火墙
ufw disable
systemctl stop firewalld.service
如果是阿里云配置下面一步:
在控制台云服务器ECS的左侧栏中找到安全组
增添这一行:
配置文件frps.ini可以不做修改
[common]
bind_port = 7000
启动服务端并挂起:
./frps -c frps.ini
外网ssh连接手机服务器:
ssh myserver -p 6000
成功!