navicat计划任务实际动作被拦截,主因是windows防火墙默认不放行服务会话下navicatcmd.exe的出站连接;需为其单独配置启用的绝对路径出站规则,并同步检查云服务器安全组双向策略。
navicat计划任务本身不会被系统防火墙拦截——真正被拦的是它启动后尝试建立的数据库连接,或调用的navicatcmd.exe进程发起的网络通信。任务“看似执行了但备份/导出没发生”,八成是卡在连接阶段,而非调度失败。
为什么防火墙会中断计划任务的实际动作
Windows 防火墙默认只放行交互式用户启动的进程的出站连接;而计划任务(尤其勾选了「不管用户是否登录都要运行」)是以服务会话方式拉起navicatcmd.exe,此时进程无桌面会话上下文,其出站请求会被防火墙策略静默丢弃,不弹提示、不写日志、不报错——只留下一个空转的任务状态。
- 现象:任务计划程序显示“已运行”,但 Navicat 日志里查不到连接记录,数据库端也收不到 SYN 包
- 验证方法:在任务触发时刻,用
netsh advfirewall firewall show rule name=all查是否有针对navicatcmd.exe的“出站规则”且状态为Enabled - 注意:
navicat.exe的规则对计划任务无效,必须单独配navicatcmd.exe
给 navicatcmd.exe 单独添加出站防火墙规则
不能依赖 Navicat 安装时自动注册的规则——那些只管 GUI 主程序,不管命令行子进程。
- 打开
wf.msc(高级安全 Windows 防火墙)→ 左侧点「出站规则」→ 右侧「新建规则…」 - 规则类型选「程序」→ 浏览到你的 Navicat 安装目录,选中
navicatcmd.exe(不是navicat.exe) - 操作选「允许连接」→ 配置文件保持默认(域、专用、公用全勾)→ 规则名称填
NavicatCMD-Outbound - 关键一步:在「程序和服务」页,点击「更改程序」→ 勾选「此程序路径」→ 确保路径是绝对路径,如
C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe
Linux/macOS 下 Wine 用户别白忙活
Wine 不模拟 Windows 防火墙策略,但它也不支持 Navicat 计划任务功能本身。你看到的「任务已注册」只是界面假象,navicatcmd.exe根本不会被调用——这不是防火墙问题,是平台不兼容。官方明确不支持,别在ufw或iptables上浪费时间。
云服务器用户额外检查安全组
本地防火墙开了,不代表云环境就通了。阿里云/腾讯云/AWS 的安全组是独立于系统防火墙的第一道网关:
- 进方向规则必须放行数据库端口(如 MySQL 的
3306、Oracle 的1521),源 IP 建议先设为0.0.0.0/0测试 - 出方向规则也要确认——有些云厂商默认出方向全放行,但部分企业策略会限制,需手动放开目标数据库 IP+端口
- 如果 Navicat 调度机和数据库不在同一内网(比如跨 VPC 或走公网),安全组必须双向配置
最常被忽略的一点:规则生效有延迟,尤其在云平台控制台修改后,可能需要 30 秒以上才同步到节点。别改完立刻点「运行任务」,等半分钟再试。











