时间:2023-07-02 14:06:01 | 来源:网站运营
时间:2023-07-02 14:06:01 来源:网站运营
(不止折腾)使用安卓手机搭建Web服务:Android
系统是基于Linux
,因此可以在Android
系统的手机上使用一些Linux
的特性,不过没法直接用,必须借助特殊的程序,这个程序就是Terminal
(终端模拟器)。Terminal
(终端)还是在高中时候,那时候热衷于刷机,有过刷机经历的同学应该都晓得,早期的Android
手机安全机制没有像现在这么复杂,刷机成本相对来说比较低,并且当时的手机配置比较低(我记得当时用过的一款手机内存是512M,而现在的一款旗舰手机内存已经达到了惊人的12G,这在当时是不敢想象的),大家一般嫌弃自带的系统,觉得太过臃肿,所以手机的各种第三刷机包异常活跃,大家也能通过刷机体验到其他不同风格的系统。刷机的时候需要用第三方的recovery
把手机自带的替换掉,这个操作通常是在电脑上用adb
工具输入命令行替换的,但是当时由于除了网吧很难接触到电脑,才另辟蹊径,发现可以在手机上完成这一操作,这个工具就是超级终端(我记得当时好像是叫这个名吧,也有叫安卓终端模拟器的),不过当时也就止步于此了,没有做更多的研究。Termux
的开源软件,下面是他官网的介绍Termux
之所以在众多的终端模拟器中脱颖而出,主要是基于其良好的生态,集成busybox
(相当于是打补丁,弥补一些Android
相对于Linux
没有的命令),自带包管理工具,并且移植了大部分在Linux
发行版上常用的软件,这使得我们能够开箱即用。Termux
来搞一些骚操作。关于Termux
一些具体的介绍以及入门操作,我这边就不再重复了,在文章的最后面会给大家推一个博客,可以算是中文关于Termux
的博客中最详细的了,当然博客本身内容质量也很高。PS:大家如果对这篇文章感兴趣,想自己去安装Termux,最好是直接去Google Play下载,这应该是最不会出问题的渠道,如果没法上Google Play,可以前往酷安社区,在该软件的下方评论区会有热心观众给出解决方案
pkg install nginx
2.启动nginxnginx
2.浏览器查看127.0.0.1:8080
(Termux没有使用1024以下端口的权限,所以nginx默认的端口是8080)Termux
中输入ifconfig
就可以查看你手机的局域网IP,然后再在电脑上浏览器打开注意事项:在最新版的termux中不再需要安装proot来使用nginx
Frp
作为内网穿透的工具,主要是原因是Frp是国人开发的,文档阅读没有障碍,并且他的配置非常简单,官网稍微看下文档就可以上手了,还有就是虽然Frp比较简单,但是性能并不低。Frp分为服务端Frps
以及客户端Frpc
,以下就直接把服务端简称为Frps,客户端简称为Frpc。Frps需要部署在一台拥有公网的服务器上,Frpc部署的机器只要能联网就可以了(能连通Frps)。frp_0.37.1_linux_amd64.tar.gz
,Frpc需要用arm64的版本,也就是上面的frp_0.37.1_linux_arm64.tar.gz
,不清楚自己的机器的在机器上输入uname -m
进行查看(aarch64就是arm64)。下载完成后分别进行解压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进行访问了前提是服务器域名均备案通过,且已经申请了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的索引功能,我们能轻松的共享文件出去
termux-setup-storage
获取文件读取的权限,手机会弹出提示,允许即可。之后会在用户目录下生成一个storage
文件夹,storage
文件夹里面又有若干文件夹,其中一个是shared
,它是一个指向用户内置储存(内置SD卡)目录的软连接。# 存放文件的目录root /data/data/com.termux/files/home/storage/shared/images;location / { # 索引 autoindex on; # 显示文件大小 autoindex_exact_size on; # 显示文件时间 autoindex_localtime on;}
images
文件夹中,新建个文件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
就能立即生效,非常方便
开玩笑请适度,不要随意侵犯别人的肖像权、隐私权!!!
关键词:服务,折腾,使用