(不止折腾)使用安卓手机搭建Web服务前文Android
系统是基于Linux
,因此可以在Android
系统的手机上使用一些Linux
的特性,不过没法直接用,必须借助特殊的程序,这个程序就是Terminal
(终端模拟器)。笔者最开始接触手机上的Terminal
(终端)还是在高中时候,那时候热衷于刷机,有过刷机经历的同学应该都晓得,早期的Android
手机安全机制没有像现在这么复杂,刷机成本相对来说比较低,并且当时的手机配置比较低(我记得当时用过的一款手机内存是512M,而现在的一款旗舰手机内存已经达到了惊人的12G,这在当时是不敢想象的),大家一般嫌弃自带的系统,觉得太过臃肿,所以手机的各种第三刷机包异常活跃,大家也能通过刷机体验到其他不同风格的系统。
刷机的时候需要用第三方的recovery
把手机自带的替换掉,这个操作通常是在电脑上用adb
工具输入命令行替换的,但是当时由于除了网吧很难接触到电脑,才另辟蹊径,发现可以在手机上完成这一操作,这个工具就是超级终端(我记得当时好像是叫这个名吧,也有叫安卓终端模拟器的),不过当时也就止步于此了,没有做更多的研究。
Termux
之所以在众多的终端模拟器中脱颖而出,主要是基于其良好的生态,集成busybox
(相当于是打补丁,弥补一些Android
相对于Linux
没有的命令),自带包管理工具,并且移植了大部分在Linux
发行版上常用的软件,这使得我们能够开箱即用。介绍完毕,下面我们就准备用Termux
来搞一些骚操作。关于Termux
一些具体的介绍以及入门操作,我这边就不再重复了,在文章的最后面会给大家推一个博客,可以算是中文关于Termux
的博客中最详细的了,当然博客本身内容质量也很高。
此时跟你手机在同一个局域网内的设备同样能够访问这个网页,在Termux
中输入ifconfig
就可以查看你手机的局域网IP,然后再在电脑上浏览器打开一般来说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 {listen443 ssl;server_name xikcloud.com;ssl_certificate 6150946_xikcloud.com.pem;ssl_certificate_key 6150946_xikcloud.com.key;ssl_session_cacheshared: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 2.共享文件危险行为,谨慎操作!!!(任何人都可以直接通过互联网访问你手机中的文件,任何时候你都不应该开放整个内部存储目录)利用nginx的索引功能,我们能轻松的共享文件出去在termux中输入
termux-setup-storage
获取文件读取的权限,手机会弹出提示,允许即可。之后会在用户目录下生成一个storage
文件夹,storage
文件夹里面又有若干文件夹,其中一个是shared
,它是一个指向用户内置储存(内置SD卡)目录的软连接。接下来我打开手机的文件管理器,新建一个文件夹叫images,里面放几张照片3.恶搞可以放张表情包啥的(你懂的)直接接着上面的配置,在刚刚的手机内置存储images
文件夹中,新建个文件index.html
index.htmlta charset="UTF-8">Title
nginx配置# 存放文件的目录root /data/data/com.termux/files/home/storage/shared/images;location / {index index.html;# 设置图片不缓存(每次更换都能立即响应)if $){expires -1s;}}
注意我这里设置了图片不缓存,这样每次主要要改内容的时候只要换一张图重命名为1.jpg
就能立即生效,非常方便
完美!开玩笑请适度,不要随意侵犯别人的肖像权、隐私权!!!最后文章到这里就结束了,大家要是觉得还未尽兴的话,请转战国光的Termux 高级终端安装使用配置教程,这篇博客对Termux的具体使用讲解的非常详细,也有更多的关于Termux的高阶玩法。