title: 废物利用–旧手机搭建linux服务器
date: 2020-01-10 20:00:00


废物利用–旧手机搭建linux服务器

文章目录

  • 废物利用--旧手机搭建linux服务器
  • 设备&环境
  • 前期准备
  • 安装 linux deploy
  • ssh连接(内网)
  • 组网
  • sunny ngrok
  • frp内网穿透(自备公网IP服务器)

设备&环境

  • Adroid手机: Honor 10 COL-AL10
  • 手机操作系统: Android 8.1.0 & EMUI 8.1.0
  • 电脑操作系统: Ubuntu 18.04LTS (如果刷root需要windows系统)
  • adb-1.0.39 (可选)
  • 服务器系统: ubuntu Bionic

前期准备

  1. root是必不可少的, 华为/荣耀的手机会麻烦写,我是找了淘宝让别人远程帮刷,花了80大洋,心疼
  2. 我的荣耀10坏的地方还挺多,wifi数据上网都不彳亍, 买了一根支持pd充电的网线拓展坞. 不仅耳机口坏了而且蓝牙坏了,想做个小米音响都不行.
  3. 安装adb(可选)
    可以不通过电脑数据线连手机安装linux deploy
    ubuntu可以用apt安装, 可以参考Ubuntu安装adb
  4. 手机设置允许USB调制
  5. 辅助工具(可选)scrcpy, 能将手机的屏幕投到电脑屏幕上
sudo snap install scrcpy
  1. 手机端推荐工具: 黑客键盘(可选)、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地址

AndroidX改造 旧安卓改造_ubuntu

命令su可以切换到root

连接成功!

组网

大概查了一下, 想让外网访问内部局域网, 有内网穿透和搭建vpn两种方法(openvpn), 这里我使用的内网穿透的方法.

这两种方法都是需要已知公网的服务器的, 或者有的平台会做内网穿透的服务. 花生壳一步一收费,成本高于买服务器自己组. sunny ngrok有免费的内网穿透服务, 但试了一下ssh连时有时输个命令都会卡, 虽然付费的也不贵. 也可以考虑买便宜的服务器.

sunny ngrok

注册之类的就不说了, 点隧道管理–>开通隧道,最后一个是免费的

AndroidX改造 旧安卓改造_ubuntu_02

点击立即购买,配置如下:

AndroidX改造 旧安卓改造_android_03

ssh使用tcp+22端口, 不建议更换, 如果是搭网页的话使用http+80端口, 隧道名称随便输

ps. 因为免费的只能申请一个, 这里这是演示截图, 和后面的端口号不一样

安装客户端: http://www.ngrok.cc/download.html

AndroidX改造 旧安卓改造_linux_04

这里选择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在隧道管理下:

AndroidX改造 旧安卓改造_linux_05

隧道启动成功界面:

AndroidX改造 旧安卓改造_网络_06

(电脑)ssh通过端口转发的域名连接:

ssh IP地址 -p 端口

端口不能省略,因为是端头转发,不是默认的22了

AndroidX改造 旧安卓改造_ubuntu_07

这样就完成了

frp内网穿透(自备公网IP服务器)

下载: https://github.com/fatedier/frp/releases

AndroidX改造 旧安卓改造_网络_08

一个为客户端, 一个为服务端

配置客户端(手机)

手机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*  # 删掉不用的服务端

目录如下:

AndroidX改造 旧安卓改造_ubuntu_09

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的左侧栏中找到安全组

AndroidX改造 旧安卓改造_网络_10

增添这一行:

AndroidX改造 旧安卓改造_ubuntu_11

配置文件frps.ini可以不做修改

[common]
bind_port = 7000

启动服务端并挂起:

./frps -c frps.ini

AndroidX改造 旧安卓改造_网络_12

外网ssh连接手机服务器:

ssh myserver -p 6000

AndroidX改造 旧安卓改造_android_13

成功!