--- title: "n8n Docker 安装与 SOCKS5 代理配置" type: source tags: [n8n, docker, socks5, self-hosted, proxy] date: 2025-12-30 --- ## Source File - [[raw/Agent/n8n docker install & update.md]] ## Summary - 核心主题:n8n Docker 部署并配置 SOCKS5 代理访问外网 - 问题域:n8n 容器内网络隔离,需要通过宿主机代理访问 AI API(OpenAI/Claude 等) - 方法/机制:Docker 自定义 Dockerfile 安装 curl/wget + docker-compose ALL_PROXY 环境变量指向宿主机 Docker 网桥 SOCKS5 端口 - 结论/价值:容器内 AI 工作流节点可正常访问被墙或海外服务 ## Key Claims - n8n 容器默认网络隔离,HTTP/HTTPS 请求无法直接访问外网 AI 服务 - `ALL_PROXY=socks5://172.21.0.1:10808` 将容器流量路由到宿主机 SOCKS5 代理 - Docker 网桥网关地址(`docker network inspect n8n_default` 中的 Gateway)决定宿主机代理监听地址 - 更新 n8n:进入 docker-compose 目录 → `docker compose pull` → `docker compose down` → `docker compose up -d` ## Key Quotes > "注意:`172.21.0.1` 需替换为以下命令输出的网桥 IP(Gateway)" — 网桥 IP 因环境而异,必须动态获取 ## Key Concepts - [[Docker 网桥网络]]: Docker 默认 bridge 网络模式,容器通过 `172.17.0.1`(Linux)或 `172.18.0.1`/`172.21.0.1`(macOS Docker Desktop)访问宿主机 - [[SOCKS5 代理]]: 一种代理协议,支持 TCP/UDP 流量转发;`socks5h://` 模式由代理服务器解析 DNS,防止 DNS 污染 - [[ALL_PROXY]]: 环境变量,HTTP/HTTPS/SOCKS 协议通用代理设置 - [[Docker 自定义 Dockerfile]]: 基于官方镜像安装额外工具(curl/wget)的标准方式 ## Key Entities - [[n8n]]: 开源工作流自动化平台,支持 543+ 节点,本项目 AI 自动化核心 - [[V2Ray]]: SOCKS5 代理服务端,监听宿主机 `0.0.0.0:10808` ## Connections - [[n8n-Telegram-Trigger-HTTPS配置修复]] ← relates_to ← [[n8n-Docker安装与SOCKS5代理配置]](同属 n8n 自托管部署实战) ## Contradictions - 与"n8n 官方推荐直接暴露 5678 端口"不同:本方案通过 Caddy 反向代理隐藏端口,仅暴露 HTTPS 端点 ## Docker Compose 关键配置 ```yaml environment: - N8N_PROTOCOL=https - N8N_HOST=n8n.ishenwei.online - WEBHOOK_URL=https://n8n.ishenwei.online/ - N8N_TRUST_PROXY=true - N8N_SECURE_COOKIE=true - ALL_PROXY=socks5://172.21.0.1:10808 networks: n8n_default: external: true ``` ## 容器内测试代理 ```bash docker exec -it n8n /bin/sh curl --socks5 172.18.0.1:10808 https://ifconfig.me # 返回国外 IP 即表示代理生效 ``` ## Tags - #n8n #docker #proxy #self-hosted