很多后端、运维、AI 开发都碰到过这个难题:业务服务器、数据库锁在内网,不能暴露公网 IP,外出想用 Cursor 远程查服务器、查订单库根本做不到。传统工具要么配置复杂,要么有爆破泄露风险,Cursor 只能操作本地文件,排问题还要反复登跳板机,效率很低。
MCP 协议正好解决这类问题,配合 ZeroNews 加密隧道,无需暴露内网服务,外网 Cursor 就可安全调用内网 Shell、MySQL。本期完整实操,带你把内网 AI 远程运维整套方案落地。
MCP 是什么?
MCP 全称 Model Context Protocol(模型上下文协议),它是一套开放标准,规定:大模型所在的软件(比如 Cursor)怎样和外面的【工具程序】说话——包括能用哪些工具、怎么传参数、怎么拿回结果。
可以把它想成 AI 界的【USB 协议】:
●以前每个工具都要单独写一套对接方式,换一个 AI 软件或换一个工具就要重来。
●有了 MCP,大家都按同一套规矩接:一边是 AI 应用,一边是工具服务,插上就能用。
它解决什么问题
没有 MCP 时,聊天里的 AI 多半只能:
●看你已经打开、贴进对话里的内容
●根据训练知识【猜】答案
有了 MCP,你可以把这些能力做成一个个工具交给 AI。你在对话里说【帮我看看共享目录里有啥】【查一下这张工单】,AI 就会按协议去调用对应工具,再把真实结果拿回来继续回答——而不是编造。
MCP 怎么用?
MCP 包含两个模块: MCP Client(客户端), MCP Server(服务端)
MCP Client(客户端),也就是跑大模型的宿主软件,比如 Cursor、Claude Desktop,负责在对话里决定【要不要用工具、用哪一个】。
MCP Server(服务端),真正干活:读文件、查库、调 API,并把【我能提供哪些工具】登记出来、执行调用。
你 ↔ 对话 ↔ Cursor(MCP Client) ↔ 按 MCP 协议 ↔ MCP Server(工具) ↔ 文件 / 数据库 / 内网 API
一个 MCP Server 可以声明一类或多类能力,例如:
●Tools(工具):可执行的动作,如【列出目录】【搜索文档】【创建工单】
●Resources(资源):可读取的上下文,如某份配置、某篇知识库文档
●Prompts(提示模板):一些预置的提问/工作流模板(视具体 Server 而定)
你在 Cursor 的 MCP 面板里看到某个 Server【已连接】,通常就表示:Client 已经问过 Server【你有哪些工具】,之后对话里才可能真正点名去用它们。
我们通常在内网测试服务器上部署 MCP Server,在开发/运维过程中,在企业内网通过 Cursor / codex 等工具连接 MCP Server,进行服务器运维,系统日志查询与数据库查询处理,在企业内网使用一切正常,
但是当我们离开公网网络覆盖范围时,由于网络不可达,导致 MCP Server 无法连接,要解决内网 MCP Server 连接访问问题,我们一般可以通过内网穿透或VPN的方式解决。
下面以 cursor 为列, 演示怎么通过 ZeroNews 连接内网服务器上的 MCP Server, 进行数据/shell 命令的运维。
先安装 ZeroNews Client
在运行 MCP Server 的 Linux 服务器上安装 ZeroNews 客户端
登陆 ZeroNews 控制台,在快速开始页面中,选择 Linux, 复制 Linux 的在线安装命令:
curl -SLk https://download.zeronews.cc/linux/zeronews-install.sh | sudo sh -s install v3bY3nT7Yaja
装完后终端里应有 zeronews 命令。
在以系统服务方式后天启动 ZeroNews 客户端
zeronews service start

在用户控制台中确认客户端是否已经在线。
接下来,我们安装 shell / mysql 的 MCP Server 能力包分别进行测试
安装 Shell MCP Server并测试
我们在 Ubuntu 服务器上安装 MCP Server 之前, 先安装 nodejs,再装各类 Server 能力包。
安装 Node.js / npx,并用 npx -y mcp-proxy(Node 版)把 stdio MCP 转成 HTTP(SSE)。
# 更新索引并安装必要工具
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# 添加 NodeSource 仓库(Node.js 20.x)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 安装 Node.js(会带上 npm;npx 一般随 npm 一起可用)
sudo apt-get install -y nodejs
# 验证
node -v # 应类似 v20.x.x
npm -v
npx -v
npx -y mcp-proxy --help
安装 Shell MCP Server 的能力包,并以 http 方式启动
mkusaka/mcp-shell-server 可用于在 mcp server 所在的服务器上执行各种shell命令,如 ps、df、curl ,可替代 ssh 方式执行命令
# 安装 Shell 能力包
npm install -g @mkusaka/mcp-shell-server
# shell 能力包的 http 服务端口,我们用 8001 启动
npx -y mcp-proxy --host 127.0.0.1 --port 8001 -- \
npx -y @mkusaka/mcp-shell-server

