内网离线RPA实战:金融政务国企数据不出域的完整部署方案

核心痛点:你的RPA流程在跑,但数据在云端裸奔。等保测评一查,全厂整改。


一、为什么敏感行业必须上离线RPA?

去年某券商因为RPA流程数据经过公网传输,被监管点名整改。这事儿在圈子里传疯了。

金融、政务、国企、军工------这些行业的共同特点是:数据就是命根子。哪怕是一条客户手机号流到外网,都可能触发合规红线。

传统SaaS型RPA的问题很致命:

  • 流程脚本上传到厂商云端,你不知道存在哪台服务器

  • 执行日志、截图、录屏全走公网回传

  • 账号权限由平台控制,离职员工权限回收滞后

  • 等保三级要求"数据不出域",SaaS模式天然违背

内网离线RPA才是这些场景的解药。数据从采集到处理到存储,全程在本地闭环,网络层物理隔离,审计日志本地留存,这才是等保合规的基线要求。


二、本地私有化部署的四种实操方案

方案没有最好,只有最贴合你现有IT架构的。下面四种我都落地过,直接上干货。

方案A:单机离线部署(适合分支机构/个人工作室)

一台内网电脑,断网也能跑。

硬件要求:i5以上CPU,8G内存,Win10/Win11或CentOS 7+

部署步骤

  1. 准备离线安装包(提前在有网环境下载好全部依赖)

  2. 内网机器安装主程序,无需注册账号,不连外网

  3. 设计流程时元素抓取支持本地智能生成,系统会根据页面结构自动推荐最稳定的XPath/CSS路径,不用你手写选择器

  4. 流程调试通过后,打包导出EXE应用

  5. 把这个EXE拷到目标机器双击就能跑,对方不用装任何客户端

这个方案的核心优势:流程应用数据全部保存在用户本地设备上,不同步到服务端。你的客户名单、财务报表、内部系统账号密码,永远留在你的硬盘里。

另外,如果你不是企业采购,只是个人开发者或者个人工作室接私活------这个方案没有运行时长限制,没有流程数量限制 ,设计器可以一直开着用。而且设计器本身支持自定义界面,你可以把流程包装成带自己Logo的软件界面发给客户,看起来就是原生开发的工具,而不是一个RPA脚本。

最后一步打包的时候,选"导出独立EXE"。对方电脑不用装任何运行环境,双击就能跑。我试过把带Selenium+OpenCV依赖的流程打包发给客户,80M左右,微信直接传,对方Win7都能跑。

方案B:局域网集群部署(适合中小企业)

多台电脑协同,脚本统一分发。

架构设计

复制代码
[管理节点] ------内网------ [执行节点A]
              ------内网------ [执行节点B]
              ------内网------ [执行节点C]

关键配置

  • 管理节点负责流程编排和任务调度,支持API触发,外部系统(如OA、ERP)通过内网HTTP接口直接下发任务

  • 执行节点只接收指令运行,不存储敏感数据

  • 打包导出应用EXE支持授权,每个节点需要授权文件才能运行,防止脚本被随意复制扩散

  • 应用支持加密分享、分享授权,团队协作时可以给不同成员分配不同权限等级

这个方案解决了"多台电脑同步脚本"的痛点。以前改一个流程要每台机器手动更新,现在打包导出EXE应用支持在线推送更新,执行端打开应用自动检测新版本,无需再次手动分发。

方案C:虚拟机/容器化部署(适合有DevOps能力的团队)

用Docker或VMware做环境隔离,一套镜像批量克隆。

技术要点

  • 基础镜像预装好RPA引擎和所有Python依赖(后面会讲依赖嵌入的细节)

  • 每个流程跑在独立容器里,崩溃不影响其他流程

  • 日志挂载到宿主机本地目录,定期归档到内网NAS

方案D:国产化信创适配(适合党政军单位)

ARM架构+麒麟/统信UOS+达梦数据库。

目前主流RPA对信创生态支持参差不齐,选型时要重点验证:

  • 是否支持龙芯/飞腾/鲲鹏CPU

  • 是否适配国产浏览器(如360安全浏览器、统信浏览器)

  • 流程设计器能否在国产操作系统上正常运行


三、打包EXE的依赖陷阱与解决方案

这是最容易踩坑的地方。很多开发者在本机跑得好好的,打包成EXE发给同事就报错:ModuleNotFoundErrorDLL load failed找不到指定的程序......

问题根因

Python的依赖管理是"动态链接"机制。你pip install的库,很多底层调用了系统DLL、VC++运行库、甚至显卡驱动。本机有,不代表目标机器有。

解决方案:Python依赖嵌入

第一步:冻结依赖清单

复制代码
pip freeze > requirements.txt

第二步:使用PyInstaller的--hidden-import参数

