macOS 原生 · 带 MCP 服务端的本地域名代理
本地 HTTPS 开发域名,
AI Agent 直接配置
Lixeam 在本机托管 dnsmasq、Nginx 和一套本地证书,并把它们通过 MCP 开放出来。对 Claude 或 Cursor 说一句「把 dev server 代理成 app.test」,规则就写入、校验、重载完成,浏览器拿到的是一个被信任的域名,而不是 localhost:5173。
请求内容、私钥和证书不会离开本机。应用只在 License 激活和之后的周期校验时访问收款平台,离线有宽限期。
你
把 dev server 代理成 app.test
tool Lixeam · proxy_adddomain "app.test"target "127.0.0.1", 5173https trueresult ✓ 已生效,nginx 已重载给 AI 用
五个 MCP 工具,管规则的增删启停
应用内置 MCP 服务端:一个是回环地址上的常驻 HTTP 端点,用 token 鉴权;另一个是 Agent 可以直接拉起的 stdio 二进制。两者暴露同一套工具。
proxy_add添加域名 → host:portproxy_list列出规则与上游端口状态proxy_enable启用proxy_disable禁用proxy_remove删除每次改动都先通过 nginx -t 校验才重载,校验不过就回滚。Agent 写坏一条规则不会让代理不可用。
工具调用返回时域名已经生效,中间没有需要你操作的界面。
功能
浏览器认可的本地域名,不用改 hosts
localhost:5173 平时够用,直到问题涉及 Cookie:OAuth 回调地址、Secure 与 SameSite、共享父域、Service Worker 的作用域。这些都需要一个真正的域名。
证书由本机根 CA 签发
用 mkcert 生成本机根证书和 *.test 通配符证书,连接确实是 HTTPS。Secure Cookie、SameSite、Service Worker 的表现和线上域名一致。
只接管 .test 一个后缀
/etc/resolver/test 把这一类查询交给本机 dnsmasq。加一个站点就是加一条规则,hosts 文件里原有的内容不受影响。
80 / 443,只授权一次
特权助手让 nginx 绑定标准端口。不装助手就改用 8080 / 8443,功能一致,只是 URL 里带端口号。
WebSocket 直接透传
热更新、日志推流这类长连接场景不需要额外配置,Upgrade 头原样转发。
列表里直接显示端口状态
每条站点都显示目标端口是否可连。连接超时设为 3 秒,上游没起来就很快返回 502,不会让页面一直转圈。
只转发,不改写
按域名精确匹配回源,不做重写、压缩,也不额外加头。框架收到的就是浏览器发出的那个请求。
原理
从域名到本地服务
解析
浏览器查 app.test,macOS 按 /etc/resolver/test 把这类查询交给本机 dnsmasq,直接回 127.0.0.1。其余域名的解析路径不变。
命中
nginx 在 80 / 443 上按 server_name 命中你的规则,HTTPS 先用本机证书完成握手,再把请求转给规则里写的那个 host 与端口。
回源
默认回 127.0.0.1(写 localhost 会被双栈解析随机挑一栈,撞上单栈服务就 502)。只监听 IPv6 的服务显式填 ::1,也可以填局域网里另一台机器的地址。
- app.test127.0.0.1:5173运行中
- api.test127.0.0.1:8080运行中
- web.test127.0.0.1:3100未启动
浏览器 https://app.test │ 查 .test → /etc/resolver/test ▼ dnsmasq 127.0.0.1 │ ▼ nginx :80 / :443 ── 本机 mkcert 证书终结 TLS │ server_name app.test → proxy_pass ▼ 你的服务 127.0.0.1:5173
同类方案对比
和这些常见做法的差别
这些是大家常用的绕法。它们都没有给 Agent 的接口,也没有一个界面能如实告诉你某个端口此刻通不通。
表格可以左右滑动
| 对比维度 | Lixeam | Laravel Valet | 改 hosts | lvh.me / sslip.io |
|---|---|---|---|---|
| 上手 | 一个安装包 | CLI + Homebrew 一套 | 手工,每站一条 | 无需安装 |
| 受信任的 HTTPS | 自动 | valet secure,偏 PHP | 自己搭 | 没有 |
| 能被 AI Agent 驱动 | MCP,五个工具 | Agent 得去敲终端 | 人工改系统文件 | 无从下手 |
| 上游端口状态 | 界面上绿点 / 灰点 | valet status 逐站查 | 逐个 curl | 逐个 curl |
| 技术栈中立 | 任意端口 | PHP / Laravel 优先 | 是 | 是 |
| 平台 | macOS | macOS / Linux | 全平台 | 全平台 |
Valet 是给你的终端用的,Lixeam 是给你的 AI 用的。
价格
一次性买断,或按月订阅
个人授权覆盖 2 台 Mac,买断包含后续大版本更新。不需要注册账号:激活时向收款平台校验一次 License Key。
免费试用
14 天全功能试用,不需要绑卡;用学校邮箱验证的学生免费。
开源版与付费版
核心代码留在 GitHub,愿意自己装配 dnsmasq、Nginx 和 mkcert 的一直可以免费用。付费版是签名公证后的成品,里面包含引导安装、GUI、自动证书、端口监控、MCP 端点、自动更新与技术支持。
快速开始
一次安装,一次管理员密码
第 1 步
安装并走完引导
把 Lixeam 放进「应用程序」并启动。引导会装特权助手、信任本机根证书、写好 /etc/resolver/test,中途需要输一次管理员密码。
第 2 步
给本地服务起个域名
在「新增站点」里填域名和这个服务实际监听的端口;也可以直接把需求说给 Agent,让它调 proxy_add。
第 3 步
直接打开
规则写入 nginx 配置,校验通过后重载。通常切回浏览器的时候它已经生效了。
需要 macOS 11 及以上。目前只有桌面端,签名公证完成后下载入口会出现在这里。
首发资格
加入首发通知名单
两封邮件:签名包可以下载时一封,早鸟窗口关闭前一封。
常见问题
安装前的几个问题
为什么用 .test,而不是 .local 或直接改 hosts?+
.test 是 ICANN 保留的测试专用后缀,不会出现在公网 DNS 里,拿它做本地域名不会哪天撞上真站点。.local 留给 Bonjour/mDNS,用它常被系统自身的多播解析抢走。改 hosts 也能做,但每加一个站点都要动一次系统文件,子域名还得一条条写。
为什么要装一个特权助手?+
只有 root 能绑定 1024 以下端口,而 80 / 443 正是地址栏干净的关键。助手是一个很小的 LaunchDaemon,通过本机的 Unix 套接字与应用通信,不开放任何网络端口,安装时授权一次。不想装就把代理端口改成 8080 / 8443,功能一致,只是访问时带端口号。
激活要联网吗?离线能用吗?+
需要,但只是偶尔。License Key 在激活时与之后的周期性校验中向收款平台验证,本地留有宽限期,断网的机器不会突然不可用。请求内容、证书与私钥不会离开本机,也不接任何统计服务。
都开源了,为什么还要付费?+
免费那条路默认你愿意自己安装并长期维护 nginx、dnsmasq、mkcert,server 块也自己写。付费版是公证好的成品:这些配置全部自动,另外加上 GUI、端口监控、MCP 端点、自动更新和支持。
一份授权几台机器?后续更新收费吗?+
个人授权绑 2 台 Mac,团队版 12 台。买断包含后续所有大版本更新。换机时去许可证管理页(/license)远程解绑旧机器即可,旧 Mac 坏了丢了也能处理,不用写信给支持。
本机的证书和私钥放在哪?安全吗?+
用 mkcert 生成,根证书与 *.test 通配符证书都落在 ~/.lixeam/certs/(CAROOT 指向这里),根证书装进你当前用户的登录钥匙串。私钥只在这台机器上,不上传、也不参与任何同步。
会不会影响公司网络或其他网站访问?+
只接管 .test 这一个后缀,其它域名的解析路径不变。nginx 只监听回环地址上的 80 / 443,不会把端口开到局域网或公网。
有 Windows 或 Linux 版本吗?+
暂时没有。这套实现依赖 macOS 的三个东西:LaunchDaemon 提供特权、/etc/resolver 做后缀级 DNS、登录钥匙串信任证书。换平台要重做的就是这三块。