博客/端口与 VNC

在手机上查看 Claude Code 和 Codex 的成果:端口访问与 VNC

2026-07-23

终端里能看到的是 agent 的文字汇报:布局修好了,diff 没问题,build 通过了。页面和界面本身看不到。在电脑上你会打开浏览器或模拟器看一眼,这篇讲怎么在手机上做同样的事。前提是 agent 已经跑在 tmux 里,跑完会收到通知。

ServerCC 里有两个工具做这件事,都走已经建立的 SSH 连接。端口访问通过 SSH 隧道,把服务器上在监听的 HTTP 服务打开在内置浏览器里;VNC 显示那台机器的屏幕。

端口访问:不部署也能打开 dev server

端口访问会列出服务器上所有在监听的 TCP 端口,旁边标着进程名,比如 5173 是 node,8000 是 python。点一下,ServerCC 建立一条 SSH 本地转发,在内置浏览器里打开页面。服务可以一直绑在服务器的 localhost 上,不用改防火墙、配反向代理或开 ngrok 隧道,手机能 SSH 到这台机器就够了。

这个浏览器是按检查布局来做的。「页面视图」可以在移动版和桌面版之间切换;App 其他页面只支持竖屏,这里可以转横屏;agent 改完代码,点刷新就能看到最新效果。它用一条独立的 SSH 连接,页面加载再重也不会卡住终端会话。隧道只支持 http://,dev server 一般也就是这个协议。

VNC:网页以外的结果

有些 agent 的产出没有 URL:模拟器里的 iOS App、桌面应用、matplotlib 弹出的图、开着 devtools 的浏览器。这些用内置 VNC 客户端看。它可以连 macOS 屏幕共享(ARD)或任何标准 VNC 服务器,走 SSH 隧道、直连或 Tailscale 都行。

双指缩放可以放大到真实像素,点按就是鼠标点击。键盘上方的辅助行补上了触屏键盘没有的键:Esc、Tab、方向键,以及可锁定的 Ctrl / Shift / Alt / ⌘,用来按快捷键。画质有两档,在色深和带宽之间取舍,蜂窝网络下也能用。

例子:在模拟器里检查 iOS 改动

家里的 Mac 在开发一个 iOS App,你人在外面。Claude Code 刚重做了设置页,汇总说都对齐了。你在终端里让它重新编译、装进模拟器并启动,在 Mac 上执行的就是:

xcodebuild -scheme MyApp \
  -destination 'platform=iOS Simulator,name=iPhone 16' build
xcrun simctl install booted path/to/MyApp.app
xcrun simctl launch booted com.example.myapp

然后打开 VNC。Mac 的屏幕出现,模拟器在正中间。放大导航栏,按真实像素检查间距;像在真机上一样点一遍流程;在搜索框里输入几个字,看键盘弹起后布局有没有乱。发现哪一行 padding 不对,切回终端告诉 Claude 是哪一行,等它重新编译,再切回 VNC 看。终端和 VNC 是同一个 App 里的两个页面。

例子:不部署,检查本地 Web 界面

Claude 在写一个 Web UI,dev server 跑在 :5173,绑在开发机的 localhost 上。什么都没部署,也没有预发布链接。打开端口访问,列表里已经有 node · 5173,点开,页面通过隧道显示在内置浏览器里。

页面按真实手机宽度渲染,用手指操作,可以直接检查移动端断点。然后把页面视图切到桌面版、转成横屏,看宽屏布局。agent 改完下一处,点刷新。网站全程不对外暴露,所有流量都走那条 SSH 连接。

用哪个

能在浏览器里显示的,用端口访问,文字更清晰,滚动是原生的。模拟器、原生应用、devtools 这类只在屏幕上的东西,用 VNC。细节见文档:端口访问和 VNC 远程桌面。从零搭整套工作流,看 Claude Code 手机版指南。