为什么云开发者需要重新审视内网穿透
在云原生开发模式下,我们的工作流正在发生变化:代码在云 IDE 或远程开发环境中编写、服务跑在容器或 ECS 上、前后端联调需要把本地或内网服务临时暴露给公网。但暴露一个服务这件事,至今仍停留在"登录控制台 → 下载客户端 → 复制 Token → 敲隧道命令"的手工时代。
随着 MCP(Model Context Protocol)成为 AI Agent 调用外部工具的标准协议,Cursor、Claude Desktop、通义灵码等带 Agent 能力的开发助手已经可以把这类重复操作自动编排。ZeroNews 官方 MCP 连接器(zeronews-mcp-connector)就是把内网穿透整条链路封装成一组 MCP Tool,让开发者用自然语言即可完成客户端安装、认证、服务发现与隧道创建。
本文基于实战,完整记录从接入配置到 HTTPS / TCP / LFS 三类隧道创建的全过程。
连接器的工作模型
ZeroNews MCP 连接器以 MCP Server 形式运行,宿主通过 stdio 启动它。当开发者在对话中给出意图(例如"把本机 3000 端口的 Web 服务暴露出来"),Agent 会按状态机逐步调用工具,任意前置条件不满足即中断追问,不会盲目建隧道:
- 客户端自检:检测本机是否安装 zeronews;缺失则按 OS 自动下载,已安装未运行则拉起服务。
- Token 认证:新客户端引导用户粘贴控制台 Token,执行 zeronews authtoken。
- 服务发现:枚举本机监听端口,形成候选列表供选择。
- 隧道编排:按 HTTPS / TCP / LFS 类型创建隧道,返回隧道 ID、本地目标、公网地址与端点状态。
接入配置
方式一:npx(推荐)
在 mcp.json 中追加:
{ "mcpServers": { "zeronews": { "command": "npx", "args": ["-y", "zeronews-mcp-connector"] } } }
建议将 @latest 替换为固定版本号,避免自动升级引入非预期行为。
方式二:npm 全局安装
npm install -g zeronews-mcp-connector
配置改为直接调用二进制:
{ "mcpServers": { "zeronews": { "command": "zeronews-mcp-connector", "args": [] } } }
接入验证
- MCP 列表中 zeronews 状态为已连接;
- 对话中执行"列出本机监听端口"或"把本机 3000 映射到公网";
- 完整走通:客户端检测 → Token 绑定 → 端口选择 → 获得公网 URL。
三个云开发场景实战
场景一:本地联调服务快速对外暴露
帮我通过 ZeroNews MCP 映射本机 WEB 服务
场景二:内网 ECS / 跳板机 SSH 远程接入
帮我把内网本机 172.16.10.6 的 SSH 22 端口通过 ZeroNews MCP 映射出来
场景三:LFS 文件空间共享
帮我把本机 /path/to/docs 目录映射成 LFS 文件空间
小结
ZeroNews MCP 连接器把内网穿透从"命令行记忆 + 控制台手工操作"重构为一条可被 AI Agent 编排的工具链。对云原生开发者而言,这意味着:本地联调、临时 SSH 接入、文件空间共享等高频但零碎的动作,可以自然语言的方式嵌入开发对话流,不再打断编码心流。更进一步,这类 MCP 工具链未来可与 CI/CD、云 IDE、内部 Agent 工作流串联,实现"提交代码后自动暴露测试环境并通知协作者"的自动化研发链路。