新闻详情

新闻详情

首页 / 资讯中心 / 详情

手机远程连接WSL2中的Codex CLI:Tailscale私有网络+Termius+OpenSSH+tmux实战(CodexCli)

发布时间:2026/9/26 15:24:07来源:尧图网络
手机远程连接WSL2中的Codex CLI:Tailscale私有网络+Termius+OpenSSH+tmux实战(CodexCli)
1. 为什么要在手机上接管 WSL2 里的 Codex CLICodex CLI 跑在 WSL2 里本质是一个长期驻留的终端程序它读你当前仓库的代码、维护会话上下文、调用模型生成补丁。问题在于它被绑死在电脑前。你一旦合上笔记本、离开工位、或者只是想去倒杯水那个会话就断了回来还得重新codex resume上下文虽然能恢复但中间那段时间的等待和打断感很烦。我想要的不是手机上看代码而是手机上继续操作同一个 Codex CLI 会话。这两件事差别很大前者是只读后者要求手机能输入、能提交、能中断、能恢复而且断网重连后会话不能丢。要做到这一点核心不是找一个手机 SSH 客户端而是把 Codex CLI 从 SSH 连接里解耦出来——SSH 只是显示层tmux 才是承载层。这套架构由四块拼起来Tailscale 把手机和电脑放进同一个加密私有网络不需要在路由器上暴露 22 端口Windows OpenSSH Server 作为稳定入口因为 WSL2 的 172.x.x.x 虚拟 IP 会变直接连它不靠谱WSL2 Ubuntu 是 Codex CLI 真正运行的地方tmux 负责让 Codex 在 SSH 断开后继续活着。手机端用 Termius 连接配合 Paste mode 和 Snippets 解决移动端输入痛点。适合谁已经在 WSL2 里用 Codex CLI 做日常开发、希望通勤或离开工位时也能推进任务的人。如果你还没在 WSL2 里跑通 Codex CLI建议先把本地跑顺再来看远程接入。2. 前置准备TaoToken 接入与 Codex CLI 环境确认Codex CLI 需要一个模型服务端点。我这边用的是 TaoToken 提供的兼容接口它把模型调用统一成 OpenAI 风格的 APICodex CLI 配置起来比较直接。官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 。先在 WSL2 Ubuntu 里确认 Codex CLI 已安装并登录过。如果你还没配好 API Key去控制台创建一个https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 然后在 API Keys 页面生成密钥https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。密钥只显示一次复制后存到安全的地方。Codex CLI 的配置通常放在~/.codex/config.toml或通过环境变量注入。一个最小可用的环境变量写法export OPENAI_API_KEYsk-你的TaoToken密钥 export OPENAI_BASE_URLhttps://taotoken.net/api如果你用的是 Codex CLI 的配置文件方式在~/.codex/config.toml里指定 provider 和 base_url把https://taotoken.net/api填进去即可。具体字段名以你安装的 Codex CLI 版本为准可以用codex --help或查看官方文档确认。验证本地能跑通cd ~/projects/你的项目 codex能进入交互界面、能正常对话说明本地链路没问题。接下来才是把它搬到手机上。另外确认 WSL 发行版名称这个后面会反复用到wsl --list --verbose输出类似NAME STATE VERSION * Ubuntu-24.04 Running 2记下这个 NAME比如Ubuntu-24.04。如果你写wsl -d Ubuntu但系统里没有这个名称会报WSL_E_DISTRO_NOT_FOUND。3. 可复制配置OpenSSH Server Tailscale tmux 骨架3.1 在 Windows 上启用 OpenSSH Server以管理员身份打开 PowerShell逐条执行# 查看 OpenSSH Server 组件状态 Get-WindowsCapability -Online | Where-Object Name -like OpenSSH.Server* # 安装 OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 启动 sshd 服务 Start-Service sshd # 设置为开机自启 Set-Service -Name sshd -StartupType Automatic # 确认运行状态 Get-Service sshd最后一条应显示Running。再检查 22 端口监听netstat -an | findstr :22看到0.0.0.0:22 LISTENING就对了。防火墙规则检查Get-NetFirewallRule -Name OpenSSH-Server-In-TCP如果规则不存在手动创建New-NetFirewallRule -Name OpenSSH-Server-In-TCP -DisplayName OpenSSH SSH Server (sshd) -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 223.2 Tailscale 组网电脑和手机都安装 Tailscale登录同一个账号同一个 Tailnet。在电脑端确认 Tailscale 处于在线状态并允许传入连接。手机端能看到电脑的 Tailscale IP形如100.x.x.x。Termius 里填的是这个100.x.x.x不是localhost不是路由器分配的192.168.x.x也不是 WSL2 的172.x.x.x。这一点最容易搞混。3.3 tmux 配置骨架在 WSL2 Ubuntu 里安装 tmuxsudo apt update sudo apt install -y tmux一个够用的~/.tmux.conf# 前缀键改为 CtrlA减少和终端快捷键冲突 set -g prefix C-a unbind C-b bind C-a send-prefix # 开启鼠标支持方便手机端滚动 set -g mouse on # 窗口编号从 1 开始 set -g base-index 1 setw -g pane-base-index 1 # 增大回滚缓冲手机上看长输出不丢 set -g history-limit 50000 # 状态栏显示会话名 set -g status-left [#S] 重载配置tmux source-file ~/.tmux.conf3.4 创建承载 Codex 的会话tmux new -s codex cd ~/projects/你的项目 codex底部出现[codex] 0:bash*说明已在 tmux 内。Codex 启动后这个会话就独立于 SSH 连接了。4. 验证请求手机端连接与成功结果4.1 Termius 添加主机在 Termius 新建 Host字段值AddressWindows 的 Tailscale IP100.x.x.xPort22UsernameWindows 用户名PasswordWindows 账户密码注意这里要的是 Windows 账户密码不是 Windows Hello PIN。如果你 PIN 和密码设成一样看起来像用 PIN 登录其实不是。首次连接会显示主机密钥指纹确认是自己的电脑后接受。连接成功后看到的是 Windows 命令行不是 Ubuntu。然后进入 WSLwsl -d Ubuntu-24.04再附加到 tmux 会话tmux attach -t codex此时你应该看到 Codex CLI 的界面和电脑上完全一致。4.2 验证 Codex 会话可复用在手机 Termius 里向 Codex 发一条消息比如让它解释当前目录某个文件。确认有响应后按CtrlB松开再按d看到[detached from codex]然后断开 Termius。重新连接执行tmux attach -t codexCodex 会话还在上下文没丢。这就是整套方案的核心验证点。4.3 用 Snippets 简化流程Termius 底部快捷栏的{}按钮可以保存 Snippets。保存一个进入 Codexwsl.exe -d Ubuntu-24.04 -e tmux new-session -A -s codex -c /home/你的用户名/projects/你的项目-A表示会话存在就附加、不存在就创建-c指定工作目录。再保存一个恢复 Codexcodex resume --last以后连接 Windows 后点两次 Snippet 就回到工作状态。5. 本篇常见错排查Connection refusedsshd 没跑或 22 没监听。Start-Service sshd再netstat -an | findstr :22。Termius 一直超时Tailscale 没连通、Windows 休眠、或入站被拦。检查两端 Tailscale 状态、电源设置、防火墙规则。密码始终错误用了 Windows Hello PIN。改用账户密码稳定后建议换 SSH 密钥。WSL_E_DISTRO_NOT_FOUND发行版名称写错。wsl --list --verbose拿准确名称。duplicate session: codextmux 会话已存在。用tmux attach -t codex别重复创建。already has an active writer旧 Codex 进程还占着会话。先pgrep -af codex看进程确认是独立的 codex 进程后kill pid等它退出再codex resume --last。注意输出里可能混着codex-clipboard-bridge和tmux new -s codex这种命令参数里带 codex 的进程别误杀。手机锁屏后 SSH 断开移动系统限制后台。tmux 保住了服务端会话重连tmux attach -t codex即可。Android 可以关掉 Termius 的电池优化。中文显示方框终端字体或 locale 不匹配。检查 Termius 字体、终端编码以及 WSL 的locale设置。手机打字慢用 Termius Paste mode先在备忘录写好提示词再粘贴或者切 Paste mode 后用语音输入。常用命令存成 Snippets。6. 长期编码与 Agent 场景的接入建议如果你只是偶尔在手机上查一下 Codex 的输出上面这套已经够用。但如果你打算把手机当成日常编码入口之一有几个点值得提前配好。第一SSH 密钥替代密码。在 Termius 里生成密钥对把公钥放到 Windows 的~/.ssh/authorized_keys之后连接不用输密码手机端体验顺很多。第二把 Codex 的模型端点固定到 TaoToken 的 API 基址https://taotoken.net/api避免每次换环境都要改配置。如果你同时用多个模型做对比可以在模型对话页面直接试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。第三如果你跑的是长时间编码任务或 Agent 循环考虑用 Coding Plan 把额度固定下来避免按次调用时中途断掉https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各语言 SDK 和端点说明。第四Claude Code 用户如果也想走类似链路可以参考 Anthropic 兼容接入的配置方式https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。日常流程简化成电脑端tmux new -s codex起会话离开时CtrlB再d手机端开 TailscaleTermius 连 Windows 的 Tailscale IP点进入 CodexSnippettmux attach -t codex回到电脑想接管tmux attach -d -t codex把会话抢回来。Codex 始终在 WSL2 里跑手机只是显示和输入代码、依赖、密钥都留在本地。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

