(不止折腾)应用安卓手机搭建Web服务
前文
Android
零碎是基于Linux
,因而能够在Android
零碎的手机上应用一些Linux
的个性,不过没法间接用,必须借助非凡的程序,这个程序就是Terminal
(终端模拟器)。
笔者最开始接触手机上的Terminal
(终端)还是在高中时候,那时候热衷于刷机,有过刷机经验的同学应该都知道,晚期的Android
手机平安机制没有像当初这么简单,刷机老本相对来说比拟低,并且过后的手机配置比拟低(我记得过后用过的一款手机内存是512M,而当初的一款旗舰手机内存曾经达到了惊人的12G,这在过后是不敢设想的),大家个别厌弃自带的零碎,感觉太过臃肿,所以手机的各种第三刷机包异样沉闷,大家也能通过刷机体验到其余不同格调的零碎。刷机的时候须要用第三方的recovery
把手机自带的替换掉,这个操作通常是在电脑上用adb
工具输出命令行替换的,然而过后因为除了网吧很难接触到电脑,才另辟蹊径,发现能够在手机上实现这一操作,这个工具就是超级终端(我记得过后如同是叫这个名吧,也有叫安卓终端模拟器的),不过过后也就止步于此了,没有做更多的钻研。
Termux
现在时过境迁,再次接触到安卓上的终端,是一款叫Termux
的开源软件,上面是他官网的介绍
Termux
之所以在泛滥的终端模拟器中怀才不遇,次要是基于其良好的生态,集成busybox
(相当于是打补丁,补救一些Android
绝对于Linux
没有的命令),自带包管理工具,并且移植了大部分在Linux
发行版上罕用的软件,这使得咱们可能开箱即用。
介绍结束,上面咱们就筹备用Termux
来搞一些骚操作。对于Termux
一些具体的介绍以及入门操作,我这边就不再反复了,在文章的最初面会给大家推一个博客,能够算是中文对于Termux
的博客中最具体的了,当然博客自身内容品质也很高。
PS:大家如果对这篇文章感兴趣,想本人去装置Termux,最好是间接去Google Play下载,这应该是最不会出问题的渠道,如果没法上Google Play,能够返回酷安社区,在该软件的下方评论区会有热心观众给出解决方案
nginx
1.装置nginx
pkg install nginx
2.启动nginx
nginx
2.浏览器查看
关上浏览器,输出127.0.0.1:8080
(Termux没有应用1024以下端口的权限,所以nginx默认的端口是8080)
此时跟你手机在同一个局域网内的设施同样可能拜访这个网页,在Termux
中输出ifconfig
就能够查看你手机的局域网IP,而后再在电脑上浏览器关上
目前这个网站还仅仅局限于你本人的手机和局域网,如果我想让更多的人拜访该怎么办,这就须要用到上面的工具了,内网穿透。
注意事项:在最新版的termux中不再须要装置proot来应用nginx
Frp内网穿透
frp 是一个专一于内网穿透的高性能的反向代理利用,反对 TCP、UDP、HTTP、HTTPS 等多种协定。能够将内网服务以平安、便捷的形式通过具备公网 IP 节点的直达裸露到公网。
之所以抉择Frp
作为内网穿透的工具,次要是起因是Frp是国人开发的,文档浏览没有阻碍,并且他的配置非常简单,官网略微看下文档就能够上手了,还有就是尽管Frp比较简单,然而性能并不低。Frp分为服务端Frps
以及客户端Frpc
,以下就间接把服务端简称为Frps,客户端简称为Frpc。Frps须要部署在一台领有公网的服务器上,Frpc部署的机器只有能联网就能够了(能连通Frps)。
1.装置Frps、Frpc
间接到Frp的releases页面进行下载即可
一般来说Frps须要用x64的版本,也就是下面的frp_0.37.1_linux_amd64.tar.gz
,Frpc须要用arm64的版本,也就是下面的frp_0.37.1_linux_arm64.tar.gz
,不分明本人的机器的在机器上输出uname -m
进行查看(aarch64就是arm64)。下载实现后别离进行解压
2.Frps配置文件
进入解压后的文件夹,编辑frps.ini
[common]# Frps服务的端口bind_port = 7000# Frps暴露出的http端口,能够被nginx代理(前面会讲到)vhost_http_port = 8080# 本人设计一串字符做tokentoken = 1234567890
3.Frpc配置文件
进入解压后的文件夹,编辑frpc.ini
[common]# Frps的地址server_addr = 127.0.0.1# Frps的端口server_port = 7000# token(与Frps填写的统一)token = 1234567890# web服务的名字随便[web_test]# 类型是httptype = http# http服务绑定的ip(个别都是127.0.0.1)local_ip = 127.0.0.1# http服务绑定的端口local_port = 8080# 这个http服务通过哪个域名进行拜访(服务端通过拜访的域名将申请指向指定的frpc客户端)custom_domains = xikcloud.com
4.启动Frps、Frpc
./frps -c ./frps.ini
./frpc -c ./frpc.ini
如果不须要https,当初就曾经能够失常进行拜访了(域名解析弄好,域名解析到Frps的公网ip),例如我绑定的是xikcloud.com,当初就能够输出xikcloud.com:8080进行拜访了
nginx进行代理,开启https
前提是服务器域名均备案通过,且曾经申请了SSL证书(阿里云就有收费的,很不便)
nginx配置
upstream frp { # 代理到Frps,端口号与刚刚填写的统一 server 127.0.0.1:8080;}server { listen 443 ssl; server_name xikcloud.com; ssl_certificate 6150946_xikcloud.com.pem; ssl_certificate_key 6150946_xikcloud.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://frp; # 上面的必要要设置,能力使frps获取到实在的客户地址 proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
失常状况下就应该能失常拜访了,而且有https
正儿八经的教程到这里就完结了,当然咱们还能够利用nginx还做一些骚操作
一些骚操作
1.放点学习材料
是正儿八经的学习材料!家喻户晓,深圳地铁的信号是奇差,上了地铁就跟失联一样,咱们能够利用这段时间做点事件
例如放一本阮一峰的ECMAScript 6 入门,他这本书是开源的,能够间接获取到HTML的源码,下载下来就能部署,十分不便,部署到本地后,没网的环境下也能关上
2.共享文件
危险行为,审慎操作!!!(任何人都能够间接通过互联网拜访你手机中的文件,任何时候你都不应该凋谢整个外部存储目录)
利用nginx的索引性能,咱们能轻松的共享文件进来
在termux中输出
termux-setup-storage
获取文件读取的权限,手机会弹出提醒,容许即可。之后会在用户目录下生成一个storage
文件夹,storage
文件夹外面又有若干文件夹,其中一个是shared
,它是一个指向用户内置贮存(内置SD卡)目录的软连贯。
接下来我关上手机的文件管理器,新建一个文件夹叫images,外面放几张照片
nginx配置
# 寄存文件的目录root /data/data/com.termux/files/home/storage/shared/images;location / { # 索引 autoindex on; # 显示文件大小 autoindex_exact_size on; # 显示文件工夫 autoindex_localtime on;}
3.恶搞
能够放张表情包啥的(你懂的)
间接接着下面的配置,在刚刚的手机内置存储images
文件夹中,新建个文件index.html
index.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><img id="img" src="./1.jpg" /><script> const clientWidth = document.documentElement.clientWidth const imgEle = document.getElementById("img") imgEle.setAttribute("style", `width: ${clientWidth}px; height: ${clientWidth}px; object-fit: cover;`)</script></body></html>
nginx配置
# 寄存文件的目录root /data/data/com.termux/files/home/storage/shared/images;location / { index index.html; # 设置图片不缓存(每次更换都能立刻响应) if ($request_filename ~* .*.(gif|jpg|jpeg|png|bmp|swf)$) { expires -1s; }}
留神我这里设置了图片不缓存,这样每次次要要改内容的时候只有换一张图重命名为1.jpg
就能立刻失效,十分不便
完满!
开玩笑请适度,不要随便进犯他人的肖像权、隐私权!!!
最初
文章到这里就完结了,大家要是感觉还未尽兴的话,请转战国光的Termux 高级终端装置应用配置教程,这篇博客对Termux的具体应用解说的十分具体,也有更多的对于Termux的高阶玩法。