Skip to main content
Benny的老巢 Logo
Overview

n8n局域网访问配置完整指南:从基础到进阶的实战经验

January 7, 2026
1 min read

前几天在搭建n8n自动化工作流平台时,遇到了一个很实际的问题:默认情况下n8n只能在本地访问,局域网内的其他设备根本连不上。这个问题看似简单,但实际配置过程中还是踩了不少坑,今天就把完整的配置过程和经验分享给大家。

为什么默认无法局域网访问

n8n启动时默认只监听localhost(127.0.0.1),这是出于安全考虑的设计。但实际使用中,我们经常需要在局域网内多个设备上访问n8n的管理界面,比如在台式机上配置工作流,在笔记本上测试运行结果。

要实现局域网访问,核心思路就是让n8n监听所有网络接口,而不是只监听localhost。

npm安装方式的配置方法

如果你是通过npm安装的n8n,配置相对简单直接。主要是在启动前设置环境变量N8N_HOST=0.0.0.0

临时测试配置

快速测试的话,可以直接在启动命令前设置环境变量:

Terminal window
# Linux/macOS系统
export N8N_HOST=0.0.0.0
n8n start
# Windows命令提示符
set N8N_HOST=0.0.0.0
n8n start
# Windows PowerShell
$env:N8N_HOST="0.0.0.0"
n8n start

这样配置后,n8n就会监听所有网络接口,局域网内的其他设备就能通过你的IP地址访问了。

持久化配置

如果每次启动都要手动设置环境变量,那也太麻烦了。建议将环境变量写入系统配置文件。

Linux/macOS:~/.bashrc~/.zshrc中添加:

Terminal window
export N8N_HOST=0.0.0.0

Windows: 在系统环境变量中添加N8N_HOST,值为0.0.0.0

Docker安装方式的配置方法

Docker环境的配置稍微复杂一些,因为涉及到容器网络和端口映射。

基本配置

最简单的方式是在运行容器时设置环境变量并映射端口:

Terminal window
docker run -it --rm --name n8n \
-p 5678:5678 \
-e N8N_HOST=0.0.0.0 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n

这里的关键参数是:

  • -p 5678:5678:将容器的5678端口映射到主机的5678端口
  • -e N8N_HOST=0.0.0.0:设置环境变量让n8n监听所有网络接口
  • -v n8n_data:/home/node/.n8n:持久化n8n数据

使用Docker Compose

如果项目比较复杂,建议使用Docker Compose来管理:

version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
- WEBHOOK_URL=http://你的服务器IP:5678
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:

安全防护:开放访问不等于裸奔

让n8n支持局域网访问后,安全问题就变得尤为重要。我强烈建议至少启用基础认证。

启用基础认证

npm安装方式:

Terminal window
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=your_secure_password

Docker方式: 在运行命令或docker-compose.yml中添加环境变量:

Terminal window
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=your_secure_password

其他安全建议

  1. 使用强密码:密码至少包含大小写字母、数字和特殊字符
  2. 定期更换密码:建议每3个月更换一次
  3. 限制访问IP:如果条件允许,在路由器层面限制访问IP范围
  4. 启用HTTPS:如果需要外网访问,一定要配置SSL证书

实际访问和故障排查

配置完成后,局域网内的其他设备就可以通过http://你的电脑IP地址:5678访问n8n了。

如何获取IP地址

Windows系统: 打开命令提示符,输入ipconfig,找到IPv4地址

macOS系统: 打开终端,输入ifconfigip a

Linux系统: 打开终端,输入ip addr showifconfig

常见问题排查

问题1:无法访问n8n

  • 检查防火墙是否允许5678端口
  • 确认n8n是否正常启动
  • 验证N8N_HOST是否设置为0.0.0.0

问题2:认证失败

  • 确认基础认证已启用
  • 检查用户名和密码是否正确
  • 清除浏览器缓存后重试

问题3:Webhook无法触发

  • 检查WEBHOOK_URL配置是否正确
  • 确认防火墙是否允许外部访问
  • 测试网络连通性

进阶应用:外网访问方案

如果需要从外网访问n8n,有几种相对安全的方案:

方案一:反向代理+HTTPS

使用Nginx作为反向代理,配置SSL证书:

server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

方案二:内网穿透工具

使用frp、ngrok等内网穿透工具,但要注意:

  • 只用于临时测试,不建议长期使用
  • 启用强密码认证
  • 限制访问频率

方案三:VPN

搭建VPN服务器,通过VPN访问局域网内的n8n,这是最安全的方式。

总结

配置n8n局域网访问并不复杂,关键是要注意以下几点:

  1. N8N_HOST=0.0.0.0:这是局域网访问的核心配置
  2. 端口映射:Docker环境要正确配置端口映射
  3. 安全防护:开启基础认证,使用强密码
  4. 防火墙设置:确保防火墙允许5678端口通信
  5. 外网访问:如果需要外网访问,务必使用HTTPS

按照这个指南配置,你应该能顺利让n8n在局域网内运行。如果在配置过程中遇到问题,欢迎在评论区留言交流。