前言


由於懶懶最近購入號稱IPv6 Only永久免費VPS小雞,正打算使用SSH來連接康康這個小雞的能耐ಠ_ಠ ,驚覺家中的拉G有線電視網路未提供IPv6地址,根本連不上小雞阿!!!

關於如何測試你的IPv6連線能力

Test-ipv6.com

https://test-ipv6.com/index.html.zh_TW

無IPv4網路
有IPv6網路

雖說懶懶目前使用Cloudflare WARP來解決沒有IPv6地址的問題,但總想著是否有更輕鬆的方法可以隨時使用SSH,經過一番爬文後發現可以使用Cloudflare Tunnel配合Cloudflare Zero Trust 設定規則及應用程式,可以使用IPv4網路訪問自訂的Tunnel即可使用網頁版的SSH終端機

網頁版的SSH終端機Preview

教學


事前準備
  1. Cloudflare 免費版帳戶

  2. 頂級域名1個 (可以使用懶懶介紹的eu.org域名)

  3. 你的機器(樹莓派.VPS.軟路由. etc..)

建立Cloudflare Tunnel


官方網站
  1. 首先登入你的Cloudflare帳戶,選擇左側的「Zero Trust」進入Cloudflare Zero Trust 控制面板。
  1. 選擇左側的「Acess」下拉進入「Tunnel」控制面板。
關於首次使用

首次使用需先建立Team domain名稱並設定帳單資訊。(欲再次修改名稱可以在Settings→General裡更改)

懶懶使用PayPal綁定,因為是使用免費版所以不會被收取費用喔!!

  1. 選擇藍色的「Create a tunnel」
  1. 輸入自訂的「tunnel name」名稱,懶懶以WSL「My_Ubuntu22.04_WSL_TW_01」當作範例,接著點擊「Save tunnel」下一步

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

Docker安裝說明

使用其他系統的用戶,可以選擇使用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

建立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 ::
  1. 最後選擇「Save tunnel」儲存tunnel設定
  1. 建立好就可以在主頁面看到你的Tunnels囉!

建立Cloudflare Appliacations


  1. 回到Cloudflare Zero Trust 控制面板進入「Appliacations」,接著「Add an appliacations」建立一個新的應用
  1. 選擇「Self-hosted」子分類
  1. 接著來建立Appliacations設定
建立Appliacations設定
  • 「Application name」填入Appliacations名稱,簡單易辨識即可如:mywebssh

  • 「Session Duration」預設為24小時,可自訂Session的時間長度

  • 「Subdomain」填入自訂域名前綴 如範例圖中的mywebssh.OOOO.eu.org(同Tunnel域名前綴)

  • 「Domain」選擇你的域名OOOO.eu.org

  • 「Path」留白即可

  1. 下方「Identity providers」,使用預設的「One-time PIN」即可,點擊Next繼續
One-time PIN
One-time PIN為一次性驗證碼
  1. 懶懶使用認證信箱的方式來認證使用者,如範例圖中指定「test@gmail.com」為接收「One-time PIN」的信箱,點Next繼續。
驗證方式說明
當有使用者訪問mywebssh.OOOO.eu.org時,Cloudflare會向「test@gmail.com」寄出一次性驗證碼,使用者必須至信箱接收並填入驗證碼後,才能訪問網站
  1. 下方「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小雞真的超拉基,極度不建議購買,以上!