告别Cursor降智!MarsCode接入TaoToken+DeepSeek R1配置实战 2026/9/26 16:11:29

告别Cursor降智!MarsCode接入TaoToken+DeepSeek R1配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
介绍下近期的开源大模型:从 MiMo-V2-Flash 到 GLM4 的本地推理配置骨架 2026/9/26 16:11:29

介绍下近期的开源大模型:从 MiMo-V2-Flash 到 GLM4 的本地推理配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Substrate区块链开发框架实战:从存证pallet到无分叉Runtime升级 2026/9/26 16:11:29

Substrate区块链开发框架实战:从存证pallet到无分叉Runtime升级

Substrate这个词,放在不同场景里意思完全不一样。材料实验室里它叫衬底,生物实验室里它是酶反应的底盘,但在区块链开发这个圈子,Substrate指的是一套用Rust写的区块链开发框架。我第一次正儿八经接触Substrate,是因为要…

阅读更多 →
VS 2013插件配 TaoToken:settings.json 骨架与报错排查 2026/9/26 16:11:23

VS 2013插件配 TaoToken:settings.json 骨架与报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
2026届最火的十大AI科研平台横评:TaoToken统一Key接入千笔AI、豆包、kimi的config.toml骨架 2026/9/26 16:11:23

2026届最火的十大AI科研平台横评:TaoToken统一Key接入千笔AI、豆包、kimi的config.toml骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
新手注意:2026短视频重点整理方法,过来人整理的实操避坑经验(TaoToken 配置避坑版) 2026/9/26 16:11:23

新手注意:2026短视频重点整理方法,过来人整理的实操避坑经验(TaoToken 配置避坑版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