Redock User Setup Guide
这份指南帮助你尽快把 Redock 连接到自己的 Mac、VPS 或开发服务器,并在手机上体验到它的核心价值:打开远程终端、进入项目目录、启动 AI coding agent、查看 Git 状态、用 Redock 内置 tmux 集成保留并恢复长时间运行的任务。
推荐的第一条快速开始路径,是先在家里同一局域网里跑通。这个路径最少配置,适合坐在客厅、躺在床上,先体验 Redock 能不能让你用 iPhone 或 iPad 连接 Mac、进入项目、启动 agent、看 Git 和恢复任务。
- 在 Mac 上开启 Remote Login,也就是 SSH。
- 让 iPhone 或 iPad 和 Mac 连接同一个 Wi-Fi。
- 在 Redock 添加 Host 时点击
发现本地设备,让 Redock 扫描同一局域网里的 SSH 设备并预填 Host 和 Port。 - 如果没有发现设备,再在 Mac 上查看局域网 IP,通常是
192.168.x.x,手动填到 Host,Port 填22。 - Username 填 Mac 用户名,Auth 先选 Password。
- 连接成功后进入项目目录,使用 AI coding agent、Git、Redock 内置 tmux 集成和 snippets 快速体验核心工作流。
等局域网快速开始跑通后,再根据户外、蜂窝网络、公司网络或长期远程访问需求配置 Tailscale、ngrok 或公网端口转发。不要在公网暴露弱密码 SSH。
1. 准备清单
你需要准备:
- 一台可远程登录的 Mac、Linux 主机、VPS 或 NAS。
- Redock 安装在 iPhone 或 iPad 上。
- 远程主机的登录用户名。
- 认证方式:快速开始可以先用系统登录密码;长期使用建议换成 SSH private key。
- 网络路径:同一 Wi-Fi、Tailscale、ngrok TCP tunnel,或公网 IP/端口转发。
- 可选工具:
git、tmux、claude、codex、opencode、项目依赖和包管理器。tmux只需要安装在远程主机上,Redock 负责创建、附着和恢复会话。
Redock 连接的是你的远程主机。Claude Code、Codex、opencode、Git、Node、Python、Rust 等命令也需要安装在远程主机上,而不是安装在 iPhone 上。
2. 在 Mac 上开启 Remote Login
如果你的开发机是 Mac,先开启 macOS 内置 SSH 服务。
- 打开 Mac 的 System Settings。
- 进入 General > Sharing。
- 找到 Remote Login,点击右侧信息按钮。
- 打开 Remote Login。
- 建议选择 Only these users,只允许你的开发账号远程登录。
- 记下页面中显示的 SSH 命令,格式通常是:
ssh username@hostname
如果你希望 Redock 通过 SFTP 浏览文件,Remote Login 也会开启 SFTP 能力。
你也可以在 Mac 的 Terminal 里确认自己的用户名:
whoami
查看本机 hostname:
hostname
查看当前 Wi-Fi 局域网 IP:
ipconfig getifaddr en0
如果你用有线网络,接口可能不是 en0。这时可以在 System Settings > Network 里查看当前连接的 IP 地址。
先在同一 Wi-Fi 下测试
如果你直接在 Redock 里添加 Host,可以先点击 发现本地设备。Redock 会扫描同一局域网里的 SSH 设备,发现后点选设备即可预填 Host 和 Port。iOS 弹出 Local Network 权限时需要允许,否则无法扫描局域网设备。
如果没有发现设备,或者你想手动验证,可以在另一台电脑上先试一次 SSH:
ssh username@192.168.1.23
把 username 换成 Mac 用户名,把 192.168.1.23 换成 Mac 的局域网 IP。能登录后,再把相同的 Host、Port、Username 和认证方式填进 Redock。
默认 SSH 端口是 22。
使用 SSH Key
Redock 支持生成 key,也支持导入 private key。
如果你在 Redock 里生成 key:
- 在 Redock 添加 Host 时选择 SSH Key。
- 选择 Generate Key。
- 复制 Redock 显示的 public key。
- 在 Mac 的 Terminal 中执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
pbpaste >> ~/.ssh/authorized_keys
pbpaste >> ~/.ssh/authorized_keys 会把剪贴板里的 public key 追加到 authorized_keys。确认剪贴板里是 Redock 的 public key 后再执行。
如果你导入已有 private key,需要先把对应 public key 放到远程主机的 ~/.ssh/authorized_keys。
3. 选择远程访问方式
Redock 只需要能连到主机的 SSH 地址。你可以根据场景选择以下方式。
3.1 同一 Wi-Fi 或局域网
这是最简单的快速开始方式,适合在家里、办公室、同一个热点下使用。典型场景是在客厅、床上或离开书桌时,用 iPhone 或 iPad 连回同一 Wi-Fi 下的 Mac,先快速体验 Redock 的核心工作流。
Redock Host 配置:
- Host: 优先点
发现本地设备预填;也可以手动填 Mac 的局域网 IP,例如192.168.1.23 - Port:
22 - Username: Mac 用户名
- Auth: Password。跑通后建议改成 SSH Key
- Connection Mode: SSH
优点是配置少、延迟低,最适合第一次验证产品价值。局域网发现能进一步减少手动查 IP 和填端口的步骤。缺点是离开同一个网络后无法连接,且局域网 IP 可能变化。
如果你的路由器支持 DHCP reservation,可以给 Mac 固定一个局域网 IP。
3.2 Tailscale
当你已经在同一 Wi-Fi 下跑通 Redock,并且希望在户外、蜂窝网络、公司网络或不同城市继续连接 Mac 时,推荐使用 Tailscale。它不是把 SSH 直接暴露到公网,而是让你的 iPhone、iPad、Mac、VPS 加入同一个私有 tailnet。Redock 通过 Tailscale IP 或 MagicDNS 名称连接 Mac 的普通 SSH 服务。
设置步骤
- 在 Mac 安装 Tailscale 并登录。
- 在 iPhone 或 iPad 安装 Tailscale 并登录同一个账号或同一个 tailnet。
- 确认两台设备都显示 Connected。
- 在 Mac 上保持 Remote Login 开启。
- 在 Tailscale 的 Machines 页面或客户端里找到 Mac 的 Tailscale IP,通常是
100.x.y.z。 - 如果 MagicDNS 已开启,也可以使用机器名,例如
my-mac或完整 tailnet 域名。
Redock Host 配置:
- Host: Mac 的 Tailscale IP,例如
100.72.10.25,或 MagicDNS 名称 - Port:
22 - Username: Mac 用户名
- Auth: Password 或 SSH Key
- Connection Mode: SSH
关于 Tailscale SSH
Tailscale SSH 是 Tailscale 自己管理 SSH 认证和授权的功能,和 macOS Remote Login 加 SSH 密码/key 的路径不同。
Redock 的最稳妥配置是:
- 用 Tailscale 提供网络连通性。
- 用 Mac Remote Login 提供标准 SSH 服务。
- 在 Redock 里继续使用普通 SSH username、password 或 key。
只有当你已经清楚 Tailscale SSH 的认证行为,并确认当前 SSH 客户端配置兼容时,再考虑启用 Tailscale SSH。
适合场景
- 经常在蜂窝网络和 Wi-Fi 之间切换。
- 不想在路由器上做端口转发。
- 不想把 SSH 端口暴露到公网。
- 需要稳定访问家里的 Mac、办公室主机或私有服务器。
3.3 ngrok TCP tunnel
ngrok 适合临时把本机 SSH 暴露成一个公网 TCP 地址。例如你在外面想快速连接家里的 Mac,或者给一台没有公网 IP 的机器做短时间远程访问。
注意:ngrok 的 TCP endpoint 会形成公网入口。请使用强密码或 SSH key,并只在需要时开启。
ngrok 的 TCP endpoint 可用性和固定地址能力受账号套餐影响。当前 ngrok 文档说明,free plan 使用 TCP endpoint 需要添加有效付款方式;如果命令提示无法创建 TCP endpoint,先检查 ngrok Dashboard 里的账号、套餐和付款方式状态。
设置步骤
在 Mac 上安装 ngrok,并把账号 authtoken 配到本机:
brew install ngrok
ngrok config add-authtoken YOUR_NGROK_AUTHTOKEN
开启指向本机 SSH 的 TCP tunnel:
ngrok tcp 22
ngrok 会显示类似这样的 forwarding 地址:
Forwarding tcp://0.tcp.ngrok.io:12345 -> localhost:22
Redock Host 配置:
- Host:
0.tcp.ngrok.io - Port:
12345 - Username: Mac 用户名
- Auth: Password 或 SSH Key
- Connection Mode: SSH
这里的 Host 不要包含 tcp://,Port 要单独填写 ngrok 显示的端口。
保持 ngrok 稳定
免费或随机 TCP 地址可能会变化。每次地址变化后,你需要更新 Redock Host。
如果你希望地址稳定,可以在 ngrok 配置 reserved TCP address,或把 ngrok agent 安装为后台服务。是否可用取决于你的 ngrok 账号和套餐。
3.4 路由器端口转发或公网 IP
如果你的 Mac 或服务器有公网 IP,或者你能配置路由器端口转发,也可以让 Redock 直接连接公网 SSH。
不建议新手优先使用这种方式。公网 SSH 会持续暴露在互联网上,安全配置必须更严格。
典型配置:
- Mac 开启 Remote Login。
- 路由器把外部端口转发到 Mac 的
22端口。 - Redock 填公网域名/IP 和外部端口。
例如:
- Public endpoint:
home.example.com:2222 - Router forwarding:
home.example.com:2222 -> 192.168.1.23:22 - Redock Host:
home.example.com - Redock Port:
2222
建议:
- 优先使用 SSH Key。
- 限制 Remote Login 用户。
- 不要允许弱密码。
- 保持 macOS 和路由器固件更新。
- 能用 Tailscale 时,优先用 Tailscale。
4. 在 Redock 添加 Host
打开 Redock 后:
- 进入 Launch。
- 添加一个 Host。
- 填写 Name,例如
MacBook Pro、Home Mac、VPS。 - 填写 Host 和 Port。
- 填写 Username。
- Connection Mode 先选择 SSH。
- 选择 Password 或 SSH Key。
- 如果希望会话可快速恢复,打开 Host 里的 tmux 配置,前提是远程主机已安装
tmux。 - 保存并连接。
第一次设置建议先用 SSH。Mosh 更适合移动网络和弱网漫游,但需要远程主机安装 mosh,并开放 mosh 使用的 UDP 端口范围。等 SSH 跑通后再启用 Mosh 会更容易排查问题。
5. 第一次体验 Redock 的价值
连接成功后,可以按下面路径体验。
进入项目目录
cd ~/Projects/your-project
如果项目用 Git 管理:
git status
git branch
git pull
启动 AI coding agent
根据你在远程主机上安装的工具选择一个:
claude
codex
opencode
如果已经有上次会话,可以用对应的 resume 命令或 slash command。Redock 的 AI coding agent snippets 已内置常用输入,例如:
/resume
/status
/model
/exit
不同 agent 的具体命令可能不同,Redock 的 snippet 只是快速输入,不会替你判断当前工具是否支持该命令。
选择 Action 运行方式
Action 是 Redock 里保存常用命令的入口。创建或编辑 Action 时,需要选择运行方式:
终端交互:打开终端工作区,并保留会话给你继续输入。适合启动 Claude Code、Codex、opencode、长期 shell、REPL、日志跟随、需要持续对话或手动干预的命令。如果这个 Action 是 agent 入口,通常优先选这个模式。快速任务:通过 SSH 发起命令,等待远端执行完成,并把输出保存成 Run 记录。适合短脚本、健康检查、git status、npm test、pytest、部署前检查、清理脚本等有明确结束点的任务。它不会变成终端会话,适合“点一下、看结果”的工作。后台长任务:在远端 tmux 中启动命令并保存日志,手机断开后也能继续运行。适合构建、长测试、批处理、服务启动、长时间 agent run、数据迁移等可能跑很久的任务。远程 Host 需要已安装tmux;启动后可以在 Run 详情里打开后台会话或查看保存的日志。
选择原则:
- 需要继续输入、和 agent 对话、查看实时终端状态:选
终端交互。 - 命令会很快结束,只关心退出状态和输出记录:选
快速任务。 - 命令会跑很久,希望离开 Redock 后继续执行:选
后台长任务。
使用 Git snippets
Redock 的 Git tab 适合在手机上快速输入高频命令:
git status
git diff
git log --oneline --decorate --graph -20
git add .
git commit -m ""
git pull --rebase
git push
在手机上执行 destructive command 前先确认当前目录和分支,例如 git reset --hard、git clean -fd 这类命令不建议做成随手点击的 snippet。
使用 Redock 内置 tmux 保留任务
如果远程主机安装了 tmux,在 Host 设置里开启 tmux 后,Redock 会在连接时提供 tmux 会话入口。你不需要手动输入 tmux new 或 tmux attach 才能使用基础恢复能力。
开启后,Redock 会根据当前 Host、Project 或 Action 上下文:
- 在有可恢复会话时显示连接 picker,快速回到已有 tmux session。
- 在没有会话时创建新的 tmux session,并把它和当前工作上下文关联起来。
- 在重新连接时优先恢复原来的 tmux runtime,长任务不会因为手机切到后台或网络短暂断开就立即丢失。
- 内置常用 tmux snippets,适合在需要时快速输入分屏、切换 pane 等命令。
适合在一个 pane 里跑 agent,在另一个 pane 里看 logs、执行 tests 或查看 Git diff。高级用户仍然可以在终端里直接输入 tmux 命令,但日常创建、附着和恢复建议优先使用 Redock 的 Host tmux 开关与连接 picker。
6. 配置语音输入
Redock 的语音输入会把录音转成文字,并放进终端底部输入区。你可以先检查、修改,再按 Return 或发送按钮写入 shell。它适合:
- 在手机上输入较长的 agent prompt。
- 快速口述 Git commit message、测试计划或报错上下文。
- 在不方便打字时输入自然语言说明,再交给 Claude Code、Codex 或 opencode 等远程主机上的 agent。
默认的 Apple 语音不需要 API Key,适合简单中文或英文听写。但它对中文、英文、代码符号、命令名混杂的场景不够智能,可能无法稳定区分多语言夹杂内容。如果你经常口述 agent prompt、命令说明或中英混合内容,可以在 My / Speech 里切换到大模型语音供应商。
当前 Redock 支持:
Apple:系统语音识别,不需要额外配置。OpenAI:使用 OpenAI speech-to-text 模型,适合多语言、技术词和较复杂口述。火山方舟 - 豆包:使用火山引擎豆包语音识别大模型,适合中文和中英混合场景。OpenAI 兼容:如果你有兼容 OpenAI transcription API 的供应商,可以填写 Base URL、模型名和 API Key 自行测试。
API Key 会保存在 Apple Keychain。免费或本地模式下只保存在本机;Pro 且开启 iCloud 同步后,可通过 iCloud Keychain 在同账号设备间同步。
配置 OpenAI 语音
- 打开 OpenAI Platform 的 API Keys 页面。
- 创建一个新的 secret key,或使用已有的可用 key。
- 确认账号或项目有可用额度。
- 在 Redock 打开
My / Speech。 - 将
Speech Provider设为OpenAI。 - 选择模型:
Fast Transcribe:默认选项,对应gpt-4o-mini-transcribe,速度和成本更适合日常输入。Accurate Transcribe:对应gpt-4o-transcribe,更适合准确率优先的场景。Diarize:对应gpt-4o-transcribe-diarize,主要用于区分说话人;单人终端输入通常不需要。
- 将 OpenAI API Key 粘贴到
API Key。 - 回到终端工作区,点击语音按钮录音,停止后检查转写结果再发送。
配置火山豆包语音
- 登录火山引擎控制台,进入豆包语音控制台。
- 开通语音识别大模型相关服务,确认可使用录音文件极速版识别能力。
- 在控制台获取
APP Key。 - 确认资源 ID。Redock 默认使用:
volc.bigasr.auc_turbo
- 在 Redock 打开
My / Speech。 - 将
Speech Provider设为火山方舟 - 豆包。 - 将
Resource ID填为控制台可用的资源 ID。一般先用默认值。 - 将
APP Key填为火山控制台获取的 key。 - 回到终端工作区,点击语音按钮录音并测试。
如果你更喜欢其他语音供应商,或者已经在使用某个转写服务,可以通过 Redock 的反馈入口告诉我们。我们会优先评估用户实际需要的 provider。
7. 常见问题排查
Connection refused
通常表示目标地址能访问,但 SSH 服务没有在该端口监听。
检查:
- Mac Remote Login 是否打开。
- Redock Port 是否正确,默认是
22。 - ngrok tunnel 是否还在运行。
- 路由器端口转发是否指向正确内网 IP。
Connection timed out
通常表示网络路径不通。
检查:
- iPhone 是否连上 Tailscale。
- Mac 是否连上 Tailscale。
- Host 是否填成了错误 IP。
- 蜂窝网络或公司网络是否阻断相关连接。
- ngrok forwarding 地址是否已经变化。
Authentication failed
通常是用户名、密码或 key 不匹配。
检查:
- Username 是否是远程主机的系统用户名,而不是 Apple ID、邮箱或设备名。
- Password 是否是远程主机账号密码。
- Redock public key 是否已追加到远程主机
~/.ssh/authorized_keys。 ~/.ssh和authorized_keys权限是否正确。
Hostname 无法解析
如果 my-mac.local、MagicDNS 名称或自定义域名不稳定,先改用 IP 地址验证。
Tailscale 场景下,优先尝试 100.x.y.z 的 Tailscale IP。等连接稳定后,再切换成 MagicDNS 名称。
AI agent 命令不存在
Redock 只是连接远程主机。请在远程主机上安装相应命令:
which claude
which codex
which opencode
如果命令不存在,需要在远程主机安装对应工具,并确认 shell 的 PATH 对非交互或登录 shell 生效。
tmux 命令不存在
在 Mac 上可以用 Homebrew 安装:
brew install tmux
Linux 上根据发行版使用对应包管理器,例如:
sudo apt install tmux
安装后回到 Redock 的 Host 设置开启 tmux。基础创建、附着和恢复不需要手动输入 tmux 命令;如果连接 picker 里没有看到 tmux 会话,先确认该 Host 的 tmux 配置已开启。
语音转写失败或不准确
检查:
- iOS 是否允许 Redock 使用麦克风。
- 使用 Apple 语音时,iOS 是否允许 Speech Recognition 权限。
- 使用 OpenAI 或火山豆包时,
My / Speech中是否已选择对应供应商并填写 API Key。 - OpenAI 或火山账号是否有可用额度、权限或资源 ID。
- 中英混合、命令名、路径、代码符号较多时,优先尝试 OpenAI 或火山豆包这类大模型语音供应商。
8. 推荐配置组合
个人 Mac 日常开发
- 网络:同一 Wi-Fi 或局域网
- Redock Connection Mode:SSH
- Auth:Password 起步,长期建议 SSH Key
- Session:在 Host 中开启 Redock tmux
- 工作方式:在家里客厅、床上或离开书桌时,先用
发现本地设备预填 Host,或用192.168.x.x连回 Mac,快速进入项目、打开 agent、查看 Git 和恢复 tmux session。
这是最适合第一次体验的组合。它不需要额外网络服务,能最快验证 Redock 是否适合你的移动开发工作流。
户外或跨网络访问个人 Mac
- 网络:Tailscale
- Redock Connection Mode:SSH
- Auth:SSH Key
- Session:在 Host 中开启 Redock tmux
- 工作方式:让 Redock 为常用项目创建并恢复 tmux session,手机上从连接 picker 快速回到现场。
这是最推荐的长期远程访问组合。它避免公网暴露 SSH,也适合在移动网络下使用。
临时访问家里或办公室 Mac
- 网络:ngrok TCP tunnel
- Redock Connection Mode:SSH
- Auth:SSH Key
- 注意:用完关闭 ngrok。
适合短时间使用。如果需要长期稳定访问,换成 Tailscale 或固定公网方案。
VPS 或云服务器
- 网络:公网 IP 或域名
- Redock Connection Mode:SSH
- Auth:SSH Key
- Session:在 Host 中开启 Redock tmux
- 安全:限制 SSH 用户、关闭弱密码、保持系统更新。
VPS 通常天然有公网 IP,关键是做好 SSH 安全。
9. 最佳实践
- 优先用 Tailscale 做日常远程访问,减少公网 SSH 暴露。
- 公网访问优先使用 SSH Key,不要依赖弱密码。
- 在 macOS Remote Login 里选择 Only these users,只开放需要的账号。
- 给常用主机建立清晰名称,例如
Home Mac - Tailscale、VPS - Prod。 - 地址不同就建不同 Host,例如 LAN、Tailscale、ngrok 分开保存,避免来回改 Host。
- 在 Host 中开启 Redock tmux,让长任务跑在可恢复的 tmux session 里,不要依赖手机连接一直不断。
- 一个项目一个固定目录,进入后再启动 agent、Git 和 tests。
- 常用命令做成 snippets 或 quick actions,但 destructive command 需要保留手动确认空间。
- 在手机网络不稳定时,先确认当前目录、分支和连接状态;需要恢复长任务时,从连接 picker 重新进入对应 tmux session。
- 远程 Mac 需要保持开机和联网。必要时调整电源设置,避免睡眠后无法连接。
- 不要在公共设备或不可信网络里保存不必要的 SSH 凭据。
10. 官方参考
- Apple: Allow a remote computer to access your Mac
- OpenAI: Where do I find my OpenAI API Key?
- OpenAI: Speech to text
- 火山引擎: 大模型录音文件极速版识别 API
- 火山引擎: 豆包语音 API Key 使用
- ngrok: Using ngrok with SSH
- ngrok: TCP Agent Endpoints
- ngrok: ngrok Agent
- Tailscale: Tailscale quickstart
- Tailscale: Install Tailscale on macOS
- Tailscale: Install Tailscale on iOS
- Tailscale: MagicDNS
- Tailscale: Tailscale SSH