ARTICLE · 1306493
随时随地调用家里的 AI 网关:Tailscale + Magpie
上一篇写了怎么在自己本地的电脑上使用 Magpie 来部署一个 AI 网关,看到有一些同学想要了解把电脑带出门之后要怎么连接自己的 AI 网关的问题。
我当时回复得很短:
部署了网关的电脑需要和客户机网络能通才行。
这句话当然可以作为结论,但是不能当作操作手册。AI 网关装在家里一台常开的电脑上,不管使用者在哪里都想要能够访问到,那么就要求使用者的设备必须能够和我们部署的那台电脑能够通信才行。
其实有很多方法能够做到,最简单的方式就是把 magpie 部署到自己一台具有公网 IP 的服务器上就好,但是考虑到大家可能没有服务器的使用经验,所以我最近也尝试了一些新的方案,比如这篇文章接下来要介绍的使用 Tailscale 来把使用者的机器和 AI 网关的机器组成局域网的方式。
什么是 Tailscale
大家应该不喜欢看专业的名词,这里我就直接用自己的理解:Tailscale 就是一个虚拟组网工具,只要在你的设备上安装登录账号之后,就能把设备拉到同一个局域网当中,而且它使用非常简单,基本上不需要配置。
官网地址:https://tailscale.com/

网络拓扑结构
在正式搭建之前,我们需要先了解一下客户端和 magpie 所在的服务端的网络拓扑结构,如下所示:
• Mac mini(家里):常开,跑 Magpie 作为 AI 网关;公司侧可用屏幕共享过来操作 • MacBook Pro(随身/公司):日常客户机;在公司通过屏幕共享控制家里的 Mac mini 或者直接使用 Agent 调用 Magpie HTTP API • 云服务器:部分开发环境;同样进 tailnet,SSH / 端口只对私网开
整个网络结构最终的目的只有一条,就是能够使我们的客户机和家里的 Mac mini 或者云服务组成一个局域网,能够相互通信,即:能够在任意有网的地方调用搭建在 Mac mini 上的 magpie AI 网关。
为什么是 Tailscale(而不是裸暴露 / 重 VPN)
在使用 Tailscale 这个软件之前,因为我有自己的公网云服务器,我之前还尝试过使用 FRP 来将自己的服务使用公网服务暴露出来,但是这种操作对于需要部署大量服务或者对带宽占用较高的服务来说还是非常昂贵的,并且一旦公网服务被攻破,那么关联的所有服务器都暴露在风险之下。
而使用传统的整网 VPN 的方式,对于个人用户来说是在杀鸡用牛刀,因为个人的几台设备而付出巨大的运维压力是根本没有必要的。
所以最终选择使用 Tailscale 这种虚拟局域网的方式:只要每一台设备安装了客户端,登陆同一个账号,就能够把多台设备拉入到一个局域网当中,并且操作起来非常简单,对于个人用户来说运维压力非常小。
总的来说,对于个人用户来说,使用 Tailscale 这个软件来把自己的放在不同地方的设备组建起来一个能够相互通信的局域网是非常值得推荐的。
最小复现:三台进同一 tailnet
这一节我将手把手带大家把我自己的三台设备接入到 Tailscale 当中去,这里先表明一下分别是哪三台设备:
1. 开发使用的 Macbook Pro:日常用的开发机 2. 放在家里的 Mac mini:部署了 Magpie AI 网关 3. 云服务:部署了一些自己的小服务的公网服务器
1. 安装客户端
1. 打开 tailscale.com,按引导创建 tailnet(直接使用自己的邮箱注册成 Personal 套餐即可, Personal 计划支持的设备也没有上限,个人使用完全足够)。

2. macOS:推荐使用 brew 一键安装带 GUI 版本的客户端,也可以从官网上下载 Macos 的客户端, brew 的安装命令如下。
1 brew install --cask tailscale-app
安装完成之后就能够在app 里面看到 Tailscale 的客户端,直接启动,使用自己刚刚在官网注册的账号进行登陆。

3. Linux 云机(官方安装脚本,以 Install on Linux 为准):
1 2 curl -fsSL https://tailscale.com/install.sh | shsudo tailscale up
执行上面的命令会在控制台输出如下图所示的登陆链接,你复制出来,使用你本机的浏览器打开,使用上面注册过的账号登陆授权即可。

在三台设备上都执行上面的操作,使用 GUI 版本的 Tailscale 操作起来更加简单。
都出现在 Admin Console → Machines 即可。
如下图所示,我把自己的两台电脑、一台云服务器以及两台手机,以及最近使用的 grok bot 都注册到了自己的 Tailscale 当中了,给他们分配地址之后就可以相互通信了。

官网也有更多的详细教程文档,不会操作也可以直接让 AI 帮你配置好。
官网教程地址:https://tailscale.com/docs/how-to/quickstart
2. 确认身份与地址
在每一台执行:
1 2 tailscale statustailscale ip -4
能够看到如下图所示的输出结果,这里我直接在自己的云服务器上执行:

3. 测连通:IP 与 MagicDNS
在把设置都注册好之后,可以使用下面的命令来测试一下设备之间的连通性。
MagicDNS 对较新的 tailnet 默认开启。机器名以 Machines 页为准(可改名)。
1 2 3 4 5 # 用 Tailscale 自己的探测(不依赖系统 DNS)tailscale ping mac-mini# MagicDNS 可用时(名字换成你的)ping mac-mini
在我的开发机上测试结果如下图所示。

如果你也得到上面的这个结果,那么说明已经成功的把设备通过 tailscale 成功的组建出了一个虚拟局域网。
把 Magpie 暴露给远程客户机
最后一步就是把 Magpie 暴露给远程客户机来使用了。
如下图所示,切换到网关选项卡,然后切换到局域网开放,点击添加网关密钥就可以创建出来一个供客户机使用的 API 密钥,后面调用的时候直接使用这个 API 密钥即可。

打开局域网之后就相当于对外开放了端口,然后我来创建一个 Python 工程自己写代码调用一下模型。
1 2 3 uv init magpie_ai_gatewaycd magpie_ai_gatewayuv add openai
代码如下,代码里的 http://mac-mini:3425/v1 替换成你自己部署了 magpie 的机器的 tailscale 分别的 ip 地址,我自己填自己部署在家里的 Mac mini 在虚拟局域网的 IP 地址,api_key 就是从 magpie 当中复制出来:
1 2 3 4 5 6 7 8 9 from openai import OpenAIdef main() -> None: client = OpenAI(base_url="http://mac-mini:3425/v1", api_key="[复制出来的api_key]") r = client.chat.completions.create( model="workbuddy/deepseek-v4.1-flash", messages=[{"role": "user", "content": "你是什么模型"}], ) print(r.choices[0].message.content)
运行就能看到如下的结果。

远程到 Mac mini 上打开 Magpie 的会话详细,可以看到从我的开发机上调用的模型能够在 Mac mini 上看到会话记录。

到这里,异地调用家里的 magpie AI 网关就通了:客户机和 Mac mini 在同一个 Tailscale 局域网里,带上网关密钥请求 http://<你的机器名>:3425/v1 就行。
当然,因为 magpie 支持多个 AI 响应的协议,那当然就可以把这个地址设置到 Codex、Claude Code、Deepseek Harness 等等 Agent 当中去直接使用,完全不用自己写代码。
加上还能使用 Tailscale 把自己的手机也拉到局域网当中,有非常多有趣的玩法。
如果你遇到问题欢迎在评论区交流学习,也欢迎大家随时私信我。















































































