banner
Leo

Leo的恒河沙

一个活跃于在珠三角和长三角的商业顾问/跨境电商专家/投资人/技术宅/骑行爱好者/两条边牧及一堆小野猫的王/已婚;欢迎订阅,日常更新经过我筛选的适合精读的文章,横跨商业经济情感技术等板块,总之就是我感兴趣的一切

2024-03-04-CloudFlare Tunnel 免費內網穿透的簡明教程 - 少數派

CloudFlare Tunnel 免費內網穿透的簡明教程 - 少數派#

#Omnivore

CloudFlare Tunnel 免費內網穿透的簡明教程

  • 將本地網路的服務暴露到公網,可以理解為內網穿透。 例如我們在本地伺服器 192.168.1.1:3000 搭建了一個 Transmission 服務用於 BT 下載,我們只能在內網環境才能訪問這個服務,但通過內網穿透技術,我們可以在任何廣域網環境下訪問該服務。相比 NPS 之類傳統穿透服務,Tunnel 不需要公網雲伺服器,同時自帶域名解析,無需 DDNS 和公網 IP。
  • 將非常規端口服務轉發到 80/443 常規端口。 無論是使用公網 IP + DDNS 還是傳統內網穿透服務,都免不了使用非常規端口進行訪問,如果某些服務使用了複雜的重定向可能會導致 URL 中端口號丟失而引起不可控的問題,同時也不夠優雅。
  • 自動為你的域名提供 HTTPS 認證。
  • 為你的服務提供額外保護認證。
  • 最重要的是 —— 免費。

Tunnel 通過在本地網路運行的一個 Cloudflare 守護程序,與 Cloudflare 雲端通信,將雲端請求數據轉發到本地網路的 IP + 端口。

前置條件#

  • 持有一個域名
  • 將域名 DNS 解析托管到 CF
  • 內網有一台本地伺服器,用於運行本地與 cloudflare 通信的 cloudflared 程序
  • 一張境內雙幣信用卡(僅用於添加付款方式,服務是免費的)

開始#

1. 打開 Cloudflare Zero Trust 工作台面板#

2. 創建 Cloudflare Zero Trust ,選擇免費計劃。需要提供付款方式,使用境內的雙幣卡即可#

image

填寫 team name,隨意填寫

image

選擇免費計劃

image

添加付款方式

image

填寫信用卡信息(僅驗證,不會扣款),完成配置

3. 完成後,在 Access Tunnels 中,創建一個 Tunnel。#

image

創建 Tunnel

4. 選擇 Cloudflared 部署方式。#

Tunnel 需要通過 Cloudflared 來建立雲端與本地網路的通道,這裡推薦選擇 Docker 部署 Cloudflared 守護進程以使用 Tunnel 功能。

image

獲取 Cloudflared 啟動命令及 Token

點擊複製按鈕複製指令,在本地網路主機上運行命令。我們還可以加上--name cloudflared -d --restart unless-stop為 Docker 容器增加名稱和後臺運行。你可以使用下方我修改好命令來創建 Docker,注意替換你為自己的 Token(就是網頁中—-token 之後的長串字符)

docker run --name cloudflared -d --restart unless-stop cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <YourToken>

5. 配置域名和轉發 URL#

為你的域名配置一個子域名(Subdomain),Path 留空,URL 處填寫內網服務的 IP 加端口號。注意 Type 處建議使用 HTTP,因為 Cloudflare 會自動為你提供 HTTPS,因此此處的轉發目標可以是 HTTP 服務端口。

image

配置內網目標 IP + 端口

完成#

接著訪問剛剛配置的三級域名,例如 https://app.yourdomain.com(是的,你沒看錯,是 https,cloudflare 已經自動為域名提供了 https 證書)就可以訪問到內網的非公端口號服務了。一個 Tunnel 中可以添加多條三級域名來跳轉到不同的內網服務,在 Tunnel 頁面的 Public Hostname 中新增即可。

為你的服務添加額外驗證#

如果你覺得這種直接暴露內網服務的方式有較高的安全風險,我們還可以使用 Application 功能為服務添加額外的安全驗證。

1. 點擊 Application - Get started。

image

創建 Application

2. 選擇 Self-hosted。

image

選擇類型

3. 填寫配置,注意 Subdomain 和 Domain 需要使用剛剛創建的 Tunnel 服務相同的 Domain 配置

image

配置三級域名

4. 選擇驗證方式。填寫 Policy name(任意)。在 Include 區域選擇驗證方式,示例圖片中使用的是 Email 域名的方式,用戶在訪問該網路時需要使用指定的郵箱域名(如 @gmail.com)驗證,這種方式比較適合自定義域名的企業郵箱用戶。另外你還可以指定特定完整郵箱地址、IP 地址範圍等方式。

image

選擇驗證方式

5. 完成添加

image

此時,訪問 https://app.yourdomain.com 可以看到網站多了一個驗證頁面,使用剛剛設置的域名郵箱,接收驗證碼來訪問。

image

評價#

除了上述直接轉發 http 服務之外,Tunnel 還支持 RDP、SSH 等協議的轉發,玩法豐富,有待各位探索。作為一款免費的服務,簡單的配置,低門檻使用條件,適合各位 Self-hosted 玩家嘗試。不過要注意的是 Tunnel 在國內訪問速度不快,並且有斷流的情況,請酌情使用。

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