需求:服务器没有完整的桌面环境, 而某些软件需要图形界面观察效果。
维基介绍:X窗口系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统
环境说明
windows10下显示图形界面, 远程服务器为centos7, windows下远程软件为MobaXterm 或vcxsrv+xshell 或 vcxsrv+pycharm (vcxsrv可以使用Xming代替)
附带安装chromium浏览器和字体方法

准备工作

安装 X11 转发相关软件

sudo yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock

启用 X11 Forwarding

sudo vim /etc/ssh/sshd_config, 更改为如下: (只修改 X11UseLocalhost 和 X11Forwarding )

X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
X11UseLocalhost no

重启 sshd 服务

sudo systemctl restart sshd.service

查看当前显示变量

echo $DISPLAY

我这里是连接远程服务器(私网在外层映射到公网), 显示的结果如下, ip与ifconfig里eth0网卡的一样.

10.140.0.2:10.0
DISPLAY设置
DISPLAY设置

方案一(MobaXterm)

MobaXterm一个软件一步到位, 集成x11服务端, linux上的为x11客户端
未用过x11的可以先下载MobaXterm便携版用来测试
mobaxterm官网
MobaXterm便携版10.9下载地址
[MobaXterm安装版10.9下载地址]
如果服务器设置正确,X11-forwarding和DISPLAY会有绿色勾,如下图:

MobaXterm
MobaXterm

方案二(vcxsrv & xshell)

vcxsrv和xshell配合显示图形界面, vcxsrv作为x11服务端, xshell中转图形数据到vcxsrv
VcXsrv Windows X Server下载地址

windows端下载安装vcxsrv
第一次运行vcxsrv时使用开始菜单里面的XLaunch来启动, 产生一个初始的配置文件. 对于简单的使用来说, 不需要任何特殊的配置, 一切使用默认即可. 需要记住的是下图中标示出的”Display number”中的数字, 此处使用默认的, 最后一步中的Save configuration可以把这个设置保存为一个文件, 以后每次用这个设置只需运行该文件, 而不用每次都重新配置

xshell里点文件–>属性–>ssh隧道–>x11转移–>X DISPLAY–>设置为如下(默认的localhost:0.0也可):

127.0.0.1:0.0
xshell设置
xshell设置

方案三(vcxsrv & pycharm)

vcxsrv和pycharm配合显示图形界面, vcxsrv作为x11服务端, pycharm中转图形数据到vcxsrv

方法一(麻烦,精确控制)
Pycharm->Preferences->Build, Execution, Deployment->Console->Python Console,点击Environment variables后面的…,添加我们刚刚看到的DISPLAY变量

在run configuration里面还要设置一遍:
点击运行按钮左边的下拉三角形->edit configurations ;
选中我们运行的configuration,我这里是test,点右边的Environment variables的…添加一个DISPLAY变量,我这里是localhost:10.0

方法二(最方便)
在linux的全局变量里 /etc/bashrc或者~/.bashrc设置以下就不用在pycharm每个文件run configuration里设置一遍(pycharm里就不用执行上述步骤设置环境变量了)

export DISPLAY=127.0.0.1:10.0

测试显示

以下会显示图形数字时钟,如果设置正确:

xclock
xclock
xclock

安装字体

如果使用浏览器等用到字体的软件会显示乱码, 解决办法, 安装英文与中文字体:
sudo yum -y install dejavu-sans-mono-fonts wqy-zenhei-fonts

如果需要微软雅黑字体或其它指定字体, 请参考以下文章:
Linux CentOS 7 安装字体库 & 中文字体

更新字体缓存命令,不输入也可:

fc-cache -fv

安装chromium浏览器

(epel源里没有chrome但有chromium)

安装epel源:

sudo yum install epel-release

正式安装chromium和chromedriver,chromedriver为selenium要用到的, 不需要可以不装.

sudo yum -y install chromium chromedriver

启动chromium浏览器的命令为chromium-browser建议设置alias
输入命令验证chromedriver安装版本chromedriver
此处Chromium版本为 57, ChromeDriver版本为 2.37

chromium
chromium

浏览器很耗费内存资源, 512m内存服务器会很卡. x11转发方式效率不高, 即使是在局域网内使用也是有卡顿感, 如果是长期大量使用桌面环境可以考虑使用vnc方式代替.