点击上方卡片关注 不要错过精彩文章
持续更新有关Agent的最新搭建思路和工作流分享,希望能给您带来帮助,点一点上方的🔵蓝色小字关注,你的支持是我最大的动力!🙏谢谢啦!🌟"
大家好!我是唐舰长🙏
这两天好多小伙伴找到舰长,说"舰长教的流程搞不定,连节点都找不到"
起初舰长还是非常纳闷的,直到知道小伙伴是自己更新到n8n的2.0版本
而且还是不知道在哪找的教程,更新到2.0版本后好多节点都找不到了
Execute command 这个节点的功能就是调用本地终端去执行一些操作
在n8n 2.0版本中,这种直接修改文件夹调用终端的属于是一个"不安全状况"直接导致节点被删除
但——不是完全删除,要看各位如何去正确更新到n8n的2.0版本
本次舰长就来详细分享:
一:2.0版本到底升级了什么
二:如何平滑升级到2.0版本
话不多说,直接上干货!
一、n8n 2.0升级了什么?
UI升级
界面是一定升级了,但改动不大
增加一些动态加载元素。这些都可以等各自更新到2.0版本后自行感受。
安全性大幅升级
这是2.0版本的核心升级,是直接让n8n从"个人工具"向"企业级平台"进行升级,会将一些高危节点进行禁用:Execute Command(本地终端指令节点)、Local File Trigger节点。这两个节点权限太大,可以执行系统命令、监听本地文件,存在安全风险。
Execute Command(本地终端指令节点):就是大部分小伙伴升级到2.0版本后,发现舰长教的教程中找不到该节点的原因所在,"被禁用了"。
既然是禁用,那肯定可以恢复
只需要在部署时添加环境变量:
NODES_EXCLUDE="[]"这一步先做了解,下面舰长会在部署的时候说明
本地终端节点被禁用,那配置文件一样是被限制了,限制只允许配置文件所有者才可以修改,更新内容就是将配置文件权限从"所有用户可读写"改为 0600,同样的想要和1.0的版本一致就需要在部署的时候注意,尤其是Windows用户
Windows不支持这种权限设置,需要添加参数跳过检测:
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=falseOAuth授权必须登录
在之前的1.0版本中在调用工作流时,是不需要登入n8n就可以直接运行,同时会直接调用OAuth授权。
如果担心OAuth授权泄露,就可以把下面的指向"true"改为"false"
true=1.0版本的模式,不需要登入验证
false=2.0版本模型,更加安全可靠,需要验证
N8N_SKIP_AUTH_ON_OAUTH_CALLBACK=true磁盘读写权限限制
在使用n8n时,很多时候生成的图片或者下载的视频是比较希望可以下载到本地的文件中,或者可以直接从本地文件中去访问一些资料。
在2.0版本中,为了安全问题。需要存储或者访问的,只能限制到一个叫.n8n-files文件中,如果我们需要指定某个文件夹(如 n8ndata),需要明确指定:
N8N_ALLOWED_PATHS=/home/node/n8ndata环境变量访问限制
Code节点和表达式不能直接读取系统级环境变量,需要明确配置才能访问,这样可以防止敏感信息泄露(如API密钥、数据库密码等)。
2.0版本默认:N8N_BLOCK_ENV_ACCESS_IN_NODE=true
允 许 读 取: N8N_BLOCK_ENV_ACCESS_IN_NODE=false功能性更新:父子工作流逻辑优化
这是一个小但很重要的功能优化
1.0版本的问题:父工作流接收到的是子工作流的输入数据,而不是最终的输出数据。
举个例子:
当我们传递给"子工作流"一个参数内容"你是谁?" → 执行完毕后,子工作流只会把"你是谁?"返回给父工作流
导致我们拿不到"我是xxxx"这些答案参数
2.0版本的改进:现在父工作流可以正确接收到子工作流运行完成后的最终输出数据,逻辑更合理,符合实际使用场景。子工作流返回答案或者结果,父工作流都能接受到
性能与稳定性优化
性能与稳定性的升级对我们的感知可能不强,但它可以让我们的n8n运行得更加流畅
Code节点任务执行器独立
优化内容:
Code节点的任务执行器从主进程中独立出来
甚至可以用单独的Docker容器运行执行器
好处:
运行更稳定、速度更快
不会因为一个进程占用过多资源导致系统崩溃
二进制文件存储优化
变更内容:
原来:二进制文件存储在内存中
现在:存储在磁盘或数据库中
好处:
避免占用过多内存
工作流响应速度更快
可以处理更大的文件
数据库支持调整
不再支持MySQL数据库
优化了SQLite数据库性能
推荐使用PostgreSQL(生产环境)
二、如何平滑升级到2.0版本
步骤一:升级前检查
打开你现在的n8n(1.0的最新版本)后点击左下角 Settings
找到 Migration Tool(迁移工具)
报告内容包括:
工作流:哪些工作流会受影响、受影响的原因
实 例:哪些配置需要修改(数据库、环境变量、安全策略)
问题等级:
每个报告后面都有一个标签,舰长这个显示为"中等标签";代表着注意一下即可;如果现实"low低"就不需要关注。但出现"严重"的情况时就必须需要修改
步骤二:准备Docker部署指令
1.0版本的部署指令(windows powershell指令)
docker run -d `
--name n8n `
-p 5678:5678 `
-e GENERIC_TIMEZONE="Asia/Shanghai" `
-e TZ="Asia/Shanghai" `
-v D:\n8n\n8n:/home/node/.n8n `
-v D:\n8n\n8ndata:/home/node/n8ndata `
docker.n8n.io/n8nio/n8n:1.123.8指令解析:
--name n8n:容器名称
-p 5678:5678:端口映射
-e GENERIC_TIMEZONE:时区设置
-v:数据目录挂载
n8nio/n8n:拉取最新镜像
2.0版本需要添加的4个关键参数
根据前面提到的4个重要变更,我们需要在1.0指令基础上添加4个新的环境变量。
参数1:文件权限检查
-e N8N_SECURITY_AUDIT_FILE_PERMISSIONS_DISABLE_CHECKS=false这个环境变量代表,把默认的会启动权限改为不启动
默认值:true(启用权限检查,改为0600)
Windows用户:必须改为 false
Linux/Mac用户:保持 true
参数2:恢复被禁用的节点
-e NODES_EXCLUDE="[]"这个环境变量代表恢复被禁用的节点,很多小伙伴找不到节点就是没有添加这个环境变量
什么情况需要?需要自动创建本地文件夹、要执行第三方命令、需要监听本地文件变化
参数3:启用登录验证
-e N8N_DIAGNOSTICS_DISABLE_ENVIRONMENT_INFO=false这个环境变量代表OAuth授权需不需要登入验证
默认值:true 改为:false 修改完成后OAuth授权就必须先登录n8n
参数4:允许访问自定义文件夹
-e N8N_ALLOWED_PATHS=/home/node/n8ndata这个环境变量代表允许磁盘读写节点访问n8ndata文件夹,如果你的数据在其他文件夹,修改路径即可
必须同时挂载文件夹
只添加环境变量还不够,同时还需要把文件夹挂载到本地,也就是这行指令
-v d:/n8n/n8ndata:/home/node/n8ndata步骤三:完整的2.0部署指令
把上面4个参数整合到1.0指令中,就得到了完整的2.0部署指令:
docker run -d `
--name n8n `
-p 5678:5678 `
-e GENERIC_TIMEZONE="Asia/Shanghai" `
-e TZ="Asia/Shanghai" `
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false `
-e NODES_EXCLUDE="[]" `
-e N8N_SKIP_AUTH_ON_OAUTH_CALLBACK=false `
-e N8N_RESTRICT_FILE_ACCESS_TO=/home/node/n8ndata `
-v "d:\n8n\n8n:/home/node/.n8n" `
-v "d:\n8n\n8ndata:/home/node/n8ndata" `
docker.n8n.io/n8nio/n8n:2.0.0(注:以上指令为windows的 powershell指令;如mac或者cmd指令的可以用豆包生成)
对比之前1.0几版本,多了四行指令:
步骤四:部署或者升级n8n
如果你从未玩过n8n,也没有部署过n8n,可以先查看舰长这篇文章:
用的是docker的部署方式,简单好配置、也方便学习使用:https://waytoagi.feishu.cn/wiki/Mf2FwY3TJiTNNukkB9GctioInpc
下面是舰长基于已经部署过n8n的小伙伴,如何流畅升级到n8n 2.0的教程
1. 停止并删除旧容器
docker stop n8n
两个指令单独执行一次后再执行另一个
docker rm n8n2. 拉取2.0镜像
docker pull n8nio/n8n:2.0.03. 运行2.0容器
docker run -d `
--name n8n `
-p 5678:5678 `
-e GENERIC_TIMEZONE="Asia/Shanghai" `
-e TZ="Asia/Shanghai" `
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false `
-e NODES_EXCLUDE="[]" `
-e N8N_SKIP_AUTH_ON_OAUTH_CALLBACK=false `
-e N8N_RESTRICT_FILE_ACCESS_TO=/home/node/n8ndata `
-v "d:\n8n\n8n:/home/node/.n8n" `
-v "d:\n8n\n8ndata:/home/node/n8ndata" `
docker.n8n.io/n8nio/n8n:2.0.0(注:以上指令为windows的 powershell指令;如mac或者cmd指令的可以用豆包生成)
Linux/Mac用户:只需要修改这一行改为true
-e N8N_SECURITY_AUDIT_FILE_PERMISSIONS_DISABLE_CHECKS=true4. 检查是否启动成功
打开docker看有没有名字叫n8n的容器
步骤五:验证升级
1. 访问n8n:127.0.0.1:5678
2. 检查版本号
左下角应该显示 v2.0.0
升级前后对比表
写在最后
这次2.0升级,让我看到了n8n从"能用"到"好用"的质变。
特别是安全性和性能方面的提升,让它真正有了挑战企业级市场的资本。
升级过程也非常平滑,只需要调整几个环境变量就能完成。
如果你在升级过程中遇到任何问题,欢迎在评论区留言,舰长会第一时间回复!
相关阅读推荐:
我花1小时搭了个智能体,现在它每天帮我找各种低粉爆款作品选题
厉害了!红薯爆款系列,n8n批量产出萌系单词卡,从选题到发布全部自动化流
电商详情图别再外包了!n8n+Nano Banana Pro,低成本搞定商用级出图,一套流程自动保存本地
关注公众号并添加舰长微信,领取智能体学习资料,并参与智能体技术直播讲解
另外非常欢迎大家加入[唐舰长AI落地智能体交流群],主要交流群每周都会进行公益直播教大家搭建AI智能体工作流