设备&环境
- 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, 能将手机的屏幕投到电脑屏幕上
1
sudo snap install scrcpy
手机端推荐工具: 黑客键盘(可选)、JuiceSSH(可选)
安装 linux deploy
下载地址: https://github.com/meefik/linuxdeploy/releases
在下载好的位置安装:
1 | adb install linuxdeploy-2.6.0-259.apk |
打开后软件如图所示:
修改配置(右下角), 名字linux可以在左侧栏的配置文件中修改
发行版, 这里给出的不是版本数字而是代号, 可参考Ubuntu 各版本代号简介, 我选择bionic
允许初始化这里勾选后, 我这里出现了问题, ssh启动失败. 建议不勾选.
允许使用SSH服务器(必须)
只做服务器不建议允许使用图形界面和音频输出
其余配置根据自己情况设置/不用改, 可参考我的配置:
然后返回主界面,右上角三个点, 点击配置. 会提示需要root权限.
然后三个点位置点击安装, 进行漫长的安装,<<< deploy
说明安装完成
点击启动,倒数第二行的ssh一定要是done, 否则需要重装
ssh连接(内网)
电脑端终端或者手机上JuiceSSH(或者其它终端软件)都能连
(电脑)复制公钥 :
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP地址 |
ssh连接,免密登录:
1 | ssh 用户名@IP地址 |
命令su
可以切换到root
连接成功!
组网
大概查了一下, 想让外网访问内部局域网, 有内网穿透和搭建vpn两种方法(openvpn), 这里我使用的内网穿透的方法.
这两种方法都是需要已知公网的服务器的, 或者有的平台会做内网穿透的服务. 花生壳一步一收费,成本高于买服务器自己组. sunny ngrok有免费的内网穿透服务, 但试了一下ssh连时有时输个命令都会卡, 虽然付费的也不贵. 也可以考虑买便宜的服务器.
sunny ngrok
注册之类的就不说了, 点隧道管理–>开通隧道,最后一个是免费的
点击立即购买,配置如下:
ssh使用tcp+22端口, 不建议更换, 如果是搭网页的话使用http+80端口, 隧道名称随便输
ps. 因为免费的只能申请一个, 这里这是演示截图, 和后面的端口号不一样
安装客户端: http://www.ngrok.cc/download.html
这里选择linux arm版
1 | # 复制压缩包到服务器,改成自己的用户名/服务器IP |
隧道ID在隧道管理下:
隧道启动成功界面:
(电脑)ssh通过端口转发的域名连接:
1 | ssh IP地址 -p 端口 |
端口不能省略,因为是端头转发,不是默认的22了
这样就完成了
frp内网穿透(自备公网IP服务器)
下载: https://github.com/fatedier/frp/releases
一个为客户端, 一个为服务端
配置客户端(手机)
手机cpu的框架是arm, 64位
1 | scp frp_0.34.3_linux_arm64.tar.gz 192.168.5.14:/home/loli/ |
目录如下:
frpc的c指的client客户端, 在这里指的是手机, frps的s指的是server服务端, 这里指具有公网ip的服务器
修改frpc.ini配置文件
1 | [common] |
启动并挂起:
1 | ./frpc -c frpc.ini & |
配置服务端(vps)
1 | # 关闭防火墙 |
如果是阿里云配置下面一步:
在控制台云服务器ECS的左侧栏中找到安全组
增添这一行:
配置文件frps.ini可以不做修改
1 | [common] |
启动服务端并挂起:
1 | ./frps -c frps.ini |
外网ssh连接手机服务器:
1 | ssh myserver -p 6000 |
成功!
tips
tips:
- frpc.ini中
server_addr
可以使用自己的域名
假如vps出了问题, 可以重新解析域名到新的vps上, 再运行frps(无法和手机在同一网段内) - 可以在内网服务器上设置定时任务, 每隔一段时间重新检测连接vps, 防止断连
创建cycle_frp.sh
, 下边仅供参考, 需要修改路径1
2
3
4
5
6
7
8
9
if [ `ps -ef|grep frpc|wc -l` -gt 1 ];
then
echo [$(date "+%Y-%m-%d %H:%M:%S")] frpc正在运行 >> /home/loli/frp/setupfrp.log;
else
echo [$(date "+%Y-%m-%d %H:%M:%S")] frpc未运行, 重新启动 >> /home/loli/frp/setupfrp.log;
nohup /home/loli/frp/frp_0.34.3_linux_arm64/frpc -c /home/loli/frp/frp_0.34.3_linux_arm64/frpc.ini &
fi
设置定时任务:
1 | chmod +x cycle_frp.sh # 增加权限 |