尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

手机远程连接Claude Code与Codex:四套方案与坑位笔记

手机远程连接Claude Code与Codex:四套方案与坑位笔记 前两天出门没带电脑路上想改一段代码掏出手机连回家里那台 Linux 小主机把没跑完的 Codex 任务接着跑完又用 Claude Code 让它把两个文件的 diff 整理了一遍。这一套操作我用了快一年今天把手机远程连接 Claude Code 和 Codex 的完整经验整理出来——四套方案从最轻量的 SSH 直连到浏览器里的 VS Code怎么选、怎么配、还有我踩过的十几个坑一次说清楚。先说背景Claude Code 是 Anthropic 官方出的终端编程代理跑在命令行里能读代码、改文件、跑命令Codex 是 OpenAI 的同类 CLI 工具也跑在终端里。这俩都不是手机 App而是跑在电脑上的命令行程序。所以“手机远程连接”这件事本质上是让你用手机当一个远程终端去操作一台装了 Claude Code 或 Codex 的电脑。这个场景特别适合三类人经常出门但活儿还没干完的开发者、想用平板或旧手机当便携工作站的玩家、还有公司电脑和家里电脑分处两地需要随时接管的人。1. 为什么要把 Claude Code 和 Codex 搬到手机上1.1 你需要的不是‘手机版’而是‘远程终端’很多人第一反应是找“Claude Code 手机版”“Codex 安卓版”但这种思路从一开始就跑偏了。Claude Code 和 Codex 做的是重活它要把整个项目目录读进来、调用模型接口、改文件、跑测试这一套逻辑放在手机本地跑性能和存储都顶不住也没有官方移动端。所以我们真正要解决的问题只有一个把手机变成一个远程终端连到一台已经装好这两个工具的机器上。你在手机上敲claude或者codex实际执行的是远程电脑上的程序输出通过 SSH 传回手机屏幕。这个思路和“手机远程连接服务器”是同一套技术栈只是把目标从普通服务器换成了你的开发机。1.2 三条技术路线的取舍把手机接回开发机主流做法有三类远程桌面RDP/向日葵这类、网页版 IDEcode-server 这种、SSH 终端Termius、Blink Shell 等。远程桌面看着最直观但带宽占用高、卡顿明显手机上更难操作网页版 IDE 适合看代码和写代码但跑命令还得靠终端面板SSH 终端最轻、最快、最省电也是我推荐的主力方案。路线上手难度流畅度适合场景远程桌面低弱网卡顿图形界面操作网页版 IDE中看代码流畅写代码、看 diffSSH 终端低极流畅跑 Claude Code / Codex本地终端模拟器中分场景安卓折腾玩家这套组合里的核心主角是 SSH 终端因为它和 Claude Code、Codex 天然匹配——这俩工具本身就是终端程序没有任何图形界面需求SSH 恰好把所有文本交互原样传回来体验和坐在电脑前几乎没区别。1.3 为什么一定要学会用 tmux/screen远程连接最怕的是什么手机锁屏、切后台、信号断了连接一断正在跑的 Codex 任务就跟着断。这个坑我第一周就踩了跑了大半个小时的代码审查任务因为地铁进隧道断连全部白跑。解决办法是在远程机器上先用 tmux 或 screen 开一个会话再在这个会话里启动 claude 或 codex。这样你手机端断线、重连远程的程序始终在 tmux 里继续跑回来tmux attach就能接上。这个习惯必须养成比任何连接工具都重要。2. 方案一Termius SSH 直连最轻量的主力方案2.1 主机端三件套SSH、固定地址、tmux这套方案我用了大半年稳定性最高。主机端只需要做三步准备工作。第一步装并启动 OpenSSH 服务。Ubuntu/Debian 系执行sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now ssh装完检查一下端口有没有监听sudo ss -tlnp | grep 22看到:22有 LISTEN 状态就说明 SSH 服务已经起来了。如果跑的是 Windows 开发机去“设置→系统→可选功能→添加 Windows 可选功能”里勾选“OpenSSH 服务器”然后在“服务”里把 OpenSSH Server 设置为自动启动。第二步确认机器地址。在家里的局域网里直接连内网 IP 就行比如192.168.1.100如果人在外面要连回家就得用公网 IP 或 DDNS这一块我在第三套方案里会展开讲因为直接暴露公网端口的安全风险不小。第三步装 tmuxsudo apt install -y tmux每次连接后先tmux new -s code开新会话或tmux attach -t code接回旧会话再敲claude或codex。2.2 手机端配置 TermiusTermius 是我用过的跨平台 SSH 客户端里最省心的iOS、Android、Windows、macOS 全都有免费版就够用。在手机应用商店搜“Termius”安装然后创建 Host主机地址填远程 IP端口填 22用户名填你登录远程机器的用户名。密码登录很简单但我强烈建议直接用密钥登录。在电脑上生成密钥对ssh-keygen -t ed25519 -C phone-access cat ~/.ssh/id_ed25519.pub把输出的公钥内容追加到远程主机的~/.ssh/authorized_keys里mkdir -p ~/.ssh chmod 700 ~/.ssh echo ssh-ed25519 AAAA... phone-access ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys然后在 Termius 里打开这个主机的编辑页在 Key 那一项选择或导入私钥。我习惯把私钥文件传到手机上导入 Termius之后每次连接都是秒进不用输密码。2.3 手机键盘操作技巧手机上敲命令行最难受的是键盘。我实测下来有几个技巧非常管用先打开 Termius 的“工具条”和“快捷键”设置把 Esc、Tab、CtrlC 这几个键放到快捷栏里因为在终端里频繁用到的组合键是 Esc、Tab、CtrlC这几颗按键在手机上不常驻必须自定义出来。Termius 还支持外接蓝牙键盘配一个折叠蓝牙键盘在星巴克也能打。如果没有键盘就多依赖 Claude Code 和 Codex 的交互方式——尽量让 AI 帮你改文件而不是自己用手在手机上一个字母一个字母敲这个思路能省掉 80% 的输入痛苦。3. 方案二Tailscale 组网解决‘人在外面连不进家’的痛点3.1 为什么不能直接暴露公网端口方案一的 SSH 直连有个前提你的电脑得有公网可达的 IP。家庭宽带现在基本都是大内网运营商给的光猫 IP 根本不是公网你人在外面根本连不回来。很多人会想到去路由器里做端口映射把 22 端口映射出去但这样做风险极高——SSH 端口暴露在公网上每天会被各种扫描器暴力破解我就是这么吃过亏的。更麻烦的是即使有公网 IP家庭宽带的 IP 也会定期变动你每次出门都得重新查一次 IP非常折腾。3.2 Tailscale 是个什么东西Tailscale 是个组网工具它能在两台设备之间建立一个加密的虚拟内网不管设备在哪个角落只要都能上网就能像在同一局域网一样互相访问。手机装上 Tailscale外面也能直接连回家里的电脑IP 还是固定的100.x.x.x段。这个思路特别适合我们这种场景不需要公网 IP、不需要路由器端口映射、连接是加密的手机上多装一个 App 就能搞定。主机端安装登录curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up命令执行完会输出一个登录链接在浏览器里打开并登录你的账号。手机端装 Tailscale App登录同一个账号两边的设备就能互相看到了。登录完成后在主机的终端里运行tailscale ip -4记下输出的地址这是这台机器在 Tailscale 网络里的固定 IP。手机上的 Termius 里建一个新的 Host地址填这个100.x.x.x端口 22其他配置和方案一完全一样。3.3 把 SSH 绑定到 Tailscale 接口安全加倍既然有了 Tailscale我建议你把 SSH 从公网接口上摘下来只让它在虚拟内网里提供服务。修改远程主机的 SSH 配置文件/etc/ssh/sshd_config添加一行ListenAddress 100.x.x.x这里填你机器的 Tailscale IP。改完执行sudo systemctl restart ssh之后再连接只能从 Tailscale 网络进来公网扫描器连端口都探测不到了。这套组网方案配合 Termius 使用是我现在出门在外的标准姿势手机打开 Tailscale App 保证在线然后 Termius 连100.x.x.x进 tmux 接上之前跑着的会话直接继续干活。4. 方案三Termux 本地终端安卓党的折腾玩法4.1 为什么还要提 TermuxTermux 是安卓上的本地 Linux 终端模拟器能让你在手机本地跑很多命令。它和方案一、方案二的区别在于Termux 是在手机本地跑一个迷你 Linux 环境你可以直接在手机里装 Node.js然后安装 Claude Code 和 Codex在某些轻量场景下完全不用连远程机器。但说实话手机自身的算力跑 Claude Code 这类工具只能凑合真正更实用的玩法是把它当做一个 SSH 客户端再配合手机本地的脚本能力一起用。这也是为什么我把它单独拎出来讲一套方案的原因——它身兼两职。4.2 Termux 上直接装 Claude Code安装 Termux 不要走应用商店官方推荐的渠道是 F-Droid 或 GitHub Release因为应用商店版本已经停止维护。装好之后执行pkg update pkg upgrade -y pkg install nodejs-lts git openssh -y npm install -g anthropic-ai/claude-code然后设置存储权限termux-setup-storage这个命令会请求访问手机存储的权限授权后 Termux 才能读取你下载的文件。装完后运行claude如果配置了 API Key 或完成登录就能在手机上直接用了。Codex 同理npm install -g openai/codex codex --version4.3 在 Termux 里 SSH 到远程主机Termux 也装了 OpenSSH 客户端用起来和电脑上完全一样。手机远程到家里主机ssh -i ~/.ssh/id_ed25519 user100.x.x.x把密钥文件放到 Termux 的~/.ssh/目录下权限设成 600连接就能免密登录。Termux 还能写一些本地脚本比如一键连接脚本#!/data/data/com.termux/files/usr/bin/bash ssh -t user100.x.x.x tmux attach -t code || tmux new -s code做完这两步Termux 就兼具了“本地跑命令”和“远程连主机”两个能力。4.4 Termux 的坑Termux 有两个很隐蔽的坑我折腾时都遇到过。第一个是安卓后台机制杀进程Termux 在后台待久了会被系统回收连接就断了。解决办法是在系统设置里把 Termux 的电池优化关掉或者直接允许它后台自启动。第二个坑是包的版本问题。Termux 的默认软件源里 Node.js 可能不是最新版如果npm install -g anthropic-ai/claude-code报错说 Node 版本太低先升级一下pkg update pkg upgrade然后检查node -vClaude Code 需要 Node 18 以上低于这个版本就去搜一下 Termux 里安装新版 Node 的方式。5. 方案四code-server 网页版 VS Code在手机浏览器里写代码5.1 什么时候需要网页版 IDETermius 跑命令很舒服但让我在手机上读代码、看 diff、改配置文件的时候纯终端就显得不够用。这时候最舒服的是在浏览器里打开一个 VS Code 界面——没错就是完整版的 VS Code跑在远程机器上手机浏览器直接访问。这就是 code-server 干的事把你的 VS Code 变成一个网页服务。部署在开发机上之后手机浏览器里打开的界面和电脑上 VS Code 几乎一样左边是文件树右边是编辑器下面还能开一个终端面板终端里正好可以跑 Claude Code 和 Codex。这个组合是我用下来“读代码 跑 AI 任务”最顺手的模式。5.2 部署 code-server在远程主机上一条命令安装curl -fsSL https://code-server.dev/install.sh | sh装完先手动跑一次看看默认配置code-server首次启动会在~/.config/code-server/config.yaml生成配置默认监听在127.0.0.1:8080有一个随机密码。我们需要改两个地方绑定地址改成允许 Tailscale 网段访问密码改成一个自己记得住的强密码。编辑配置文件bind-addr: 100.x.x.x:8080 auth: password password: your-strong-password cert: false把bind-addr改成开发机的 Tailscale IP这样只有 Tailscale 网络里的设备能访问比直接暴露在局域网更安全。然后重启 code-serversudo systemctl enable --now code-server如果你用的是 systemd 服务方式启动注意服务的启动用户要和你自己的用户一致否则读不到 Node 的全局安装包。5.3 手机浏览器里的实际体验手机浏览器打开http://100.x.x.x:8080输入密码就能看到 VS Code 界面。点击左侧扩展图标搜索“Claude Code”或者直接在 IDE 自带终端里用命令行。我一般是这样分工的在文件树里点开文件快速查阅需要动手改的时候直接在编辑器里改改动复杂就让 Claude Code 在终端里接管。手机浏览器建议用 Chrome 或 Safari 最新版另外最好“添加到主屏幕”这样它像一个 App 一样全屏显示体验会好很多。code-server 也有不方便的地方手机屏幕小所以尽量别开太多面板打开大文件时页面会卡尤其是在旧手机上。所以它和 Termius 是互补关系我通常只在需要“读代码改代码”时打开它快进快出。6. 四套方案怎么选对比、组合和我的日常配置6.1 横向对比维度Termius SSHTailscale 组网Termuxcode-server上手难度低中中高中手机端依赖单一 App两个 App本地模拟器浏览器弱网表现稳稳一般一般能否跑 Claude Code/Codex远程跑远程跑本地远程远程跑读代码体验较差较差较差好外网可用性需公网/组网直接可用需配合 SSH需配合组网经济成本免费免费额度够用免费免费6.2 我推荐的组合策略如果你只打算用一种方案我建议“Termius Tailscale tmux”三件套这也是我最稳定的日常组合。Tailscale 解决外网访问Termius 提供手机上顺手的界面tmux 保证断线不丢任务。这套组合学习成本最低也最稳定。如果经常需要在外边改代码、看 diff那就再加一个 code-server。4G 网络下拉起网页 IDE 也就几秒钟看大文件偶尔有点卡但可以接受。Termux 属于进阶玩具我平时用得最少但在外面突然想快速跑一个命令行工具的时候它还是很有用的。6.3 四套方案能不能混用完全可以而且我就是混着用的。举个例子白天在公司手机连着家里主机跑 Codex 批量任务用 Termius 进 tmux 看进度晚上到家躺床上想改代码就开 code-server周末出门没带电脑在地铁上临时改一个小文件Termux 里直接开 Claude Code 让它给我一段替换命令把改动的 part 发过去回家再合。四套方案不是互斥的它们解决的是同一个问题在不同场景下的体验差异。记住一个原则终端能搞定的用终端终端看不清的用网页 IDE网页 IDE 跑不动的再回终端。这样组合使用体验会非常丝滑。7. 常见问题与避坑清单7.1 SSH 连不上、频繁断线怎么办连不上的第一件事先确认远程机器 SSH 服务活着systemctl status ssh如果服务正常但连不上大概率是网络问题内网连接试试 IP 通不通ping 192.168.1.100外网连接就检查 Tailscale 两个设备是不是都在线。频繁断线的问题八成出在手机切后台、网络切换导致的连接超时上。在 SSH 客户端里开启 keepalive 保活机制可以明显改善。Termius 的主机设置里有个 Keep Alive 选项把它设成 30 秒左右。命令行连接时也可以加参数ssh -o ServerAliveInterval30 -o ServerAliveCountMax3 user100.x.x.x7.2 密钥认证一直失败密钥认证失败最常见的原因是权限不对。远程主机的~/.ssh/目录权限必须是 700authorized_keys文件权限必须是 600。很多人复制好公钥后忘了设权限SSH 会直接拒绝认证这个坑让我排查了快两个小时。另一个常见问题是私钥复制到手机后格式变了。Termius 导入私钥时有时会多出换行或者格式错乱尤其是从电脑上复制粘贴过来时。建议用 Termius 的“从 iCloud/Drive”导入功能直接把私钥文件传进手机不要手动复制粘贴。7.3 Claude Code 和 Codex 在远程环境里的登录坑这俩工具在本地电脑上登录通常没问题但在 SSH 会话里登录时默认会试图打开浏览器跳转授权而远程机器没有桌面环境浏览器根本弹不出来登录流程就卡住了。解决办法是把登录方式改成 API Key。Claude Code 设置环境变量export ANTHROPIC_API_KEY你的 API KeyCodex 同理export OPENAI_API_KEY你的 API Key把这段写入远程主机的~/.bashrc或~/.zshrc以后每次 SSH 连接进来都能直接用不用走浏览器授权流程。另外如果你用 cc-switch 这类工具来切换 Claude Code / Codex 的供应商配置可能会遇到类似cc switch local proxy failed while handling codex endpoint /responses的报错。这个报错我遇到过两次基本都是同一个原因配置里写了本地代理地址但那个代理进程没启动或者端口写错了。去 cc-switch 的配置文件里核对一下 endpoint 地址和端口确保代理服务先跑起来问题就解决了。7.4 远程跑任务时常见的小毛病手机锁屏导致 SSH 断开是最常见的除了 tmux 保底还可以在远程主机上再用nohup配合后台运行。比如启动 Codex 任务nohup codex 把项目里所有 TODO 列出来 codex-todo.log 21 这样即使 SSH 断掉Codex 进程也在远程机器上继续跑日志写进文件下次连接cat codex-todo.log就能看到结果。还有个小细节是系统休眠问题。家里 Linux 主机如果设置了自动休眠人不在家机器就睡了手机自然连不上。我建议在 BIOS 或系统设置里关掉自动休眠或者至少设置为“合盖不睡眠”。如果用的是笔记本当开发机更要注意这一点。7.5 给新手的最后几个提醒手机远程连接 Claude Code 和 Codex 这件事说穿了就是三件事先保证网络能通、再养成 tmux 习惯、最后把登录方式改成 API Key。这三件事做到位剩下全是顺手的事。我个人现在出门的习惯是手机开着 Termius 和 Tailscale家里那台 16G 内存的小主机 24 小时开着所有 Claude Code、Codex 任务都在 tmux 会话里跑。地铁上、咖啡厅里、甚至在旅行途中只要有网络掏出手机就能接着干活。这套方案我已经稳定用了快一年没掉过链子。你照着配置一遍遇到问题就回来对照这份避坑清单应该能少走不少弯路。
返回列表