在GPT5.5免费网页的帮助下建立了自己的免费远程AI开发环境搭建的过程记录,用了claude cli + vscode(非必须) + tmux + wsl2 + termius + Tailscale

使用 Claude Code + WSL2 + Tailscale + Termius 实现手机远程开发(完整踩坑实践)

本文记录我从零搭建 Claude Code + WSL2 + VSCode + Tailscale + Termius + tmux 的完整过程,以及过程中踩过的坑。

最终效果

电脑:

VSCode
  ↓
WSL2(Ubuntu)
  ↓
ljh
  ↓
tmux
  ↓
Claude Code

手机:

Termius
  ↓
SSH(Tailscale)
  ↓
Windows
  ↓
wsl
  ↓
ljh
  ↓
同一个 tmux
  ↓
同一个 Claude 会话

真正实现电脑、手机无缝切换。


一、环境

电脑:

  • Windows 10
  • WSL2 Ubuntu
  • VSCode
  • Claude Code CLI
  • Tailscale
  • OpenSSH Server

手机:

  • Tailscale
  • Termius(免费版)

二、Windows 开启 SSH

执行位置:Windows PowerShell(管理员)

查看:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'

安装:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

启动:

Set-Service -Name sshd -StartupType Automatic
Start-Service sshd

验证:

Get-Service sshd

我的输出:

Status   Name
------   ----
Running  sshd

检查防火墙:

Get-NetFirewallRule -Name *SSH*

三、安装 Tailscale

电脑、手机安装 Tailscale,登录同一账号。

执行位置:Windows PowerShell

tailscale ip

我的输出:

100.76.143.60
fd7a:115c:a1e0::6435:8f3d

Termius 使用 100.xxx.xxx.xxx 即可连接。


四、第一次 SSH 登录踩坑

第一次:

ssh localhost

提示:

The authenticity of host 'localhost' can't be established.

输入 yes。

随后要求输入 Windows 登录密码。

踩坑:

我的电脑开机自动登录,没有 PIN,但实际上 Windows 账户仍然有密码。

SSH 登录使用的是 Windows 用户密码,不是 PIN,也不是微软账户验证码。


五、WSL 环境

开发环境全部放在 WSL。

以后:

  • Python
  • Node
  • Claude Code
  • Git

全部安装在 WSL。


六、安装 tmux

执行位置:WSL(Ubuntu)

sudo apt update
sudo apt install -y tmux

我的输出:

tmux is already the newest version (3.2a-4ubuntu0.2).

另外还遇到了:

ModuleNotFoundError: No module named 'apt_pkg'

这是 Ubuntu command-not-found 组件问题,与 tmux 无关,不影响使用。


七、为什么必须使用 tmux

没有 tmux:

Claude
    ↓
SSH断开
    ↓
Claude退出

有 tmux:

Claude
    ↓
tmux
    ↓
SSH断开
    ↓
Claude继续运行

八、统一启动器 dev

执行位置:WSL

创建:

mkdir -p ~/bin
code ~/bin/dev

内容:

#!/usr/bin/env bash
set -e

if [ $# -lt 1 ]; then
    echo "Usage: dev <project>"
    exit 1
fi

DIR="$HOME/$1"

[ -d "$DIR" ] || { echo "Project not found"; exit 1; }

SESSION=$(basename "$DIR")

cd "$DIR"

if tmux has-session -t "$SESSION" 2>/dev/null; then
    exec tmux attach-session -t "$SESSION"
fi

tmux new-session -d -s "$SESSION" -c "$DIR"
tmux send-keys -t "$SESSION" "claude -c" C-m
exec tmux attach-session -t "$SESSION"

授权:

chmod +x ~/bin/dev

九、PATH

查看:

echo $PATH

我发现没有:

/home/exfeitu/bin

因此编辑:

code ~/.bashrc

追加:

export PATH="$HOME/bin:$PATH"

重新加载:

source ~/.bashrc

十、项目快捷命令

编辑:

code ~/.bash_aliases

例如:

alias ljh='dev LittleJobHelper'

以后电脑:

ljh

即可恢复开发环境。


十一、手机配置

Termius 新建 Snippet。

内容:

wsl
ljh

以后:

连接 HomePC
    ↓
Snippet
    ↓
ljh

自动:

  • 进入 WSL
  • 进入项目
  • 恢复 tmux
  • 恢复 Claude

十二、踩坑记录

1. SSH 登录失败

原因:

Windows SSH 登录需要 Windows 用户密码。

不是 PIN。


2. icacls 参数错误

执行:

icacls ...

提示:

无效参数“/grant:r”

最终发现并不是权限导致的问题。

实际上公钥已经正常生效。


3. authorized_keys

验证:

type $HOME\.ssh\authorized_keys

看到:

ssh-ed25519 AAAA......

即可。


4. 不要把 tmux attach 写进 .bashrc

最开始尝试:

tmux attach

写进 .bashrc

结果:

VSCode 每开一个 Terminal:

都会自动进入 tmux。

非常影响正常开发。

最终放弃。


5. 不要使用 claude --resume

我当时执行:

claude --resume

结果一直卡住。

查看:

ps -ef | grep claude

输出:

tmux new -A -s claude
...
claude.exe -c
claude.exe --resume

说明实际上已经启动了多个 Claude。

真正应该恢复的是:

ljh

或者:

dev LittleJobHelper

不要直接启动第二个 Claude。


6. 查看 tmux

验证:

tmux ls

我的输出:

LittleJobHelper: 1 windows
claude: 1 windows

后来统一为:

项目名 = tmux Session 名。

例如:

LittleJobHelper
Paper
Blog

不再使用固定的 claude Session。


十三、最终工作流

电脑:

ljh

手机:

SSH
↓
Snippet
↓
ljh

两端进入同一个 tmux,同一个 Claude 会话。


总结

这套方案具有以下优点:

  • 无需公网 IP
  • 不需要端口映射
  • 手机、电脑共享同一个 Claude
  • SSH 断开任务不断
  • 多项目互不影响
  • 一个命令恢复开发环境

目前这是我体验最好的一套 Claude Code 移动开发方案。

posted on 2026-07-01 16:21  祝你幸福  阅读(15)  评论(0)    收藏  举报

导航