準備內容#
能正常用的舊手機一個新手機也行
termux 軟體
一個域名freenom 有免費的
一個 cloudflare 帳號並且代理域名
termux 安裝 Linux#
我演示的手機是安卓 11
安裝好之後打開 termux
安裝 opensssh#
手機不好操作,所以選擇用 ssh,感覺自己可以手機操作的可以不裝,或者想安裝其它 ssh 的也一樣
打開軟體以後輸入pkg install openssh
這裡忘了截圖了
安裝完後輸入passwd
設置密碼
然後輸入sshd
啟動 openssh
輸入whoami
獲取用戶名
輸入ifconfig
獲取 IP 地址
電腦連接 ssh#
端口是 ssh 服務的端口,openssh 的默認端口是 8022
電腦上用ssh -p 端口 前面獲取的用戶名@ip地址
連接
安裝 Linux#
連上以後輸入bash <(curl -L gitee.com/mo2/linux/raw/2/2)
安裝 Linux
自己有其它的安裝方法也行,如果是其它方法,可以跳過這裡
這裡選擇第一個 proot 容器
可能會再顯示選擇容器那個界面,具體在哪我沒截到,繼續選擇第一個 proot 容器就行
這裡選擇第一個 neon
字體這裡隨便選,按自己喜好來
選第一個
選第一個
這裡看你想用哪種 Linux,不過 cloudflare 官方文檔只支持幾種 Linux
後面隨便點點就行了
我建議在這個界面安裝一個 vnc,因為後面 cloudflare 有需要瀏覽器登錄,需要圖形界面
安裝 web 服務並啟動#
自己百度
安裝 cloudflared#
如果不知道選哪個,點 cloudflare package repository
根據自己操作系統選擇,按照官方文檔輸入命令這裡忘了截圖
登錄及創建隧道#
然後打開遠程桌面連接
在終端中輸入cloudflared tunnel login
會出現一個鏈接,點擊鏈接登錄
登錄了以後再在終端點擊鏈接打開,選擇自己的那個域名就行
vnc 比較卡,現在回到 ssh 終端,輸入cloudflared tunnel create 隧道名
創建隧道,隧道名隨便起
然後輸入cloudflared tunnel list
看速到是否建立成功,並且複製隧道的 ID 值
綁定域名#
然後輸入cloudflared tunnel route dns 隧道名 域名
綁定
隧道名就是剛才創建的隧道,域名就是你自己的域名
寫入配置文件#
輸入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
如果想開多個端口可以按下面圖片裡寫
保存後輸入
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
注意沒有換行
保存
啟動服務#
輸入systemctl enable cloudflared --now
測試是否成功#
打開網站看是否穿透成功
其它#
還支持其它的服務,具體看文檔
ssh 訪問需要設置本地終端
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/
ssh 瀏覽器訪問需在 cloudflare 的 zero 面板設置,可以自己看文檔,或者我另寫一篇帖子
實測 termux 啟 web 服務,在 Linux 裡也能穿透訪問,所以應該不限於軟體,手機裝個 ksweb 可能也能穿