在 ZeroNews 控制台上添加 Shell MCP Server 隧道
先 MCP Server 添加一个固定域名
1.在 ZeroNews 控制台 → 自定义域名 → 添加域名。
2.输入子域前缀(如 mcp22shell),检测可用后提交。
添加 MCP Server 的 HTTPS 隧道
1.在 ZeroNews 控制台 → 隧道管理 → 添加隧道。
2.核心参数:
●协议:HTTPS
●内网 IP:127.0.0.1
●内网端口:8001
●绑定设备:安装MCP server 的客户端
●公网域名:选择前面添加好的域名 mcp22shell
●带宽:配置 2M
隧道添加完成后, 就可以通过域名地址 https://mcp22shell.hn.takin.cc/sse 连接 MCP Server 进行shell 命令查询。
在 Cursor 里用配置 MCP Server 的隧道域名地址即可
在 Cursor 的 Settings → Tools & MCP 中, 配置 MCP Server 的 HTTPS 隧道地址:
然后查看 mcp22shell 状态应为已连接 / 绿灯,表示 MCP Server 连接正常
{
"mcpServers": {
"mcp22shell": {
"url": "https://mcp22shell.hn.takin.cc/sse"
}
}
}



在 Cursor 中,通过 MCP Server 查询服务器
在 Agent 对话框中,说要在 mcp22shell 上执行,避免 AI 只在本地瞎编
查看磁盘/内存利用率,可以这样问
用 mcp22shell,在服务器上执行 df -h 和 free -h,用中文总结磁盘和内存是否紧张

查看进程 / 端口,可以这么问
用 shell MCP 查一下 8001 端口是谁在监听,以及 node 相关进程有哪些

●Shell 权限很大,提示里尽量写清命令,避免【帮我清理一下服务器】这类过宽请求
●破坏性操作(删文件、重启服务、改配置)先自己确认再允许执行
安装 Mysql MCP Server 的能力包,并以 http 方式启动
benborla29/mcp-server-mysql 能力包可用于在 mcp server 所在的服务器上执行各种 MySQL 查询
# 安装 MySQL 能力包
npm install -g @benborla29/mcp-server-mysql
# 配置 mysql 数据库连接的环境变量
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
export MYSQL_USER=readonly_user
export MYSQL_PASS='你的密码'
export MYSQL_DB=your_database
# 在 8002 端口上,启动 MySQL 能力包(当前 shell 里已 export 的变量会传给子进程)
npx -y mcp-proxy --host 127.0.0.1 --port 8002 -- \
npx -y @benborla29/mcp-server-mysql

在 ZeroNews 控制台上添加 MySQL MCP Server 隧道
先 MCP Server 添加一个固定域名
1.在 ZeroNews 控制台 → 自定义域名 → 添加域名。
2.输入子域前缀(如 mysql22),检测可用后提交。
添加 MySQL MCP Server 的 HTTPS 隧道
1.在 ZeroNews 控制台 → 隧道管理 → 添加隧道。
2.核心参数:
●协议:HTTPS
●内网 IP:127.0.0.1
●内网端口:8002
●绑定设备:安装MCP server 的客户端
●公网域名:选择前面添加好的域名 mysql22
●带宽:配置 2M
隧道添加完成后, 就可以通过域名地址 https://mysql22.hn.takin.cc/sse 连接 MCP Server 进行 MySQL 命令查询。
在 Cursor 里用配置 MCP Server 的隧道域名地址即可
在 Cursor 的 Settings → Tools & MCP 中, 配置 MCP Server 的 HTTPS 隧道地址:
{
"mcpServers": {
"mcp22shell": {
"url": "https://mcp22shell.hn.takin.cc/sse"
},
"mysql22": {
"url": "https://mysql22.hn.takin.cc/sse"
}
}
}


在 Cursor 中,通过 MCP Server 进行数据库查询
在 Agent 对话框中,说要在 mysql22 上执行数据库查询,
查看表数据,可以这样问
用 mysql22 MCP 列出 testdb 有哪些表,并查 orders 最近几条

MCP Server 连接的安全增强特性
MCP Server 通过 HTTPS 隧道映射到公网后,意味着所有人都能扫描进行连接, 无意中扩大了服务器的安全风险, 在这里我们可以给 MCP Server 添加IP访问白名单/路由白名单/BasicAuth,来限制用户的访问范围:
●Basic 认证:配置调用 MCP Server 域名时,需要先做账号认证,认证通过后,方可连接
将 用户账号转换成 base64 编码,添加到 cursor 的 mcp 的配置中



●IP 白名单: 配置只允许的IP地址可以连接到 MCP Server
●MySQL 隧道务必对应只读账号;不需要写库就不要开写权限
小结
MCP 放在内网,Cursor 在外面通过 ZeroNews 连进来用。
内网环境里,用 Cursor 调 Shell、查 MySQL、看日志都很顺手;一离开公司网络,这些服务就连不上了。通过 ZeroNews 将 MCP Server 映成 HTTPS 地址,Cursor 填域名即可继续调用。公网只开放 MCP 入口,数据库端口和整台机器都不必暴露。
远程排障、小组共用运维机、再配合内网大模型,都可以按同一套方式落地,简单又安全。