QoderWake需启用内网穿透模式并配置Tunnel Agent与资源别名,数字员工通过环境变量或SDK调用tunnel_id地址访问内网服务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

公司外的数字员工需要实时调用内网数据库、Confluence知识库或本地部署的ERP接口,但这些服务监听在127.0.0.1:3306、192.168.10.5:8090等内网地址,无法被公网直接访问——此时必须通过内网穿透技术建立稳定、可鉴权、低延迟的双向通信链路,让QoderWake数字员工像在局域网内部一样发起请求。
确认QoderWake是否启用内网穿透模式
QoderWake v26.4.0起原生支持内网穿透通道,但默认关闭。该功能与Harness-First架构深度耦合,仅当Session账本存储指向企业内网PostgreSQL且Critic-Refiner机制启用时才激活穿透能力。
执行qodercli system status --verbose,检查输出中是否包含tunnel_mode: enabled与tunnel_endpoint: wss://tunnel.qoder.ai/v26两行。若显示disabled,需先编辑/opt/qoder/core/config/harness.yaml,将tunnel_enabled设为true,再运行./restart-harness.sh重载框架。
这一步不可跳过。未启用穿透模式的QoderWake会直接拒绝所有来自tunnel.qoder.ai域名的WebSocket握手请求,返回403错误。
配置穿透隧道客户端(Tunnel Agent)
内网穿透依赖独立运行的Tunnel Agent进程,它驻留在内网服务器上,主动连接QoderWake云中控节点,反向建立加密信道。Agent不暴露任何端口,规避防火墙拦截风险。
方法一:使用官方CLI一键部署
在内网服务器执行:qodercli tunnel install --region cn-shanghai --license-file /opt/qoder/license.lic。该命令自动下载qoder-tunnel-agent-v26.4.0-linux-amd64二进制,写入/usr/local/bin/,并注册systemd服务qoder-tunnel.service。
方法二:手动部署(适用于无root权限环境)
从https://tunnel.qoder.ai/download/qoder-tunnel-agent-v26.4.0-linux-amd64下载二进制,赋予执行权限chmod +x qoder-tunnel-agent,然后运行:./qoder-tunnel-agent --license /home/user/qoder/license.lic --endpoint wss://tunnel.qoder.ai/v26 --bind 127.0.0.1:3306,192.168.10.5:8090。注意--bind参数必须显式列出所有需穿透的IP:PORT对,不能写成0.0.0.0:*。
【License文件必须与QoderWake主实例完全一致,否则Agent注册失败且无明确报错】
在QoderWake中声明穿透资源别名
数字员工无法直接使用原始内网地址,必须通过逻辑别名调用。这是权限沙盒强制要求:所有穿透资源必须经由QoderWake路由层统一鉴权与审计。
第一步:登录QoderWake企业控制台 → 进入【集成中心】→ 【内网穿透管理】
第二步:点击【新增穿透资源】,填写以下字段:
• 别名:erp-db-primary(仅限小写字母、数字、短横线,长度≤32)
QoderWake Linux版是阿里推出的生产级数字员工系统,支持Linux环境部署。它作为7×24小时在线的AI员工,具备长期记忆与专业技能(如编程、运维),可自主响应代码审查、告警处理等事件。其核心采用“员工与工位分离”架构,并设置了严格的权限红线,确保持续进化的同时实现安全可控。
• 协议:mysql(支持mysql/postgres/http/https)
• 目标地址:127.0.0.1:3306(必须与Tunnel Agent中--bind值严格一致)
第三步:勾选「启用连接池」并设置最大连接数为50,点击【保存】
保存后系统生成唯一tunnel_id,形如tun-7a2f9c1e。该ID将出现在数字员工技能配置的连接字符串中。
数字员工调用穿透资源的正确写法
在数字员工的技能脚本(如Python技能)中,禁止硬编码127.0.0.1:3306或192.168.10.5:8090。必须使用QoderWake注入的环境变量或SDK封装调用。
方法一:通过环境变量注入(推荐用于SQL类连接)
在技能配置的env区块添加:DB_URL: "mysql://user:pass@${TUNNEL_erp_db_primary}/app"。QoderWake运行时自动将${TUNNEL_erp_db_primary}替换为实际穿透地址,格式为tun-7a2f9c1e.tunnel.qoder.ai:443。
方法二:调用Qoder SDK(推荐用于HTTP请求)
在Python技能中引入:from qoder.tunnel import TunnelClient,然后执行:client = TunnelClient("confluence-kb") → resp = client.get("/rest/api/space")。SDK自动处理TLS握手、JWT令牌续期与断线重连。
这一步操作起来很简单,直接把环境变量名写对就行。但若写成${TUNNEL_ERP_DB_PRIMARY}(下划线误作大写),QoderWake将无法解析,连接时抛出Connection refused而非DNS错误,排查成本极高。
验证穿透链路是否生效
① 在QoderWake控制台【内网穿透管理】页面,找到刚创建的erp-db-primary资源,状态栏应显示Connected (2m17s),括号内为持续在线时长。
② 在数字员工技能中插入调试语句:qodercli tunnel ping --alias erp-db-primary,终端输出✅ Latency: 42ms | TLS: active | Auth: valid即表示端到端通路正常。
③ 执行一次真实查询:qodercli tunnel exec --alias erp-db-primary --query "SELECT VERSION()",返回MySQL版本字符串即完成验证。

















