有沒有辦法繞過 Cloudflare 保護?

描述問題/錯誤/問題

我想要登入/發文的網站有 cloudflare 保護,基本上當我在 n8n 中使用 HTTP Request 節點時,它會檢測你是否是機器人,但當我使用瀏覽器時,我沒有收到 cloudflare 挑戰。是否有任何免費工具可以繞過機器人檢測?我試過使用社群節點 n8n-nodes-camoufox,但似乎有連接問題 connect ECONNREFUSED ::1:9222 我還可以使用其他社群節點嗎?

錯誤訊息是什麼(如果有的話)?

請分享你的工作流程

(在你的畫布上選擇節點,並使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)

分享最後一個節點返回的輸出

關於你的 n8n 設置的資訊

  • n8n 版本:2.29.8
  • 資料庫(預設:SQLite):預設
  • n8n EXECUTIONS_PROCESS 設置(預設:own, main):預設
  • 執行 n8n 的方式(Docker, npm, n8n cloud, desktop app):npm
  • 作業系統:Ubuntu 24.04 LTS

@Ruriko

你遇到這些問題的原因是 Cloudflare 不僅僅查看你的「User-Agent」標頭;它執行 TLS 指紋識別(檢查你的網路連線如何建立)和 JavaScript 挑戰(在瀏覽器中執行程式碼以證明你不是指令碼)。標準的 n8n HTTP Request 節點是一個簡單的 HTTP 用戶端,沒有瀏覽器引擎,所以它會立即失敗這些測試。

要修復此問題,你通常需要在 Ubuntu 終端中手動啟動 Camoufox 或 Chromium 瀏覽器,並啟用遠端除錯標誌:

# 範例(實際命令取決於你的 camoufox 安裝)
camoufox --remote-debugging-port=9222

如果你沒有安裝瀏覽器二進位檔案並將其作為單獨的程序執行,該節點就無法連線到任何東西。

另一個替代方案是 FlareSolverr
你需要透過 docker 安裝

docker run -d \
  --name=flaresolverr \
  -p 8191:8191 \
  -e LOG_LEVEL=info \
  --restart always \
  ghcr.io/flaresolverr/flaresolverr:latest

然後使用 http 節點傳送你的請求

方法: POST
URL: http://localhost:8191/v1
主體參數 (JSON):

{
  "cmd": "request.get",
  "url": "https://the-protected-site.com",
  "maxTimeout": 60000
}