前言
由於懶懶最近購入號稱IPv6 Only永久免費VPS小雞,正打算使用SSH來連接康康這個小雞的能耐ಠ_ಠ ,驚覺家中的拉G有線電視網路未提供IPv6地址,根本連不上小雞阿!!!
雖說懶懶目前使用Cloudflare WARP來解決沒有IPv6地址的問題,但總想著是否有更輕鬆的方法可以隨時使用SSH,經過一番爬文後發現可以使用Cloudflare Tunnel配合Cloudflare Zero Trust 設定規則及應用程式,可以使用IPv4網路訪問自訂的Tunnel即可使用網頁版的SSH終端機。

教學
-
Cloudflare 免費版帳戶
-
頂級域名1個 (可以使用懶懶介紹的eu.org域名)
-
你的機器(樹莓派.VPS.軟路由. etc..)
建立Cloudflare Tunnel
Cloudflare
- 首先登入你的Cloudflare帳戶,選擇左側的「Zero Trust」進入Cloudflare Zero Trust 控制面板。

- 選擇左側的「Acess」下拉進入「Tunnel」控制面板。

首次使用需先建立Team domain名稱並設定帳單資訊。(欲再次修改名稱可以在Settings→General裡更改)
懶懶使用PayPal綁定,因為是使用免費版所以不會被收取費用喔!!
- 選擇藍色的「Create a tunnel」

- 輸入自訂的「tunnel name」名稱,懶懶以WSL「My_Ubuntu22.04_WSL_TW_01」當作範例,接著點擊「Save tunnel」下一步

懶懶使用的是Ubuntu22.04系統(Windows Subsystem for Linux),故環境選擇Debian 64bit,Cloudflare很貼心的為你提供安裝指令,複製貼上安裝即可!!


使用其他系統的用戶,可以選擇使用Docker安裝,Docker網路的部分懶懶使用本地主機的網路,故使用下列指令加入host
網路(此部分供參考,請依自己的網路狀況做設定)。
docker run -d --name cloudflared --restart always --net=host cloudflare/cloudflared:latest tunnel run --token **your_token**
6.如果連結成功,下方「Connectors」區域會即時顯示你的Connector ID、Data centers、Origin IP 等資訊,點擊下一步即可

7.接著來建立Public hostname
- 「Subdomain」填入自訂域名前綴 如範例圖中的
mywebssh.OOOO.eu.org
- 「Domain」選擇你的域名
OOOO.eu.org
- 「Path」留白即可
- 「Type」協議選擇「
SSH
」 - 「URL」填入「
localhost:22
」
# 「22」為你自訂的SSH通訊埠,可以輸入下列命令查看SSH設定
$ sudo nano /etc/ssh/sshd_config
# 以下為/etc/ssh/sshd_configsshd_config文件
Include /etc/ssh/sshd_config.d/*.conf
Port 22 #你的SSH port
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
- 最後選擇「Save tunnel」儲存tunnel設定

- 建立好就可以在主頁面看到你的Tunnels囉!

建立Cloudflare Appliacations
- 回到Cloudflare Zero Trust 控制面板進入「Appliacations」,接著「Add an appliacations」建立一個新的應用

- 選擇「Self-hosted」子分類

- 接著來建立Appliacations設定
-
「Application name」填入Appliacations名稱,簡單易辨識即可如:
mywebssh
-
「Session Duration」預設為24小時,可自訂Session的時間長度
-
「Subdomain」填入自訂域名前綴 如範例圖中的
mywebssh.OOOO.eu.org
(同Tunnel域名前綴) -
「Domain」選擇你的域名
OOOO.eu.org
-
「Path」留白即可

- 下方「Identity providers」,使用預設的「One-time PIN」即可,點擊Next繼續

- 懶懶使用認證信箱的方式來認證使用者,如範例圖中指定「test@gmail.com」為接收「One-time PIN」的信箱,點Next繼續。
mywebssh.OOOO.eu.org
時,Cloudflare會向「test@gmail.com
」寄出一次性驗證碼,使用者必須至信箱接收並填入驗證碼後,才能訪問網站
- 下方「Browser rendering」選擇SSH,點擊Add applications就完成拉!

試用網頁版SSH終端機
訪問你設定的域名(範例為:mywebssh.OOOO.eu.org
),填入你的認證信箱(範例為:test@gmail.com
)
然後去信箱接收驗證碼,填入驗證碼即可進去網頁版SSH終端機
2.網頁版SSH終端機展示
結語
雖說我們使用Cloudflare Tunnel配合Cloudflare Zero Trust建立網頁版的SSH終端機,但懶懶仍建議留一手原來的SSH或VNC連線!
若碰上Cloudflare服務中斷,而無法及時連線回機器可就麻煩囉!
另IPv6 Only永久免費VPS小雞真的超拉基,極度不建議購買,以上!