SSH通过X11协议在Linux服务器运行GUI程序

Kevin 教程 869 次浏览 1条评论

最近在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程序,通常会有如下报错。

[root@test ~]# ./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

参考及延伸资料:

  • https://zeroto.one/2018/08/13/linux_x11_config/
  • https://www.cnblogs.com/tsfh/p/9022170.html
  • http://blog.creke.net/810.html

评论列表

  1. #1

    Hi, very nice website, cheers!
    ——————————————————
    Need cheap and reliable hosting? Our shared plans start at $10 for an year and VPS plans for $6/Mo.
    ——————————————————
    Check here: https://www.reliable-webhosting.com/

发表评论

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