時(shí)間:2023-07-02 14:06:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-07-02 14:06:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
(不止折騰)使用安卓手機(jī)搭建Web服務(wù):Android
系統(tǒng)是基于Linux
,因此可以在Android
系統(tǒng)的手機(jī)上使用一些Linux
的特性,不過(guò)沒(méi)法直接用,必須借助特殊的程序,這個(gè)程序就是Terminal
(終端模擬器)。Terminal
(終端)還是在高中時(shí)候,那時(shí)候熱衷于刷機(jī),有過(guò)刷機(jī)經(jīng)歷的同學(xué)應(yīng)該都曉得,早期的Android
手機(jī)安全機(jī)制沒(méi)有像現(xiàn)在這么復(fù)雜,刷機(jī)成本相對(duì)來(lái)說(shuō)比較低,并且當(dāng)時(shí)的手機(jī)配置比較低(我記得當(dāng)時(shí)用過(guò)的一款手機(jī)內(nèi)存是512M,而現(xiàn)在的一款旗艦手機(jī)內(nèi)存已經(jīng)達(dá)到了驚人的12G,這在當(dāng)時(shí)是不敢想象的),大家一般嫌棄自帶的系統(tǒng),覺(jué)得太過(guò)臃腫,所以手機(jī)的各種第三刷機(jī)包異?;钴S,大家也能通過(guò)刷機(jī)體驗(yàn)到其他不同風(fēng)格的系統(tǒng)。刷機(jī)的時(shí)候需要用第三方的recovery
把手機(jī)自帶的替換掉,這個(gè)操作通常是在電腦上用adb
工具輸入命令行替換的,但是當(dāng)時(shí)由于除了網(wǎng)吧很難接觸到電腦,才另辟蹊徑,發(fā)現(xiàn)可以在手機(jī)上完成這一操作,這個(gè)工具就是超級(jí)終端(我記得當(dāng)時(shí)好像是叫這個(gè)名吧,也有叫安卓終端模擬器的),不過(guò)當(dāng)時(shí)也就止步于此了,沒(méi)有做更多的研究。Termux
的開(kāi)源軟件,下面是他官網(wǎng)的介紹Termux
之所以在眾多的終端模擬器中脫穎而出,主要是基于其良好的生態(tài),集成busybox
(相當(dāng)于是打補(bǔ)丁,彌補(bǔ)一些Android
相對(duì)于Linux
沒(méi)有的命令),自帶包管理工具,并且移植了大部分在Linux
發(fā)行版上常用的軟件,這使得我們能夠開(kāi)箱即用。Termux
來(lái)搞一些騷操作。關(guān)于Termux
一些具體的介紹以及入門(mén)操作,我這邊就不再重復(fù)了,在文章的最后面會(huì)給大家推一個(gè)博客,可以算是中文關(guān)于Termux
的博客中最詳細(xì)的了,當(dāng)然博客本身內(nèi)容質(zhì)量也很高。PS:大家如果對(duì)這篇文章感興趣,想自己去安裝Termux,最好是直接去Google Play下載,這應(yīng)該是最不會(huì)出問(wèn)題的渠道,如果沒(méi)法上Google Play,可以前往酷安社區(qū),在該軟件的下方評(píng)論區(qū)會(huì)有熱心觀眾給出解決方案
pkg install nginx
2.啟動(dòng)nginxnginx
2.瀏覽器查看127.0.0.1:8080
(Termux沒(méi)有使用1024以下端口的權(quán)限,所以nginx默認(rèn)的端口是8080)Termux
中輸入ifconfig
就可以查看你手機(jī)的局域網(wǎng)IP,然后再在電腦上瀏覽器打開(kāi)注意事項(xiàng):在最新版的termux中不再需要安裝proot來(lái)使用nginx
Frp
作為內(nèi)網(wǎng)穿透的工具,主要是原因是Frp是國(guó)人開(kāi)發(fā)的,文檔閱讀沒(méi)有障礙,并且他的配置非常簡(jiǎn)單,官網(wǎng)稍微看下文檔就可以上手了,還有就是雖然Frp比較簡(jiǎn)單,但是性能并不低。Frp分為服務(wù)端Frps
以及客戶端Frpc
,以下就直接把服務(wù)端簡(jiǎn)稱(chēng)為Frps,客戶端簡(jiǎn)稱(chēng)為Frpc。Frps需要部署在一臺(tái)擁有公網(wǎng)的服務(wù)器上,F(xiàn)rpc部署的機(jī)器只要能聯(lián)網(wǎng)就可以了(能連通Frps)。frp_0.37.1_linux_amd64.tar.gz
,F(xiàn)rpc需要用arm64的版本,也就是上面的frp_0.37.1_linux_arm64.tar.gz
,不清楚自己的機(jī)器的在機(jī)器上輸入uname -m
進(jìn)行查看(aarch64就是arm64)。下載完成后分別進(jìn)行解壓frps.ini
[common]# Frps服務(wù)的端口bind_port = 7000# Frps暴露出的http端口,可以被nginx代理(后面會(huì)講到)vhost_http_port = 8080# 自己設(shè)計(jì)一串字符做tokentoken = 1234567890
3.Frpc配置文件frpc.ini
[common]# Frps的地址server_addr = 127.0.0.1# Frps的端口server_port = 7000# token(與Frps填寫(xiě)的一致)token = 1234567890# web服務(wù)的名字隨意[web_test]# 類(lèi)型是httptype = http# http服務(wù)綁定的ip(一般都是127.0.0.1)local_ip = 127.0.0.1# http服務(wù)綁定的端口local_port = 8080# 這個(gè)http服務(wù)通過(guò)哪個(gè)域名進(jìn)行訪問(wèn)(服務(wù)端通過(guò)訪問(wèn)的域名將請(qǐng)求指向指定的frpc客戶端)custom_domains = xikcloud.com
4.啟動(dòng)Frps、Frpc./frps -c ./frps.ini./frpc -c ./frpc.ini
如果不需要https,現(xiàn)在就已經(jīng)可以正常進(jìn)行訪問(wèn)了(域名解析弄好,域名解析到Frps的公網(wǎng)ip),例如我綁定的是xikcloud.com,現(xiàn)在就可以輸入xikcloud.com:8080進(jìn)行訪問(wèn)了前提是服務(wù)器域名均備案通過(guò),且已經(jīng)申請(qǐng)了SSL證書(shū)(阿里云就有免費(fèi)的,很方便)nginx配置
upstream frp { # 代理到Frps,端口號(hào)與剛剛填寫(xiě)的一致 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; # 下面的必要要設(shè)置,才能使frps獲取到真實(shí)的客戶地址 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; }}
正常情況下就應(yīng)該能正常訪問(wèn)了,而且有https 危險(xiǎn)行為,謹(jǐn)慎操作?。。。ㄈ魏稳硕伎梢灾苯油ㄟ^(guò)互聯(lián)網(wǎng)訪問(wèn)你手機(jī)中的文件,任何時(shí)候你都不應(yīng)該開(kāi)放整個(gè)內(nèi)部存儲(chǔ)目錄)利用nginx的索引功能,我們能輕松的共享文件出去
termux-setup-storage
獲取文件讀取的權(quán)限,手機(jī)會(huì)彈出提示,允許即可。之后會(huì)在用戶目錄下生成一個(gè)storage
文件夾,storage
文件夾里面又有若干文件夾,其中一個(gè)是shared
,它是一個(gè)指向用戶內(nèi)置儲(chǔ)存(內(nèi)置SD卡)目錄的軟連接。# 存放文件的目錄root /data/data/com.termux/files/home/storage/shared/images;location / { # 索引 autoindex on; # 顯示文件大小 autoindex_exact_size on; # 顯示文件時(shí)間 autoindex_localtime on;}
images
文件夾中,新建個(gè)文件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; # 設(shè)置圖片不緩存(每次更換都能立即響應(yīng)) if ($request_filename ~* .*.(gif|jpg|jpeg|png|bmp|swf)$) { expires -1s; }}
注意我這里設(shè)置了圖片不緩存,這樣每次主要要改內(nèi)容的時(shí)候只要換一張圖重命名為1.jpg
就能立即生效,非常方便
開(kāi)玩笑請(qǐng)適度,不要隨意侵犯別人的肖像權(quán)、隱私權(quán)?。?!
關(guān)鍵詞:服務(wù),折騰,使用
客戶&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
客戶&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。