文号
952525
阅读
84
回复
1
收藏
0
SSH X11 Forwarding 远程应用程序 GUI 转发至本地
2026/10/14
IP:四川
关键词:X11,XServer,XClient

首先确认 /etc/ssh/sshd_config 是否已经配置 X11Forwarding yes 参数,在该参数如果设置为 no 时,即使使用 ssh -X 将也无法完成转发, 同时还需要注意如下两个参数(一般情况下可直接忽略):


  • X11DisplayOffset

对于 X11DisplayOffset 10这个参数,一般情况下是默认注释的,不用修改,该参数作用为设置X11显示号的起始偏移量,比如当前 10 则代表从 :10.0 开始分配,从 10 开始的目的是因为正常本地的 X11 服务器都是从 :0 开始。

  • X11UseLocalhost

一般情况下,对于 X11UseLocalhost yes 这个参数同样是是默认注释的,不用修改,该参数是控制作用域的范围,如果为 yes 时,则代表监听 0.0.0.0,否则监听 127.0.0.1,该参数根据需要自行处理。


安装 VcXsrv

VcXsrv 是 Windows平台上的 X11 服务器实现(包含 XServer 与 XClient),地址为 , 前往 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 二进制源码包,按照如下安装即可。

通常 X Server 负责显示图形并接收输入,X Client是负责图形程序本身,也就是需要运行的远程软件。

对于安装完成后推荐先配置环境变量,该变量可以持久化配置或直接临时配置,这都是可以的,环境变量信息如下。

# PowerShell
$env:DISPLAY='localhost:0.0'

# CMD
set DISPLAY=localhost:0.0

# 如持久使用推荐直接用户环境变量配置如上的键值对

启动 VcXsrv

启动 XLaunch 后,推荐选择 Multiple windows 并点击 下一步

image.jpg


客户端启动则推荐选择 Start no client, 因为我们仅仅只需要 X Server, 然后点击 下一步

image.jpg

高级设置中,推荐保持如下默认即可,再次点击 下一步 后再点击 下一步,然后点击 完成 即完成了配置

image.jpg


注意,如有弹出如下提示,推荐直接放行

image.jpg


运行测试

接下来连接远端即可, 对于 Linux 桌面版通常自带了 X Server 与 X Client, 对于下方命令中的 xclock 与 xeyes 通常默认是没有的,这两个只是一个测试应用,如想要使用则根据远端发行版直接安装对应的 x11-apps 或 xorg-x11-apps 到远端即可,例如 Debian/Ubuntu 系则直接 sudo apt install x11-apps 即可安装。

# 注意, 本处 -C 参数是为了开启 GZIP 压缩节省带宽; -Y 则代表受信任模式, 如果要安全可以将其替换为 -X, 但是可能导致某些程序无法显示
ssh -C -Y super@10.255.255.5

# 验证远端, 如果输出类似 localhost:10.0 之类的则说明已经正确识别
echo $DISPLAY

# 执行 xclock 传输测试, 与下方二选一即可
xclock

# 执行 xeyes 传输测试, 与上方二选一即可
xeyes


示例测试 1 : xclock

image.jpg


示例测试 2 : xeyes

image.jpg


示例测试 3 : vivado

image.jpg





4天17时前IP:上海
952634
1楼

对于某些Linux发行版,转发X11会导致现有的用户图形界面异常,尤其是开了多个用户桌面的时候。。。

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的