📌 本文是「n8n Docker 部署」系列第 二 篇 · 系列目录
概述
当 n8n 需要访问外部网络资源且希望通过本机或容器中的代理服务出站时,需正确设置环境变量并验证连通性。
环境变量说明
N8N_USE_PROXY:启用 n8n 的代理功能(true/false)HTTP_PROXY/HTTPS_PROXY:HTTP/HTTPS 出站代理地址,例如http://172.17.0.1:7890NO_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