# tmux - SSH 多设备共享终端窗口教程 > Mac 上启动 tmux,让 Windows、鸿蒙、Android、iOS 共享同一个 SSH 终端窗口 # tmux 使用教程:一个 SSH 窗口共享给多台设备 tmux 是一个经典的终端复用器,特别适合 SSH 场景:断线后程序不中断,多台设备可以进入同一个终端会话,看到相同内容,也可以按权限选择只读观看或共同操作。 ## 官方资料 GitHub 官方仓库:https://github.com/tmux/tmux 官方 Wiki:https://github.com/tmux/tmux/wiki 官方 Getting Started:https://github.com/tmux/tmux/wiki/Getting-Started 官方安装说明:https://github.com/tmux/tmux/wiki/Installing 截至 2026-08-14,tmux 官方 Wiki 首页显示的最新版本是 `tmux 3.7b`。官方 Getting Started 也明确把 tmux 的典型用途写成两类:一是保护远程服务器上的程序不受 SSH 断线影响,二是让远程服务器上的程序可以从多台本地电脑访问。 ## 先理解 shared 是什么 下面命令里的 `shared` 不是固定关键字,它是你自己起的 tmux 会话名,也可以理解成这个共享终端窗口的名字。 比如创建一个叫 `shared` 的会话: ```bash tmux new -s shared ``` 也可以换成你喜欢的名字: ```bash tmux new -s macshare tmux new -s work tmux new -s claude ``` 以后其他设备加入时,要使用同一个名字: ```bash tmux attach -t shared tmux attach -t macshare ``` 简单记法: ```text tmux new -s 名字 # 创建共享终端 tmux attach -t 名字 # 加入共享终端 ``` ## 适合什么场景 比如你有: - 一台 Mac mini 作为主机 - 一台 Windows PC - 一台鸿蒙 / Android 手机 - 一台 iPhone / iPad 推荐做法是:在 Mac 上运行 tmux,其他设备通过 SSH 连到 Mac,再 attach 到同一个 tmux 会话。 结构如下: ```text Mac 上运行 tmux shared ↑ Windows / 鸿蒙 / Android / iOS / iPadOS 通过 SSH 加入 ``` 关键点:tmux 安装在承载终端会话的主机上。也就是说,如果 Mac 是主机,只需要 Mac 安装 tmux;Windows、手机、iPad 只需要 SSH 客户端。 ## 安装 tmux ### macOS 安装 macOS 推荐用 Homebrew: ```bash brew install tmux ``` 确认安装成功: ```bash tmux -V ``` ### Linux 安装 Ubuntu / Debian: ```bash sudo apt update sudo apt install tmux -y ``` CentOS / Rocky / AlmaLinux: ```bash sudo yum install tmux -y ``` Fedora: ```bash sudo dnf install tmux -y ``` Arch Linux: ```bash sudo pacman -S tmux ``` 确认安装成功: ```bash tmux -V ``` ## 情景一:Mac 本机直接开终端,再共享给多台设备 这是最常用、也最推荐的方式。你坐在 Mac 前操作,Windows、鸿蒙、Android、iOS、iPadOS 等设备通过 SSH 加入同一个终端。 先在 Mac 上开启 SSH: ```text 系统设置 -> 通用 -> 共享 -> 远程登录 ``` 查看 Mac 局域网 IP: ```bash ipconfig getifaddr en0 ``` 假设 Mac 用户名是 `macmini`,IP 是 `192.168.38.45`。 在 Mac 本机 Terminal / iTerm2 里直接创建共享会话: ```bash tmux new -s shared ``` 这里的 `shared` 就是会话名。你也可以换成 `macshare`: ```bash tmux new -s macshare ``` 然后其他设备 SSH 到 Mac: ```bash ssh macmini@192.168.38.45 ``` 加入共享窗口: ```bash tmux attach -t shared ``` 如果你创建时用的是 `macshare`,加入时也要用: ```bash tmux attach -t macshare ``` 只读观看,不允许误操作: ```bash tmux attach -t shared -r ``` 这样 Mac 本机输入命令,其他设备会同步看到;其他设备如果不是只读,也可以输入命令。 ## 情景二:Windows SSH 到 Mac,再共享给多台设备 这种方式适合你主要坐在 Windows 前操作,但实际终端环境在 Mac 上。 先确认 Mac 已开启 SSH: ```text 系统设置 -> 通用 -> 共享 -> 远程登录 ``` Windows PowerShell / Windows Terminal 连接 Mac: ```powershell ssh macmini@192.168.38.45 ``` 登录成功后,在 SSH 会话里创建 tmux 共享窗口: ```bash tmux new -s shared ``` 这时 Windows 里的窗口其实是 Mac 上的 tmux 会话。其他设备也 SSH 到 Mac: ```bash ssh macmini@192.168.38.45 ``` 然后加入同一个窗口: ```bash tmux attach -t shared ``` 只读观看: ```bash tmux attach -t shared -r ``` ## 常用命令 创建会话: ```bash tmux new -s shared ``` 创建一个自定义名称的会话: ```bash tmux new -s macshare ``` 查看所有会话: ```bash tmux ls ``` 加入已有会话: ```bash tmux attach -t shared ``` 只读加入: ```bash tmux attach -t shared -r ``` 退出当前设备但保留会话: ```text Ctrl+b,然后按 d ``` 关闭指定会话: ```bash tmux kill-session -t shared ``` 重命名会话: ```bash tmux rename-session -t shared work ``` 新建窗口: ```text Ctrl+b,然后按 c ``` 切换下一个窗口: ```text Ctrl+b,然后按 n ``` 切换上一个窗口: ```text Ctrl+b,然后按 p ``` 水平分屏: ```text Ctrl+b,然后按 " ``` 垂直分屏: ```text Ctrl+b,然后按 % ``` 切换面板: ```text Ctrl+b,然后按方向键 ``` 关闭当前面板: ```bash exit ``` ## 常见提示是什么意思 如果执行: ```bash tmux attach -t shared ``` 看到: ```text no sessions ``` 说明当前没有任何 tmux 会话。先创建: ```bash tmux new -s shared ``` 如果执行: ```bash tmux new -s shared ``` 看到: ```text duplicate session: shared ``` 说明已经有一个叫 `shared` 的会话了,不要重复创建,直接加入: ```bash tmux attach -t shared ``` 如果看到: ```text sessions should be nested with care, unset $TMUX to force ``` 说明你已经在 tmux 里面,又想进入另一个 tmux。通常先退出当前 tmux 但保留会话: ```text Ctrl+b,然后按 d ``` 再执行 attach。 ## 推荐实践 电脑端用于操作: ```bash tmux attach -t shared ``` 手机端用于观看,建议只读: ```bash tmux attach -t shared -r ``` 如果手机屏幕太窄,可能会影响 tmux 的整体显示尺寸。手机端建议横屏、调小字体,或者只在需要时短暂接入。 ## 排查 SSH 连不上 如果手机或其他设备连不上 Mac,先检查: - Mac 是否开启了远程登录 - 用户名是否正确 - IP 是否正确 - 设备是否在同一个局域网 - 路由器是否开启了访客网络隔离 / AP 隔离 - Mac 防火墙是否拦截 SSH Mac 上确认 22 端口是否监听: ```bash sudo lsof -iTCP:22 -sTCP:LISTEN ``` 从其他设备测试: ```bash ssh macmini@192.168.38.45 ``` ## 一句话总结 谁承载共享终端,谁安装 tmux。Mac 作为主机时,tmux 放在 Mac 上;Windows、鸿蒙、Android、iOS 都只是 SSH 客户端。`shared` 只是会话名,可以换成任何你喜欢的名字,但创建和加入时必须保持一致。 --- **分类**:服务器运维 **标签**:Mac · tmux · bash **作者**:Xiao.Xi **链接**:https://octohz.com/p/2011