如何免費獲取一個 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。
環境
- Debian 10
準備
-
Cloudflare 賬號
-
接入了 Cloudflare 的域名
參考
- Argo Tunnel – Setup[2]
步驟
以下指令在 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