TEST12138

TEST12138

长路漫漫,唯心作伴。

閒置舊手機搭建web服務,並用cloudflaerd內網穿透,可域名訪問

準備內容#

能正常用的舊手機一個新手機也行

termux 軟體

一個域名freenom 有免費的

一個 cloudflare 帳號並且代理域名

termux 安裝 Linux#

我演示的手機是安卓 11

Screenshot_20221215-153446_設置.pngScreenshot_20221215-153437_Android_系統.pngScreenshot_20211217-021318_Pixel_啟動器.png

安裝好之後打開 termux

Screenshot_20211217-021336_Termux.png

安裝 opensssh#

手機不好操作,所以選擇用 ssh,感覺自己可以手機操作的可以不裝,或者想安裝其它 ssh 的也一樣

打開軟體以後輸入pkg install openssh這裡忘了截圖了

安裝完後輸入passwd設置密碼

然後輸入sshd啟動 openssh

輸入whoami獲取用戶名

Screenshot_20221214-150646_Termux.png

輸入ifconfig獲取 IP 地址

電腦連接 ssh#

端口是 ssh 服務的端口,openssh 的默認端口是 8022

電腦上用ssh -p 端口 前面獲取的用戶名@ip地址連接

微信圖片_20221215161630.png

安裝 Linux#

連上以後輸入bash <(curl -L gitee.com/mo2/linux/raw/2/2)安裝 Linux

自己有其它的安裝方法也行,如果是其它方法,可以跳過這裡

微信圖片_20221215161848.png

這裡選擇第一個 proot 容器

可能會再顯示選擇容器那個界面,具體在哪我沒截到,繼續選擇第一個 proot 容器就行

微信圖片_20221215161953.png

這裡選擇第一個 neon

微信圖片_20221215162139.png

字體這裡隨便選,按自己喜好來

微信圖片_20221215162316.png

選第一個

微信圖片_20221215162347.png

選第一個

微信圖片_20221215162408.png

這裡看你想用哪種 Linux,不過 cloudflare 官方文檔只支持幾種 Linux

微信圖片_20221215162431.png

微信圖片_20221215162639.png

後面隨便點點就行了

我建議在這個界面安裝一個 vnc,因為後面 cloudflare 有需要瀏覽器登錄,需要圖形界面

微信圖片_20221215163052.png

微信圖片_20221215163108.png

微信圖片_20221215163134.png

安裝 web 服務並啟動#

自己百度

安裝 cloudflared#

進入https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/ 根據自己的操作系統選擇

微信圖片_20221215163512.png

如果不知道選哪個,點 cloudflare package repository

微信圖片_20221215162639.png

根據自己操作系統選擇,按照官方文檔輸入命令這裡忘了截圖

登錄及創建隧道#

然後打開遠程桌面連接

微信圖片_20221215163959.png

在終端中輸入cloudflared tunnel login

微信圖片_20221215164040.png

會出現一個鏈接,點擊鏈接登錄

微信圖片_20221215164244.png

微信圖片_20221215164255.png

登錄了以後再在終端點擊鏈接打開,選擇自己的那個域名就行

vnc 比較卡,現在回到 ssh 終端,輸入cloudflared tunnel create 隧道名創建隧道,隧道名隨便起微信圖片_20221215164726.png

然後輸入cloudflared tunnel list看速到是否建立成功,並且複製隧道的 ID 值

綁定域名#

然後輸入cloudflared tunnel route dns 隧道名 域名綁定

隧道名就是剛才創建的隧道,域名就是你自己的域名

微信圖片_20221215165309.png

寫入配置文件#

輸入nano ~/.cloudflared/config.yml寫入以下配置

tunnel: <隧道ID>
credentials-file: /root/.cloudflared/<隧道ID>.json
protocol: http2
originRequest:
  connectTimeout: 30s
  noTLSVerify: false
ingress:
  - hostname: <域名>
    service: http://localhost:端口
  - service: http_status:404

如果想開多個端口可以按下面圖片裡寫

微信圖片_20221215165808.png

保存後輸入

nano /etc/systemd/system/cloudflared.service

寫入

[Unit]
Description=cloudflared
After=network.target

[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --loglevel debug --transport-loglevel warn --config /root/.cloudflared/config.yml tunnel run <隧道名稱>
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

微信圖片_20221215170228.png

注意沒有換行

保存

啟動服務#

輸入systemctl enable cloudflared --now

微信圖片_20221215170328.png

測試是否成功#

打開網站看是否穿透成功

微信圖片_20221215170332.png

其它#

還支持其它的服務,具體看文檔

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/ingress/

c657d87d50a86bfd998e5b6cdacdb45.png

ssh 訪問需要設置本地終端

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/

微信圖片_20221215171444.png

ssh 瀏覽器訪問需在 cloudflare 的 zero 面板設置,可以自己看文檔,或者我另寫一篇帖子

實測 termux 啟 web 服務,在 Linux 裡也能穿透訪問,所以應該不限於軟體,手機裝個 ksweb 可能也能穿

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。