很多库在运行时动态加载子模块,静态分析抓不到。比如pandas依赖numpynumpy又依赖mkl-service。必须手动声明:

复制代码
pyinstaller --hidden-import=numpy.core._dtype_ctypes \
            --hidden-import=pandas._libs.tslibs.timedeltas \
            your_script.py

第三步:打包时嵌入VC++运行库

下载Visual C++ Redistributable的离线安装包,和你的EXE一起分发。或者在spec文件里用binaries参数把msvcp140.dllvcruntime140.dll打进去。

第四步:处理浏览器驱动

如果流程涉及网页自动化,ChromeDriver/EdgeDriver的版本必须和浏览器版本严格匹配。建议:

  • 在打包时把对应版本的驱动文件放进_internal目录

  • 代码里用相对路径调用,不要写死绝对路径

进阶技巧 :有些RPA工具支持脚本打包导出EXE时自动分析依赖树,把缺失的DLL和Python库一起打进安装包。这比手动配置省心得多,尤其适合不会折腾环境的业务人员。


四、无人值守与定时执行:让RPA自己上班

金融行业的批处理任务,比如每日对账、报表生成、数据清洗,通常安排在凌晨2-5点。这时候办公室没人,RPA必须能无人值守定时执行

Windows任务计划程序方案

最轻量,不用额外装软件:

  1. 写好BAT启动脚本,设置环境变量、切换工作目录

  2. 打开"任务计划程序",创建基本任务

  3. 触发器选"每天",时间设02:00

  4. 操作选"启动程序",指向你的BAT文件

  5. 关键:在"条件"页取消勾选"只有在计算机使用交流电源时才启动",防止笔记本休眠导致任务中断

  6. 在"设置"页勾选"如果任务失败,每隔10分钟重启"

更专业的方案:打包EXE自带定时引擎

有些工具在打包导出应用EXE时支持单独设置API触发、定时执行。这意味着你不需要依赖Windows任务计划,EXE内部就内嵌了Cron-like的调度器。

配置方式通常是在打包向导里勾选"启用定时执行",然后填CRON表达式:

plain

复制代码
0 2 * * *    # 每天凌晨2点
0 */6 * * *  # 每6小时一次
0 9 * * 1    # 每周一上午9点

这种方案的好处是跨平台一致------Windows、Linux、Mac打包出来的EXE/ELF行为一样,定时逻辑不依赖操作系统。


五、企业批量分发:从"手工拷贝"到"一键推送"

当RPA流程从5个变成50个,从3台机器变成300台机器,分发方式必须升级。

阶段一:U盘/共享文件夹(<10台)

最简单,也最痛苦。每次更新要全厂跑一圈,还容易版本错乱。

阶段二:内网FTP/Samba服务器(10-50台)

搭建内网文件服务器,脚本统一存放。执行端启动时自动拉取最新版本。

缺陷:没有版本控制,没有权限管理,谁都能覆盖上传。

阶段三:在线推送更新(50台以上)

这是目前最成熟的方案。打包导出EXE应用支持在线推送更新------管理端发布新版本后,所有执行端在下次启动时自动检测、下载、替换旧版本。

技术实现

  1. 内网部署一台更新服务器(可以用Nginx静态资源服务,极简)

  2. 每个EXE内置version.json,记录当前版本号和更新源地址

  3. 启动时先请求http://内网IP/updates/latest.json,比对版本

  4. 如果有新版本,后台下载差分包(不是全量包,节省带宽),替换后重启

权限控制 :更新包可以支持授权校验,只有持有有效授权文件的机器才能获取更新。防止离职员工把更新包带出去。


六、流程加密打包:防止脚本被"扒光"

RPA流程里往往硬编码了数据库密码、API密钥、内部系统账号。如果EXE能被反编译,这些凭证就全暴露了。

加密层级设计

表格

层级 保护对象 技术手段
L1 Python源码 PyInstaller的--key=SECRET参数AES加密
L2 配置文件 敏感字段用AES-256加密,密钥存在系统环境变量
L3 执行逻辑 核心算法用Cython编译成.pyd,Python层只留接口
L4 整体应用 应用支持加密分享,分享时设置密码和有效期

实战建议

  • 不要把密钥写在代码里,用os.environ.get('RPA_SECRET_KEY')从环境变量读取

  • 数据库连接字符串用加密的INI文件存储,运行时解密

  • 对于超高敏感流程,把核心逻辑拆成独立的加密模块,只有授权机器才能加载


七、离线RPA的AI能力:大模型不用联网也能跑?

很多人以为AI功能必须连OpenAI、必须走公网。其实在私有化部署场景下,AI能力完全可以本地化。

方案一:本地部署开源大模型

用Ollama或LM Studio在内网机器上跑DeepSeek、Qwen、Llama等开源模型。

