利用旧手机搭建LinuxDeploy用作服务器,同时使用frp实现内网穿透

前提

1、一台已经root的手机(必须要root),我的是安卓9版本的小米9

2、需要的软件

Linux Deploy 下载地址

BusyBox 下载地址

JuiceSSH 或者 Termius都行 因为这三个软件的下载或多或少都需要具备外网的环境,所以如果没有下载途径的话可以直接从我下面的网盘里下载 网盘链接 提取码:30yj

安装以及配置步骤

1、安装BusyBox

安装好软件后直接打开点击install就行了,安装过程需要授予它root权限,默认的安装路径是 /system/xbin ,如果需要修改的话可以进到设置里面修改

2、安装Linux Deploy

安装好软件后,点击左上角三个横杠,选择设置,勾选 锁定Wi-Fi 和 CPU唤醒

之后将下面的 PATH变量 设置为你刚才BusyBox的安装路径,之后点 更新环境

3、配置Linux Deploy

发行版:我这里选择的是CentOS
架构:架构的话取决于你自己的CPU架构,可以去下载DevCheck 来查看自己的CPU架构,(选错架构的话会导致后面安装失败)可以看到我的是arrch64的,所以我的架构的那一栏就选择arrch64,选择其他发行版的话同理

源地址:推荐使用国内的镜像源,可以从下面的镜像源中选一个

http://mirrors.bfsu.edu.cn/centos-altarch/
http://mirrors.nju.edu.cn/centos-altarch/
http://mirrors.ustc.edu.cn/centos-altarch/

安装路径:默认
镜像大小:取决于你自己手机,可以和我一样先设4个G,反正之后可以调整
用户名与密码:自己随便设就行,用于后面通过ssh连接

本地化:选择 zh_CN.UTF-8
DNS:默认
挂载:根据自己需求,如果需要访问手机内部文件则勾选,挂载点设置为下图所示
SSH:没什么好说的,一定要启动,SSH设置保持默认就行

4、安装CentOS

上述配置完成后返回到主页,点击右上角三个点,选择安装,等待安装完成即可。之后点击启动,若如下图所示则表示启动成功,其中倒数第二行后面一定要是done,否则则意味着安装失败

5、登录到Linux

打开之前安装的JuiceSSH或者Termius,新建连接,服务器地址填 127.0.0.1 用户名和密码即为之前配置的用户名与密码,之后点击连接,不出意外的话,你就通过ssh连接上了你的Linux。同时你还可以使用处于同一局域网下的其他设备来连接到Linux,服务器地址即为你的手机IP,也就是显示在Linux Deploy软件主页上的地址。

下面讲如何通过内网穿透实现从公网访问这台手机上的Linux

主流的内网穿透工具有:花生壳、ngrok和frp,其中花生壳是收费的,而且价格还不太低,ngrok和frp都是免费的,不过ngrok免费版本每次启动会变IP,而frp的话则需要你拥有一台具有公网IP的服务器,由于我主要是自己搭着玩的,手上也正好有一台服务器,所以就选择了用frp来实现内网穿透。

服务端配置

frp下载地址:下载地址,根据架构不同,选择相应版本下载

 wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz

然后解压

 tar -zxvf frp_0.38.0_linux_amd64.tar.gz

可以将解压完的文件改个名,方便使用

 mv frp_0.38.0_linux_amd64 frp

进入frp目录中

 cd frp

下图为文件夹里包含的文件,其中前三个是与客户端相关的文件(以c结尾代表client即客户端)后三个则是与服务器相关的文件(以s结尾代表server)

因为我们是在配置服务端,所以我们可以把前三个文件删除

 rm frpc frpc.ini frpc_full.ini

然后修改frps.ini文件

 vim frps.ini

首次打开应该只有如下两行

向其中添加如下配置

bind_port:表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。

dashboard_port:是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为你服务器的IP)查看frp服务运行信息。

token:是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。

dashboard_user 和 dashboard_pwd:表示打开仪表板页面登录的用户名和密码,自行设置即可。

vhost_http_port 和 vhost_https_port:用于反向代理HTTP主机时使用,本文没有使用,可以不管

