远程办公(终端 + VNC)
从您的 Mac 或 Windows PC 操控机器:终端做一切,需要时来个 VNC 图形桌面。挑对应用,配好它。
本文核对于 3 个月前,部分命令可能已有变化。 如有出入,请告诉我们。
要点速览
要从 Mac、Windows 电脑或手机操控迷你 PC,通过 Tailscale 的 SSH 终端几乎能搞定一切:您在里面运行智能体,并放在一个能扛住断网的 tmux 会话中。VNC 图形桌面用来应付少数需要看界面的场合,前提是走 SSH 隧道,绝不直接暴露在互联网上。如果您有 claude.ai 订阅,还可以用 Remote Control 在手机上的 Claude 应用里查看并操控 Claude Code 会话。
请先完成: Tailscale:您的私有网络保护访问安全
多亏了 Tailscale,您的机器从任何地方都能连上。接下来就是从您每天用的工作机, Mac 或 Windows, 舒舒服服地连进去。好消息:远程办公有两种方式,而其中一种覆盖了 95% 的场景。
- 终端,通过 SSH。轻量、快速,您绝大部分时间都耗在这里。您敲命令(或者跟您的智能体对话),机器作出回应。网络上只走几千字节,即使在卡顿的 4G 下也照样跑。
- 图形桌面,通过 VNC。用于那些您真的需要图形界面的少数时刻:在机器上打开浏览器、操作某个图形工具。更重,留给终端搞不定的场合。
两个我们都配。但记住这个比例:您将住在终端里,偶尔造访图形桌面。
终端:您的驾驶舱
SSH 到处都内置了,但一个好的终端应用会让日常顺手得多,标签页、搜索、干净的复制粘贴、连接配置。
在 macOS 上
苹果自带的 Terminal 足够起步。要追求舒适,有两个免费的稳妥之选:iTerm2(经典款,功能极其全面)或 Tabby(现代、跨平台)。无论用哪个,连接命令都一样:
ssh ulrich@mini # 'mini' = 您机器的 MagicDNS 名字
在 Windows 上
在 Windows 11 上,Windows Terminal 已经自带,而且是默认终端;否则可以从 Microsoft Store 免费安装。OpenSSH 客户端已集成在 Windows 里,所以要连接无需再装别的:
ssh ulrich@mini
如果您愿意,Tabby 在 Windows 上也跑得很好。
在手机和平板上
要从 iPhone、iPad 或 Android 操控您的机器,看看 Termius:跨平台(Mac、Windows、iOS、Android)、界面精致,连接与密钥的管理在您各设备间同步。当您手边没有实体键盘时,它是最舒服的选择。
用手机操控 Claude Code:Remote Control
如果您是通过 claude.ai 订阅(Pro、Max、Team 或 Enterprise)使用 Claude Code,还有比小屏幕上的终端更舒服的方式:Remote Control。会话在迷你 PC 上运行,您可以在 Claude 应用(iOS、Android)或 claude.ai/code 上查看并操控它。您的文件、工具和 MCP 服务器都留在机器上;手机只是一扇看向它的窗口。
# 在项目目录下运行,最好放在 tmux 会话里(见下文)
claude remote-control
# 显示会话地址;按空格键会显示一个可扫描的二维码
在已经打开的 Claude Code 会话里,/remote-control(或 /rc)命令效果相同。网络方面无需开放任何端口:机器只向 Anthropic 发起出站请求,这件事甚至不需要 Tailscale。
有两个限制要知道。机器必须保持开机,claude 进程必须一直运行,这正是 tmux 的用武之地。另外,它不支持 API 密钥,Claude Code 走其他接入点时也无法使用(例如 ANTHROPIC_BASE_URL 变量指向本地模型)。其余细节见官方文档。
用 tmux 让会话一直活着
SSH 连接一断(Wi-Fi 抽风、火车进隧道),这个终端里运行的一切都会停下,包括您的智能体。tmux 解决这个问题:会话活在机器上,与您的连接无关。网络断了?重新连上,一切都和您离开时一模一样。这个软件包在系统设置那一步已经装好(如果没有:sudo apt install tmux)。
已完成 0 步,共 3 步 勾选记录只保存在此浏览器中。
-
打开一个有名字的会话
tmux new -s agent # 创建名为 agent 的会话并进入其中然后在里面启动您的智能体(
claude或opencode)。养成一个项目一个会话、名字一看就懂的习惯:您永远知道自己在哪儿。 -
脱离会话,什么都不中断
按 Ctrl + B,松开,再按 D。您离开了会话,它继续运行。关掉终端或断网效果一样:什么都不会停。
-
随时随地重新接管
tmux ls # 列出机器上打开的会话 tmux attach -t agent # 重新接入 agent 会话无论从笔记本、手机还是另一台电脑:都是同一个会话,一个字符都不差。
图形桌面:VNC,只在必要时
有时终端不够用:您想在机器上要一个真正的浏览器,或者某个只有图形版的工具。这就是 VNC 的角色,它把机器的屏幕回传到您的工作机上。
迷你 PC 这端:搭起 VNC 服务器
可选的服务器有好几个(wayvnc 用于 Wayland,x11vnc 最简单)。最省心的当属 TigerVNC,它创建一个专用的虚拟桌面,机器上无需接显示器:
# 安装 TigerVNC
sudo apt install -y tigervnc-standalone-server tigervnc-common
# 启动一个虚拟桌面,仅限本地访问
vncserver :1 -localhost yes
-localhost yes 是关键的细节。它告诉服务器:只接受来自机器本身的连接,绝不直接来自网络。我们会通过 Tailscale/SSH 隧道访问它,把好奇者挡在门外。首次启动时,TigerVNC 会要您设置一个会话密码,选一个够强的。
工作机这端:走隧道,永不暴露
千万别直接开放 VNC 端口(5900/5901)。我们让它走 SSH 隧道,而这条隧道本身又跑在您的 Tailscale 私有网络上:
# 建一条隧道:本地的 5901 端口指向机器的 5901
ssh -L 5901:localhost:5901 ulrich@mini
只要这条命令还在跑,您的工作机就有一扇本地门(localhost:5901),它加密地通向机器的 VNC 桌面。
工作机这端:VNC 查看器
- macOS 自带客户端。在 Finder 里按 Cmd + K,输入
vnc://localhost:5901。否则,RealVNC Viewer(免费、跨平台)也能很好地胜任。 - Windows:RealVNC Viewer 或 TightVNC Viewer。您把查看器指向
localhost:5901,那是您这一端的隧道口。
说实话,您很少会打开桌面
最后来个老实的纠偏。一旦您装好了代码智能体,绝大部分远程工作就是:SSH + 您跑在终端里的智能体(Claude Code 或 OpenCode)。您描述您想要什么,它来读、写、执行、修正。没有鼠标,没有窗口,没有图形延迟。
VNC 留着应对例外,一个要可视化操控的浏览器、一次界面调试。但如果您好几周都没打开过它,别觉得意外。终端占了 95% 的时间,而且这样更好:更快、更轻,连网络打喷嚏的时候也照样能用。
本文全部命令
常见问题
从 Mac 或 Windows 电脑用 SSH 连接,该用哪个终端应用?
在 Mac 上,Apple 自带的「终端」就足以起步;免费的 iTerm2 或 Tabby 用起来更舒服。在 Windows 11 上,Windows Terminal 已经预装,系统也内置了 OpenSSH 客户端,无需再装别的。在 iPhone、iPad 或 Android 上,没有实体键盘时 Termius 是最舒服的选择。
迷你 PC 重启后,tmux 会话还在吗?
不在。tmux 能扛住断网,但机器一重启,会话就没了,比如内核更新或停电之后。这时需要重新启动会话。如果某个任务需要独立运行并在重启后自动恢复,更适合做成定时服务。
迷你 PC 上该装哪个 VNC 服务器?
最省心的是 TigerVNC:它会创建一个专用的虚拟桌面,机器上无需接显示器。启动时加上 -localhost yes 选项,让它只接受来自本机的连接,并在首次启动时设置一个足够强的会话密码。此外也可以选择 wayvnc(适用于 Wayland)和 x11vnc。
怎样从 Mac 或 Windows 电脑打开迷你 PC 的 VNC 桌面?
先用 ssh -L 5901:localhost:5901 ulrich@mini 建立 SSH 隧道,并让这条命令保持运行。在 Mac 上,在访达中按 Cmd + K,输入 vnc://localhost:5901,或者使用 RealVNC Viewer。在 Windows 上,把 RealVNC Viewer 或 TightVNC Viewer 指向 localhost:5901 即可。
Remote Control 能配合 API 密钥或本地模型使用吗?
不能。Remote Control 需要 claude.ai 订阅(Pro、Max、Team 或 Enterprise),使用 API 密钥时无法使用,Claude Code 走其他接入点时也不行,比如 ANTHROPIC_BASE_URL 变量指向本地模型的情况。此外,机器必须保持开机,claude 进程也要一直运行,所以最好在 tmux 里启动它。
本文涉及的术语: SSH智能体Claude CodeRemote ControlMCPTailscaletmuxAPIOpenCode
发现错误?
命令失效了,价格变了?
这些工具每个月都在变。请告诉我这篇文章哪里不对,我会改正并更新日期。