SSH 使用 X11 协议在服务器运行图形程序

Eric 教程 239 次浏览 抢沙发

最近在 VPS 上用到的一个 GUI 程序,没想到在无桌面环境下的 Linux 系统也能运行。网上搜索了解了一番,其原理是通过 X11 协议实现的,需要在本机及服务器两端安装软件支持。下面演示运行方法。

SSH 客户端配置

SSH 客户端不能直接呈现图形界面,需要安装 Xming 软件配合。

安装后在开始菜单程序文件夹里打开 XLaunch,设置依次默认下一步,直到这个界面勾选 NO ACCESS CONTROL 选项保存退出。

XmingNo Access Control

之后打开 SSH 客户端会话设置,勾选 X11 转发选项(笔者这里用的是 SecureCRT。PuTTY 设置里也有相关选项。Xshell 未测试,据说要安装 Xmanager)。

Forward X11 Packets

到此 SSH 客户端设置完成。如果你没用上面 SSH 客户端,可以用 MobaXterm,它内置 X11 支持。

服务器配置

笔者服务器环境为 CentOS 7 x64(Minimal)。如果直接运行 GUI 程序,会有如下报错。

[[email protected] ~]# ./FileName
./FileName: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

这个问题可以通过 yum install -y gtk2 解决。

再次运行提示 Gtk-WARNING **: cannot open display 错误,需要安装 X11 依赖包。

yum install -y xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1

之后再修改 /etc/ssh/sshd_config 文件,确保下面两个参数值改为如下。

X11Forwarding yes
X11UseLocalhost no

systemctl restart sshd 刷新 SSH 配置文件,退出终端重新登录。

重新登录有个 /root/.Xauthority 文件缺失错误,不用理会,它会自动创建,下次登录就不会提示。

运行 GUI 程序

运行个 GUI 程序试试,例如 xclock 时钟。先 yum install -y xclock 安装,然后运行 xclock 命令。

如无意外,就会显示图形界面了(记得先打开之前安装的 Xming 程序)。

Linux xclock

再运行个 Chromium 浏览器测试,用下面命令安装,然后 chromium-browser --no-sandbox 命令运行。

yum install epel-release
yum -y install chromium

Linux Chromium

如果程序界面里的文字显示乱码,运行下面命令安装字体重试。

yum install -y dejavu-sans-mono-fonts wqy-zenhei-fonts

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。