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

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);}@Overridepublic Response serve(IHTTPSession session) {//获取请求的URLUri uri = Uri.parse(session.getUri());//获取请求的methodMethod method = session.getMethod();if (Method.PUT.equals(method) || Method.POST.equals(method)) {Map<String, String> postData = new HashMap<>();//获取POST请求的bodysession.parseBody(postData);//这里可以做逻辑处理//返回Responsereturn 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手机上的微型服务器就搭建完成了!

在安卓手机上搭建一台微型服务器相关推荐

  1. 使用Termux在安卓手机上搭建本地Git服务器

    一.安装安卓终端模拟器Termux https://github.com/termux/termux-app/releases 手机是arm 64位的,就下载 'termux-app_v0.118.0 ...

  2. 在Android手机上搭建自己的的服务器——云盘实例

    现在国内各大云盘都要收费,想省钱都不行.所以另外一种选择就是自己搭建一个云盘,顺便体验一把网站管理员的感觉. 正题 安装软件 软件:KSWEB吾爱破解版 软件来源:WEB 刚进去可能会闪退,重试几下就 ...

  3. 手机搭建php环境,Almp——安卓系统上搭建本地php服务器环境

    在网上找到安卓系统的PHP+MySQL环境,甚是喜欢,拿来修改.试用了一番.已经实现在安卓手机上搭建Web服务端,并且支持WordPress.Discuz.Phpmyadmin的运行.目前正在考虑,利 ...

  4. gnuradio android手机,如何搭配USRP在安卓设备上搭建GNU Radio

    原标题:如何搭配USRP在安卓设备上搭建GNU Radio 在这篇文章中,我们会使用安卓设备通过USB连接USRP.所以就需要USRP B2xx(B200, B210, 或者是 B200mini),这 ...

  5. Android使用谷歌插件,IT之家学院:教你如何在安卓手机上使用Chrome插件

    目前世面上的手机浏览器大都以chrome为核心,奇怪的是chrome在桌面版上的神技-"插件",在手机上却不支持.于是乎国内手机浏览器别管是内置的还是第三方也同样追随了chrome ...

  6. 使用Termux在安卓手机上运行tomcat服务器

    使用Termux在安卓手机上安装运行tomcat服务器 简单背景 探索尝试 尝试一:使用limbo虚拟机(失败) 想念二:使用Linux Deploy安装(直接放弃) 尝试三:使用Aid Learni ...

  7. 安卓手机如何打开.crx文件_如何在安卓手机上使用Chrome插件

    原标题:如何在安卓手机上使用Chrome插件 目前世面上的手机浏览器大都以chrome为核心,奇怪的是chrome在桌面版上的神技-"插件",在手机上却不支持.于是乎国内手机浏览器 ...

  8. 在安卓手机上运用AidLux实现人流检测数据统计

    目录 第一章 关于AidLux介绍,安装和远程调试 第一节 AidLux介绍 第二节 手机版本AidLux软件安装 第三节 使用vscode进行PC端远程调试AidLux 第二章 ⼈体检测模型的训练和 ...

  9. 安卓数据转移到iphone老是中断_如何把安卓手机上的数据转移到 iPhone、iPad?

    如果你刚刚从安卓手机换了新的 iPhone 或者其他 iOS 设备,可以按照下面的步骤将数据转移到新设备,实现"无缝"过渡. 准备工作 在安卓手机上下载安装"转移到 iO ...

最新文章

  1. 平台数据库导入导出快捷工具说明
  2. nginx的4个学习资料
  3. spring data mongo比较两个字段查询
  4. UA Stat PhD Qualify Problems for Finite Sample Space Probability
  5. Kettle使用_18 分组组件计算百分位数
  6. css3加载图片淡入效果
  7. Java入门算法(数据结构篇)丨蓄力计划
  8. maya拓扑插件_3D角色模型,Maya、Zbrush人头建模
  9. DOCKER容器内中文显示乱码
  10. Excel VBA 学习过程记录
  11. 为了找出羞羞视频,百度云居然有“娇喘模式”
  12. OneNET麒麟座应用开发之三:获取温湿度数据
  13. 【英语竞赛】专项练习之听力
  14. 怎么用win7系统的电脑录屏
  15. 深度ip转换器手机版app_一键清理全能版app下载-一键清理全能版app手机版 v1.0.0...
  16. displaytag的使用
  17. solidworks管道设计教程
  18. Idea中new project项目与new module项目区别与验证
  19. sliding-panel
  20. SQL Server提权之xp_cmdshell

热门文章

  1. android locale app内设置,Android app应用多语言切换功能实现
  2. laydate点击输入框闪一下不见了_ps文字工具打字不显示,应该如何解决?
  3. 第一章 人力资源管理概述(6学时)
  4. SOX的一些命令和kaldi使用sox音频数据增强
  5. 虚拟化技术-什么是SAN存储?
  6. 腾讯区块链的三年与它的打法 |链捕手
  7. 人工智能与深度神经网络,人工智能深度神经网络
  8. 微信小程序 动态设置背景
  9. 短网址dwz.cn批量注册
  10. centos配置linuxptp