我在家庭實驗室的 Docker 上運行 n8n 實例。問題是我的家庭實驗室連接到我學校的 WiFi 網絡,我使用 tailscale 作為訪問它的媒介。當我嘗試工作流程時(我是初學者),它給了我一個錯誤,說無法訪問 webhooks。我問了 ChatGPT,它讓我使用 cloudflared tunnel 來打開它以接受 https webhooks。有沒有我不知道的解決方案。請幫助我,我不想再花錢買域名了。
描述問題/錯誤/問題
錯誤消息是什麼(如果有的話)?
請分享您的工作流程
(在畫布上選擇節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 複製並粘貼工作流程。)
分享最後一個節點返回的輸出
有關您的 n8n 設置的信息
- n8n 版本:
- 數據庫(默認:SQLite):
- n8n EXECUTIONS_PROCESS 設置(默認:own、main):
- 通過以下方式運行 n8n(Docker、npm、n8n cloud、桌面應用程序):
- 操作系統:
@Liruan webhook URL 需要可以公開存取。Local 代表沒有傳入的網際網路流量。
兩個實用選項:
Ngrok 是最快的解決方案。安裝它,執行「ngrok http 5678」,你就會獲得一個公開 URL,可以通道到你的本地 n8n。在 n8n 設定中將 WEBHOOK_URL 設定為 ngrok 位址。你的 webhook 節點將會顯示正確的公開 URL。適合測試使用,但除非你付費購買固定網域,否則 URL 會在每次重新啟動時輪換。
Cloudflare Tunnel 是更簡潔的免費替代方案。安裝 cloudflared,建立一個指向 localhost:5678 的通道,你就能免費獲得一個固定子網域。將其設定為你的 WEBHOOK_URL,它將在重新啟動後持續存在。
無論如何都要設定一件事:n8n 中的 WEBHOOK_URL 環境變數。沒有它,n8n 會根據其自身的主機偵測產生 webhook URL,並產生一個外部服務無法到達的 localhost 位址。
是哪個服務在傳送 webhook?有些服務有 IP 允許清單可供配置,這會改變方法。
既然你已經在使用 Tailscale,還有一個更簡單的方法 - Tailscale Funnel。它為你提供一個穩定的公開 HTTPS URL,直接路由到你的 Docker 容器,不需要域名,也沒有旋轉 URL。使用 tailscale funnel 5678 啟用它(假設 n8n 預設連接埠)。然後在 n8n Docker 環境中設定 WEBHOOK_URL=https://your-machine-name.tailnet-name.ts.net。該 URL 在重新啟動時保持不變,這使得它比 ngrok 免費版本對於長期運行的家庭實驗室設置更簡潔。