如何免費獲取一個 Cloudflare 公網 IP

Cloudflare 推出的 Argo Tunnel 本意是保護 Web 應用程序,連接服務器端口和 Cloudflare 節點,定位見下圖(來自 Many services, one cloudflared[1])

其工作方式類似於 frp,可以將本地服務發佈到公網。只不過 frp 所需的服務器 IP 在 Argo Tunnel 中變成了 Cloudflare 提供的節點。相比運營商公網 IP,Argo Tunnel 省去了跟運營商扯皮的時間,相比於 frp 則省去了服務器的成本。

濫用開始

下文將展示如何在 Debian 10 下安裝並使用 Cloudflare Argo Tunnel。

環境

準備

參考

步驟

以下指令在 root 用戶下執行,非 root 用戶酌情添加 sudo

安裝 Argo Tunnel Client

Argo Tunnel Client 支持 Windows、macOS 和 Linux

執行

$ wget -q https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb
$ dpkg -i cloudflared-stable-linux-amd64.deb

其他操作系統安裝指令查看 Install cloudflared[3]

身份認證

Argo Tunnel Client 需要使用者登錄 Cloudflare 賬號以進行授權,執行

$ cloudflared tunnel login

在連接了顯示器的機器上,執行完畢會自動打開瀏覽器,在瀏覽器內登錄賬號

在無頭模式的機器上,執行完畢後會輸出一個鏈接,複製鏈接到瀏覽器內登陸賬號,登錄後選擇使用的域名,完成驗證

Cloudflared 會在 ~/.cloudlflared/ 下生成 cert.pem 證書,之後的操作都依賴於此文件

新建 Tunnel

執行

$ cloudflared tunnel create [Tunnel 名稱]

每個 Tunnel 都對應一個 UUID,每新建一個 Tunnel,Cloudflared 都會在 ~/.cloudflared/ 下生成對應 UUID 的 json 文件

配置 DNS 記錄

訪問域名的控制面板,進入 DNS 配置頁,新建 CNAME 記錄,名稱填寫任意字符,目標填寫 [tunnel 的 UUID].cfargotunnel.com

Argo Tunnel 的一個 UUID 只會與同一賬戶下的一個 DNS 記錄綁定

新建配置文件

新建 YAML 配置文件,寫入以下內容

tunnel: [tunnel 的名稱或 UUID]
credentials-file: /root/.cloudflared/[tunnel 的 UUID].json

ingress:
  - hostname: [CNAME 記錄名稱].[接入 CLoudflare 的域名]
    service: http://localhost:80
  - service: http_status:404

配置文件使用 Ingress 規則,如果想配置 SSH、TCP 等其他協議,可以查看 Ingress rules[4]

開啓 Tunnel

執行

$ cloudflared tunnel --config [配置文件路徑] run

如果不指定配置文件路徑,cloudflared 會默認讀取 ~/.cloudflared/config.yml

配置爲系統服務

執行

$ cloudflared service install

cloudflared 會新建 systemd 文件,其它系統可以查看 Run as a service[5]

開啓服務

$ systemctl start cloudflared.service
$ systemctl status cloudflared.service

效果

本地 IP 訪問。

通過 Argo Tunnel 訪問本地網頁。

引用鏈接

[1]

Many services, one cloudflared: https://blog.cloudflare.com/many-services-one-cloudflared/

[2]

Argo Tunnel – Setup: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup

[3]

Install cloudflared: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation

[4]

Ingress rules: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ingress

[5]

Run as a service: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/run-tunnel/run-as-service

原文鏈接:https://azhuge233.com/cloudflare-argo-tunnel-%E5%85%AC%E7%BD%91-ip-%E7%9A%84%E6%96%B0%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/X9yvUEtg_73giyCd8E2jsQ