与黎 · 工坊 返回控制台

用你自己的服务器和域名搭固定地址隧道

上一篇教程用 Cloudflare 的快速隧道,地址每次重启都会变。如果你自己有一台服务器和一个域名,可以搭一条固定地址的隧道:https://你的域名/mcp/口令,换电脑、重启都不用重新填。搭好后,ChatGPT 里的设置和上一篇完全一样,只是地址换成你自己的域名。

先把原理说清楚:

开始之前要准备的

  1. 一台 Linux 服务器,系统是 Debian 或 Ubuntu,你能用 root 登录,或者用有免密 sudo 的账号登录,并且是用 ssh 密钥登录(不是密码)。云服务商控制台里通常能创建或下载密钥。
  2. 一个域名,把一个子域名(比如 mcp.example.com)的 A 记录指向服务器的公网 IP。如果用了 Cloudflare,把这条记录设为“仅 DNS”(灰色云)。
  3. 服务器的 80 和 443 端口空闲,并且在云服务商的安全组和系统防火墙里放行。服务器上如果已经有网站占着这两个端口,请先停下来,用别的子域名和别的办法。
  4. 你的电脑上已经能跑上一篇教程的本地文件服务(安装好 Python 3.11 或更新版本,工具包能运行)。Windows 10/11 还需要“OpenSSH 客户端”,在“设置 → 应用 → 可选功能”里添加。

方式一:让 Livis 帮你完成

Livis 是与黎自己的 AI 助手桌面应用,里面已经内置了这个功能。

  1. 打开 Livis 的“工具箱”,进入“组件库”,安装“本地文件 MCP”和“域名隧道套件”。每个组件安装前都会验证签名和校验码。
  2. 进入“域名隧道”,填域名、服务器地址、登录用户,选择要共享的文件夹。登录密钥用你 ssh-agent 里已有的,或者填密钥文件的路径。
  3. 点“生成提示词和脚本”,先通读一遍服务器脚本,勾选确认,再点“让 Livis 帮我搭建”。Livis 会先只读检查服务器,再搭建,最后保存配置。
  4. 点“启动本地服务和隧道”,等状态显示本机检查和公网检查都是 ok,点“显示 ChatGPT 地址”,复制到 ChatGPT 的应用设置里。

Livis 不会收集也不会保存你的服务器密码;只用你已有的 ssh 密钥登录。

方式二:用网页填信息,交给你自己的 AI

如果你习惯用 Claude Code、Codex 之类能操作服务器的 AI,用这个办法。

  1. 在电脑上,进入工具包解压目录,运行下面这行,会打印一行以 ssh-ed25519 开头的公钥。私钥留在你电脑里,不会离开:
python tunnel_client.py init
  1. 打开域名隧道填表页,把公钥、域名、服务器地址填进去。这个页面不联网,也不保存你填的任何内容。
  2. 在“交给我的 AI 助手”里点“复制提示词”,整段发给你的 AI。提示词里写清了目标、必须遵守的约束、一份参考脚本和逐条验收标准,AI 做完会把真实输出贴给你核对。
  3. AI 做完后,在你电脑上依次运行页面“电脑端命令”里的三行,最后一行会一直运行并在掉线时自动重连。

方式三:自己动手

  1. 同样先在电脑上运行 python tunnel_client.py init 拿到公钥,再在填表页里选“服务器脚本”,下载 setup.sh。
  2. 把它传到服务器,先只检查、不改动:
sudo bash setup.sh --check
  1. 通读脚本,确认没问题,再运行:
sudo bash setup.sh
  1. 回到电脑,运行填表页里“电脑端命令”的三行。

搭好以后怎么验证

  1. 电脑端隧道客户端和本地文件服务都在运行。
  2. 浏览器打开 https://你的域名/health,应该看到 {"ok":true}。第一次申请证书可能要几十秒。
  3. 打开 https://你的域名/随便什么,应该是 404。
  4. 在 ChatGPT 里点左侧“插件”,右上角“添加 → 创建自定义 MCP 服务器”,服务器 URL 填 https://你的域名/mcp/你的口令,身份验证选“无需身份验证”,勾选风险确认后创建。详细步骤见上一篇教程的第五步和第六步。

它在服务器上做了什么,安全吗

脚本只做四件事:安装或复用 Caddy;新建一个隧道专用用户;增加一个站点配置文件;需要时放行 80 和 443。具体的安全设计是:

常见问题

证书申请失败,浏览器提示不安全
最常见的原因有三个:域名的 A 记录还没生效或没指向这台服务器;80 或 443 被云服务商安全组挡住了;域名用了 Cloudflare 的橙色云代理。逐项检查,修好后过一两分钟再试,Caddy 会自动重试。
打开 health 页面显示 502
说明服务器这一侧好了,但电脑端的隧道没连上。看电脑端隧道窗口的提示:公钥没填对、SSH 端口不对、服务器禁用了端口转发,都会这样。重新核对填表页里的公钥和服务器地址。
连接一会儿就断
隧道客户端会自动重连,每次断开后等几秒再试。如果频繁断开,多半是网络本身不稳,换个网络环境试试。
服务器不是 Debian 或 Ubuntu
参考脚本目前只支持这两类系统。其他系统请用方式二,让你的 AI 助手按同样的结构适配,约束和验收标准都写在提示词里,不会变。
想让几台电脑都用同一台服务器
每台电脑用不同的子域名和不同的服务器内部端口,各生成一份脚本。不要让两台电脑共用同一个内部端口。
用完想彻底停掉
关掉电脑上的隧道客户端和本地文件服务窗口,ChatGPT 立刻读不到你的文件。想连服务器上的配置也清掉,运行上面的撤销命令。
服务器上已经有 Nginx 或别的网站
脚本会检测到 80 或 443 被占用并提醒,不会自动处理。这种情况请用方式二,把现状告诉你的 AI,让它在现有网站旁边加一个子域名的反向代理,约束照旧。