编辑完成保存退出就行(vim操作不会的话自行百度搜索)

之后就可以运行frps的服务端了

 ./frps -c frps.ini

如下图所示即代表运行正常,可以访问 x.x.x.x:7500 并使用自己刚设置的用户名密码登录,即可看到仪表盘界面

此时的服务端仅运行在前台,如果Ctrl+C停止或者关闭SSH窗口后,frps都会停止运行,因此使用nohup命令将其运行在后台,首先Ctrl+C停止服务,之后输入命令

 nohup ./frps -c frps.ini &

输出如下内容即表示正常运行

nohup: ignoring input and appending output to 'nohup.out'

此时使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序,可以看到frps在后台正常运行。

接下来配置服务器端开机自启。由于在Linux Deploy中搭建的CentOS无法使用systemctl以及service命令,所以我们需要进行下面的操作

wget https://github.com/smaknsk/servicectl/archive/1.0.tar.gz

tar -xf 1.0.tar.gz -C /usr/local/lib/

ln -s /usr/local/lib/servicectl-1.0/servicectl /usr/bin/servicectl

ln -s /usr/local/lib/servicectl-1.0/serviced /usr/bin/serviced

之后

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]
Description=fraps service
After=network.target network-online.target syslog.target
Wants=network.target network-online.target

[Service]
Type=simple

#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

然后启动frps

sudo servicectl start frps

打开自启动

sudo servicectl enable frps

至此服务端配置完毕

客户端配置

同样使用wget命令将相应版本的frp压缩包下载并解压,并删除其中frps相关的文件,留下frpc相关文件,编辑frpc.ini文件,默认打开如下图所示

由于之前在服务端配置了token,所以在客户端我们需要加入token

其中common字段下的三项分别为服务端的IP地址、端口以及刚添加的token,这些与之前服务端配置的保持一致就行

SSH字段则可以理解为自定义的规则,若之后你需要映射其他的端口,按照它的格式填写即可。

[SSH]:表示规则名称,自己定义
type:表示转发的协议类型,有TCP和UDP等选项可选择,可自行查询frp的手册
local_port:是本地应用的端口号,保持一致就行
remote_port:为该条规则在服务端开放的端口号,自己定义

配置完成即可运行frpc了,执行如下命令

./frpc -c frpc.ini

配置开机自启则与服务端配置相似。

之后即可通过SSH连接到你的手机,IP地址为你服务器的IP地址,端口号为6000(即为你在SSH字段定义的端口),用户名与密码即为最初配置Linux Deploy设置的用户名与密码,教程结束。

-> 加入科技玩家交流群组:点击加入 注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @SeaMoon 发布。如若转载,请注明出处: 科技玩家 » 利用旧手机搭建LinuxDeploy用作服务器,同时使用frp实现内网穿透

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿

js脚本编写教程,第三弹,nodejs调用api接口

2022-3-25 21:01:18

教程玩家投稿

开源阅读服务器版

2022-3-25 21:52:10

66 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. 琉璃27790

    顶礼膜拜!

  2. 18103247918

    学习学习,

  3. seatom

    继续加油哦,争取发表更多优秀帖子

  4. LAzySleep

    又学习到了,写的非常好😁

  5. 伍叶

    学习学习

  6. 阿伟在偷撸

    太牛了!!写的真好!超级仔细,小白都能学会!

  7. wasd2134

    学习学习

  8. 幻念

    谢谢分享,学习了

  9. LAzySleep

    感谢分享,谢谢楼主,赞

  10. 崖边

    七年前来顶贴!

  11. slimei

    辛苦大佬分享了,我先学习一下

  12. 时间煮雨我煮屎

    客服端和服务端都放同一个手机里面吗

  13. 七年

    辛苦了,学习一下

  14. 可乐🥤

    大佬 为什么我的装不了docker

  15. LAzySleep

    继续加油哦,争取发表更多优秀帖子

  16. ben

    谢谢分享,学习了

  17. 纱雾

    谢谢分享

  18. 缺失的安全感

    又学习到了,写的非常好

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索