跳到正文
SL Blog 技术探索 · 工程实践 · AI 时代思考
返回
⚙️ n8n Docker 部署 · 3 / 9 查看系列简介 →

n8n Docker 部署(二):代理配置与原理

文章目录
  1. 概述
  2. 环境变量说明
  3. 宿主机连通性验证
  4. 容器内连通性验证
  5. 网桥原理:为何使用 172.17.0.1
  6. 故障排查清单

📌 本文是「n8n Docker 部署」系列第 二 篇 · 系列目录

概述

当 n8n 需要访问外部网络资源且希望通过本机或容器中的代理服务出站时,需正确设置环境变量并验证连通性。

环境变量说明

  • N8N_USE_PROXY:启用 n8n 的代理功能(true/false)
  • HTTP_PROXY / HTTPS_PROXY:HTTP/HTTPS 出站代理地址,例如 http://172.17.0.1:7890
  • NO_PROXY:不走代理的目标列表,常见包含 localhost,127.0.0.1,<你的服务器IP>,mirror.ccs.tencentyun.com

宿主机连通性验证

先在宿主机验证代理是否可用:

curl -I -x http://127.0.0.1:7890 https://example.com

出现 HTTP/1.1 200 OK 表示宿主机代理可用。

容器内连通性验证

在 n8n 容器中验证是否生效:

docker exec -it n8n bash
curl -I https://example.com
exit

同样返回 200 表示容器内代理生效。

网桥原理:为何使用 172.17.0.1

  • Docker 默认网桥 docker0 在宿主机侧的 IP 通常为 172.17.0.1,充当容器访问宿主机的“网关”
  • 在容器内使用 127.0.0.1 指向容器自身,无法访问到宿主机上的代理
  • 使用宿主机公网 IP 可能受安全组或防火墙影响,且流量绕公网效率较低

如不确定网桥地址,可运行:

ip addr show docker0

在输出中 inet 后的地址,即容器访问宿主机应使用的 IP(通常是 172.17.0.1)。

故障排查清单

  • 确认代理服务端口监听正常(如 7890)
  • 宿主机与容器内分别验证连通性
  • 检查 HTTP_PROXY/HTTPS_PROXY/NO_PROXY/N8N_USE_PROXY 是否拼写正确
  • 如更换订阅或配置,建议:
    docker-compose down
    docker-compose up -d

RAG 智能问答

针对本文继续提问:《n8n Docker 部署(二):代理配置与原理》