虚拟机上docker代理设置 n8n docker-compose.yml编辑 n8n启动错误处理 n8n管理员账号注册 n8n简单的示例配置
虚拟机上docker代理设置(非必须)
一、前提条件
1. 主机环境
- Windows 主机已安装 Clash for Windows,并开启「Allow LAN」功能(默认代理端口为 `7890`,HTTP/HTTPS/SOCKS5 协议均可支持)。
- 确保虚拟机与主机网络互通(建议使用 NAT 模式),可通过 `ping 主机IP` 验证网络连通性。
2. CentOS 配置
- 关闭防火墙和 SELinux(临时或永久关闭)
systemctl stop firewalldsetenforce 0
二、配置 Docker 代理,通过 systemd 配置(推荐)
1. 创建代理配置文件
sudo mkdir -p /etc/systemd/system/docker.service.dsudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
2. 添加代理信息
假设主机 IP 为 `192.168.1.100`,Clash 代理端口为 `7890`:
[Service]Environment="HTTP_PROXY=http://192.168.1.100:7890"Environment="HTTPS_PROXY=http://192.168.1.100:7890"Environment="NO_PROXY=localhost,127.0.0.1,docker.io"
说明:`NO_PROXY` 可排除无需代理的地址(如 Docker Hub 镜像域名 `docker.io`)。
3. 重载配置并重启 Docker
sudo systemctl daemon-reloadsudo systemctl restart docker
systemctl show --property=Environment docker
HTTP_PROXY 和 HTTPS_PROXY 的配置
mkdir n8n-dockercd n8n-docker/mkdir n8n_datavi docker-compose.yml
version: "3"services:n8n:image: docker.n8n.io/n8nio/n8ncontainer_name: n8nrestart: alwaysports:- "5678:5678"environment:- GENERIC_TIMEZONE=Asia/Shanghai- TZ=Asia/Shanghai# 这一步非常重要,允许通过 IP 访问 Webhook- N8N_HOST=0.0.0.0- N8N_PORT=5678- N8N_PROTOCOL=http# 将下面的 192.168.1.100 替换为你虚拟机的实际 IP- WEBHOOK_URL=http://192.168.80.162:5678/# 【新增】显式告诉前端编辑器当前的访问地址,解决 WebSocket/跨域问题- N8N_EDITOR_BASE_URL=http://192.168.80.162:5678/# 如果你的浏览器安全策略非常严格,可以尝试禁用安全 cookie(仅限测试环境)- N8N_SECURE_COOKIE=falsevolumes:- ./n8n_data:/home/node/.n8n
1. 启动容器:
sudo docker compose up -d#查看日志:sudo docker compose logs -f --tail=20
启动日志截图如下:
说明n8n的后端服务已经正常启动了。
2. 浏览器访问n8n
在浏览器输入http://192.168.80.162:5678,出现如下错误:
将截图丢给Gemini 3 分析,给出的回复如下:
问题核心分析:
从你的截图和控制台错误来看:
后端已就绪:日志显示 Editor is now accessible,说明 n8n 核心服务在运行。
前端报错:TypeError: Cannot read properties of undefined (reading 'ldap')。这意味着前端页面加载了,但它向后端请求“配置信息”(/rest/config)时,请求被浏览器拦截了或者失败了,导致前端拿不到数据,试图读取空数据的 ldap 属性时崩溃。
安全警告:The Cross-Origin-Opener-Policy header has been ignored... origin was untrustworthy。
这是关键。Chrome 等现代浏览器认为 http://192.168.x.x 是“不安全”的(只有 localhost 和 https 才是安全的)。
n8n 的最新版本(1.120.x)为了安全增加了更严格的 HTTP 头(Header),这与 HTTP 局域网访问产生了冲突。
解决方案:
要么版本降级,要么使用 Chrome 浏览器“不安全来源白名单”,因为我是本地测试,所以选择了后者。步骤如下:
如果你必须用最新版,这是因为 Chrome 强行拦截了不安全来源的 API 请求。我们需要告诉 Chrome:“信任这个 IP”。
在 Chrome 浏览器地址栏输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure
在高亮的 Insecure origins treated as secure 文本框中,输入你的 n8n 地址:http://192.168.80.162:5678
将右侧的下拉菜单改为 Enabled。
点击右下角的 Relaunch 重启浏览器。
再次访问 n8n 页面。
首次访问n8n平台需要注册管理员账号:
然后n8n询问你的用途、角色、公司规模等等,随意选择一下即可。
之后会询问你要不要获取一个免费的 license key,可以点击跳过即可。
这样就完成了n8n的部署,可以开始配置工作流了。
1. 点击左侧“+”,选择workflow,即可开始一个新的工作流配置:
2. 添加一个On chat message,后面接一个Basic LLM Chain,写一个Prompt
3. 然后添加大语言模型
这里使用openrouter的接口,先添加一个openrouter的api-key,然后选择要用哪个大模型。
然后下下面聊天输入框输入信息就可以测试工作流了。
到此,本地虚拟机上docker安装n8n平台基本完成。
需要注意的几个点:
1. 管理员账号密码务必要记住,忘记密码后好像没地方重置,问大模型如何重置密码,使用n8n user-management:reset,命令好像也不起作用;
2. n8n 默认使用的数据库是sqlite3
3. 配置好一个工作流后,记得及时导出备份。
如果本文对你有帮助,不妨点个免费的赞和收藏备用。
👇 关注Gallop,让AI提升你的效率
👉 添加我的微信(gallop_liu),备注“加群”,交流并分享个人的一些资料。
程序猿的养生茶:
胎菊8颗+玫瑰6颗+枸杞少许
夏天胎菊多一些,枸杞少一些,冬天则相反

