442 字
2 分钟
X11转发
X11 Forwarding 配置 (Ubuntu -> macOS)
本文档记录了如何通过 SSH 将 Ubuntu(X Client)上的图形界面应用转发至 macOS(X Server)上显示。主要适用于容器环境或远程 SSH 连接场景。
核心概念
在 X Window System 架构中,角色定义如下:
| 角色 | 操作系统 | 职责 |
|---|---|---|
| X Client | Ubuntu | 运行应用程序(计算端) |
| X Server | macOS | 提供显示服务和输入设备(显示端) |
1. Server 端配置 (macOS)
macOS 没有原生 X Server,需安装 XQuartz 作为替代。
1.1 安装 XQuartz
brew install --cask xquartz注意:安装完成后,必须 注销并重新登录 或 重启电脑,以使
$DISPLAY环境变量生效。
1.2 配置权限
- 启动 XQuartz。
- 进入 偏好设置 (Preferences) -> 安全性 (Security)。
- 勾选 “Allow connections from network clients” (允许来自网络客户端的连接)。
2. Client 端配置 (Ubuntu)
2.1 安装必要组件
安装 X11 认证工具、SSH 服务及必要的渲染库:
sudo apt updatesudo apt install xauth openssh-serversudo apt install libxrender1 libxtst6 libxi62.2 修改 SSH 配置
编辑 /etc/ssh/sshd_config 文件,确保以下配置项未被注释且设置为正确的值:
X11Forwarding yesX11DisplayOffset 102.3 重启 SSH 服务
sudo systemctl restart ssh3. 建立连接与验证
3.1 发起 SSH 连接
使用带有 X11 转发参数的命令连接到 Ubuntu:
# 格式: ssh -Y -C user@ipssh -Y -C user@192.168.137.121参数说明:
| 参数 | 含义 | 作用 |
|---|---|---|
-Y | Trusted X11 Forwarding | 启用受信任的 X11 转发(解决部分权限问题) |
-C | Compression | 开启数据压缩,优化传输性能 |
3.2 验证测试
连接成功后,在 SSH 终端中启动图形界面应用(如 xeyes)进行测试:
xeyes预期结果: macOS 端的 XQuartz 会自动被唤起,并在桌面上显示一双跟随鼠标移动的眼睛,即表示 X11 转发配置成功。