硬件要求

  • 7B参数模型:16G内存 + 6G显存(GTX 1060级别)

  • 14B参数模型:32G内存 + 12G显存(RTX 3060级别)

RPA对接方式 :本地启动OpenAI-compatible API服务(Ollama默认端口11434),RPA流程里用HTTP请求调用http://localhost:11434/v1/chat/completions

方案二:接入企业已有的大模型平台

很多金融机构已经采购了文心一言、豆包、DeepSeek、Kimi的私有化部署版本或API服务。RPA流程直接对接企业内部的API网关,费用透明:走企业统一结算,不用个人垫付。

方案三:OCR与图片识图本地化

敏感单据(发票、合同、身份证)不能上传云端OCR。解决方案:

  • 本地部署PaddleOCR或Tesseract,识别率够用

  • 需要更高精度时,用本地大模型的多模态能力(如Qwen-VL、InternVL)


八、指纹浏览器自动化:多账号管理的刚需

金融行业的运营人员经常要管理几十个证券账号、电商店铺账号。平台的风控系统会检测浏览器指纹(Canvas、WebGL、字体、时区、User-Agent),相同指纹登录多个账号直接封号。

解决方案:RPA流程对接指纹浏览器,每个账号跑在独立的浏览器环境里。

目前市面上主流的指纹浏览器(紫鸟、比特、Hubstudio、AdsPower等)都提供了自动化接口。RPA通过本地API控制指纹浏览器:

  1. 创建浏览器环境(设置独立的指纹参数)

  2. 启动带指定环境的浏览器实例

  3. 在实例上执行登录、操作、数据采集

  4. 关闭实例,指纹痕迹自动清理

这种方案下,所有操作都在本地完成,浏览器指纹数据不会上传到任何第三方平台,符合数据不出域的要求。


九、Agent功能:让RPA听懂人话

传统的RPA是"按剧本演戏"------你写好每一步,它严格执行。但业务场景经常变化,比如"把昨天新增的异常订单处理掉",这个需求没法写成固定流程。

Agent功能解决了这个问题。它基于大模型的推理能力,把自然语言指令拆解成可执行的动作链:

用户说:"查一下昨天系统里标记为异常的订单,把客户信息和异常原因整理成表格发我"

Agent的推理过程

  1. 理解"昨天" = 当前日期-1天

  2. 理解"异常订单" = 状态字段='异常'

  3. 规划动作:登录ERP → 打开订单管理 → 筛选日期和状态 → 提取客户名、手机号、异常原因 → 生成Excel

  4. 执行并反馈结果

落地场景:在钉钉、飞书、企微、个人微信里发送指令,RPA Agent接收后自动执行,完成后把结果截图和文件推回聊天窗口。全程不需要打开RPA设计器。

技术实现:Webhook接收消息 → 大模型解析意图 → 调用本地RPA引擎 → 回调通知执行结果。


十、等保合规 checklist:离线RPA的审计要点

最后给安全合规的同学一份自查清单,对照着做,等保测评不慌:

等保要求 离线RPA对应措施
身份鉴别 本地账号体系,支持双因素认证
访问控制 流程级权限隔离,不同角色看到不同流程
安全审计 操作日志本地存储,保留6个月以上,支持导出
数据完整性 流程脚本哈希校验,防止篡改
数据保密性 敏感配置AES加密,密钥本地管理
数据备份恢复 流程工程文件定期备份到内网NAS
剩余信息保护 流程执行临时文件自动清理
个人信息保护 数据采集最小化原则,脱敏后存储

关于成本:如果是小团队试水,先用免费版把流程跑通。等真上了生产环境、需要团队协作和权限管控的时候,再考虑升级。免费版在功能上没有阉割核心能力,区别主要在协作人数和高级加密策略上。

内网离线RPA不是"功能阉割版",而是为敏感场景量身定制的完整解决方案。从单机离线到局域网集群,从手动分发到在线推送更新,从固定流程到智能Agent------这套技术栈已经能覆盖金融、政务、国企的绝大多数自动化需求。

最后说几个踩坑点,供选型时参考:

  1. "离线"有真假:有些产品号称离线,但安装时要联网激活、或者流程调试时偷偷连云端获取元素库。断网装一遍,真假立现。

  2. 打包稳定性:让厂商现场演示把一个带Pandas+OpenCV+Selenium的流程打包成EXE,在你的内网机器上跑通。跑不通的,后面全是坑。

  3. AI本地化:问清楚大模型对接是走公网API还是支持本地部署。如果是公网API,数据还是会出域。

  4. 更新机制:内网环境下,更新包怎么进来?是U盘拷还是内网服务器推送?后者省事得多。

数据安全没有灰色地带。当你的RPA流程跑在内网、数据锁在本地、权限握在自己手里------那份踏实感,是任何云端SaaS都给不了的。