栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在安卓手机上搭建一台微型服务器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在安卓手机上搭建一台微型服务器

相信很多人手上都有一些闲置的手机,那可不可以在这些手机上搭建一个服务器呢?下面我们分享一种搭建简易服务器的思路。

1、ROOT手机

ROOT并非必须,但是ROOT后我们可以更方面的进行保活等操作,各个品牌的手机root方法不尽相同,下面简单介绍下小米手机的一种ROOT办法。(注意,手机Root后会变的不再安全,非专业人士不要操作)

1.1、解锁bootloader

因为后续需要输入recovery镜像,所以我们需要首先解锁bootloader锁。
直接在小米的官网上申请就行,按照操作提示一步一步操作就好

http://www.miui.com/unlock/index.html

1.2、刷入img文件

这里我们选择刷入第三方的recovery工具,可以在下方找到各个手机型号的第三方recovery文件

https://twrp.me/Devices/

当下载完成后,按照以下的操作步骤刷入recovery镜像。

进入bootloader模式
adb reboot bootloader
刷入recovery镜像
fastboot flash recovery recovery.img
重启进入recovery模式
fastboot boot recovery.img

等待进入recovey模式。 选择高级-> ROOT系统就好

至此,我们ROOT手机的动作已经完成。

2、利用NanoHTTPD搭建微型服务器

NanoHTTPD是一个Java的微型HTTP服务器库,利用它可以很方便的在Android中启动一个本地服务器。
github地址如下

https://github.com/NanoHttpd/nanohttpd

module的build.gradle增加如下修改

dependencies {
    implementation 'org.nanohttpd:nanohttpd:2.3.1'
}

然后继承NanoHTTPD类实现服务端

public class TmpWebServer extends NanoHTTPD {

    public TmpWebServer(int port) {
    	//本地服务器的端口
        super(port);
    }
    @Override
    public Response serve(IHTTPSession session) {
    	//获取请求的URL
        Uri uri = Uri.parse(session.getUri());
        //获取请求的method
        Method method = session.getMethod();
        if (Method.PUT.equals(method) || Method.POST.equals(method)) {
                Map postData = new HashMap<>();
                //获取POST请求的body
                session.parseBody(postData);
              	//这里可以做逻辑处理
              	//返回Response
                return newFixedLengthResponse(Response.Status.OK, NanoHTTPD.MIME_PLAINTEXT, GsonManager.instance().toJson(apiHandler.response(classLoader, parms)));
        }
    }
}
3、利用frp实现端口映射

上面我们通过NanoHTTPD搭建了一个微型服务器,但是我们如何在公网上访问这个微型服务器呢?这里我们利frp实现内网和公网的端口映射。

frp是一个可用于内网穿透的高性能反向代理工具,支持TCP、UDP协议,为HTTP和HTTPS应用协议提供了额外的支持能力,并支持点对点穿透,github地址如下:

https://www.jianshu.com/p/e0581ee84323

我们在GitHub的release页面可以找最新的版本下载。下载解压后会发现有以下文件

这几个文件的作用如下

  • frpc 客户端的执行文件
  • frpc.ini 客户端的配置文件
  • frps 服务端的执行文件
  • frps.ini 服务端的配置文件

我们首先打开frps.ini配置服务端

[common]
bind_port = 9780 //用来与客户端建立透传连接的端口
vhost_http_port = 9781 //公网HTTP请求的端口

然后配置客户端

[common]
server_addr = 47.111.173.166 //服务端的ip地址
server_port = 9780 //服务端映射的端口号
[web]
type = http
local_ip = 127.0.0.1
local_port = 8083 //客户端的端口号,即步骤2中TmpWebServer设置的端口号
custom_domains = 47.111.173.166

完成配置之后,我们在服务端执行下面命令开启透传

nohup ./frps -c frps.ini >/dev/null 2>log &

在客户端执行下面命令开启透传

nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

至此,我们一台运行在Android手机上的微型服务器就搭建完成了!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号