442 字
2 分钟
X11转发
2025-11-30

X11 Forwarding 配置 (Ubuntu -> macOS)#

本文档记录了如何通过 SSH 将 Ubuntu(X Client)上的图形界面应用转发至 macOS(X Server)上显示。主要适用于容器环境或远程 SSH 连接场景。

核心概念#

在 X Window System 架构中,角色定义如下:

角色操作系统职责
X ClientUbuntu运行应用程序(计算端)
X ServermacOS提供显示服务和输入设备(显示端)

1. Server 端配置 (macOS)#

macOS 没有原生 X Server,需安装 XQuartz 作为替代。

1.1 安装 XQuartz#

Terminal window
brew install --cask xquartz

注意:安装完成后,必须 注销并重新登录重启电脑,以使 $DISPLAY 环境变量生效。

1.2 配置权限#

  1. 启动 XQuartz
  2. 进入 偏好设置 (Preferences) -> 安全性 (Security)
  3. 勾选 “Allow connections from network clients” (允许来自网络客户端的连接)。

2. Client 端配置 (Ubuntu)#

2.1 安装必要组件#

安装 X11 认证工具、SSH 服务及必要的渲染库:

Terminal window
sudo apt update
sudo apt install xauth openssh-server
sudo apt install libxrender1 libxtst6 libxi6

2.2 修改 SSH 配置#

编辑 /etc/ssh/sshd_config 文件,确保以下配置项未被注释且设置为正确的值:

Terminal window
X11Forwarding yes
X11DisplayOffset 10

2.3 重启 SSH 服务#

Terminal window
sudo systemctl restart ssh

3. 建立连接与验证#

3.1 发起 SSH 连接#

使用带有 X11 转发参数的命令连接到 Ubuntu:

Terminal window
# 格式: ssh -Y -C user@ip
ssh -Y -C user@192.168.137.121

参数说明:

参数含义作用
-YTrusted X11 Forwarding启用受信任的 X11 转发(解决部分权限问题)
-CCompression开启数据压缩,优化传输性能

3.2 验证测试#

连接成功后,在 SSH 终端中启动图形界面应用(如 xeyes)进行测试:

Terminal window
xeyes

预期结果: macOS 端的 XQuartz 会自动被唤起,并在桌面上显示一双跟随鼠标移动的眼睛,即表示 X11 转发配置成功。

X11转发
https://hyrsoft.github.io/posts/tools/x11转发/
作者
好软好温暖
发布于
2025-11-30
许可协议
CC BY-NC-SA 4.0