前言
Cloudflare Tunnel
可以將您的內部網絡連接到 Cloudflare
的全球網絡,從而實現外部訪問內部服務,不需要依靠公網 IP,也就是說即使是手機的數據網絡都能架設服務。
主要問題是通常路由器上的空間有限,Cloudflare Tunnel
的執行檔大小約為 23.6MB(而且愈變愈大…),所以需要注意空間問題。
OpenWRT
內建的 luci-app-cloudflared
外掛可以快速組態 Cloudflare Tunnel
服務。
但是如果你只需要簡單的 DDNS 服務,可以使用 luci-app-ddns
外掛來自動更新 Cloudflare
的 DNS 設定。可以節省大量空間,將反向代理的功能交給其他服務,例如使用 Nginx Proxy Manager。
Nginx Proxy Manager 提供一個網頁介面,可以在網頁上組態反向代理,可以自訂 SSL,自訂錯誤頁面,支援 Proxy Host
, Redirection Hosts
, Streams
(TCP/UDP轉發,例如轉發 SSH/SFTP)。
有提供基本的 WAF 防火牆功能,緩存,Websocket 支援,自訂 Header 等等,也支援登入限制。
可以作為 Cloudflare Tunnel 的簡易版替代方案。
安裝 Cloudflared
lucu-app-cloudflared
外掛安裝後會自動下載 cloudflared
執行檔,並安裝到 /usr/bin/cloudflared
。
目前 cloudflared
版本為 v2024.4.0
執行檔大小約為 23.6MB,所以請確保路由器有足夠的空間。
另外也可以在先在 Cloudflared GitHub 下載最新的版本,然後利用 UPX 先壓縮後再上傳到路由器。
使用指令 upx --lzma cloudflared
壓縮後的執行檔大小約為 6.3MB。
留意如果啟用了自動更新,在更新後又會還原為正常大小。
可以使用
cloudflared update
來更新cloudflared
。
|
|
組態 Cloudflared
方法一 (locally-managed tunnel)
在 OpenWRT
上執行 cloudflared tunnel login
,會出現一個網址,複製到瀏覽器中,然後登入,登入後會得到 cert.pem
。
將 cert.pem
建立一個符號連結到 /etc/cloudflared/cert.pem
,否則外掛會找不到 cert.pem
。
|
|
最後修改 /etc/config/cloudflared
組態檔案,按照預設範本填入資料即可。
也可以在 OpenWRT
網頁管理介面中,找到 VPN
-> Cloudflare Zero Trust Tunnel
進行組態。
方法二 (remotely-managed tunnel)
在 Cloudflare 上創建一個 Tunnel,並獲取 token
。
位置: Networks
-> Tunnels
-> Create Tunnel
。
建立後,隨便選擇一個安裝環境,最後面長長的字串就是 token
。
在 OpenWRT
網頁管理介面中,找到 VPN
-> Cloudflare Zero Trust Tunnel
組態 token
,最後選取 Enable
即可。
luci-app-cloudflared
外掛的設定檔在/etc/config/cloudflared
,也可以直接修改該檔案來更新設定。
常見問題
如果啟動時出現以下錯誤,可以新增或修改 /etc/sysctl.d/29-cloudflared-conf
檔案來解決。不過就算沒有 Ping 的權限也不影響使用。
|
|
在 /etc/sysctl.d/30-cloudflared-conf
加入以下內容,然後重啟路由器或執行 sysctl -p
。
|
|