在绝多数情况下,Linux 不需要使用到GUI的桌面环境,但是有时在一些特殊的场景如安装Oracle的时候,需要有图形界面进行辅助才可以安装。

如果要使用Linux的图形界面,一般有两种方式:

1、Linux系统安装X Windows图形界面,使用vnc远程。

2、Linux系统启用X协议,配置X Clent,本地有桌面环境的机器(如Windows)配置X Server,获取远程的信息,在本地X server上显示图形界面。


方法一:

本机安装图形界面

这里以CentOS6.5的机器为例,安装图形界面比较简单,使用yum即可。

yum groupinstall "X Window System"
yum groupinstall "Desktop" 
yum groupinstall "Font"

 然后执行:

startx
#或者执行
init 5

如果要启动时自动加载图形界面,修改/etc/inittab最后一行的默认配置:

vi /etc/inittab
id:5:initdefault:    # 5 为图形模式,3 为默认字符模式


如果是CentOS7 的系统:

yum group list   #列出可用的GUI软件包
yum group install "GNOME Desktop" "Graphical Administration Tools"

修改默认运行模式(7和6不一样):

unlink /etc/systemd/system/default.target
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
reboot

配置VNC

安装vnc:

yum install tigervnc tigervnc-server -y

修改配置:

vi /etc/sysconfig/vncservers
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

设置vnc密码:

vncpasswd

启动vncserver:

vncserver &

这样,在本地就可以使用vncview远程连接到Linux图形界面。


方法二:

在Linux服务器上安装图形界面不是一种可取的方法,这样会降低服务器的性能,所以在这里重点介绍一下第二种方法。

X server 的运行原理是这样,远程的X client 做为客户端主动将数据发送到 x server服务器,X server服务器默认起始监听本地的6000端口,会根据不同客户端依次分配。X server将X client 传输的数据在本地进行处理,以图像的方式展现出来,数据传输使用的是X11协议。

这里需要先在本地电脑安装X server,可以使用比较流行的xming也可以使用VcXsrv,这两个都是开源的产品,当然如果有xmanager也能实现相同的功能。

这里我安装的是VcXsrv,使用默认的安装方式即可。

下载链接:https://sourceforge.net/projects/vcxsrv/  配置好本地设置,默认的-1 改为0 ,然后一路点击默认配置,配置完成后启动VcXsrv server。


修改ssh配置/etc/ssh/sshd_config为:

AllowTcpForwarding yes
X11Forwarding yes
X11UseLocalhost yes

重启sshd。

配置ssh,这里以xshell为例,如图:

wKiom1mdYfWB6GZiAAF9es2q9nk043.jpg

如果有xmanager可以直接选择使用xmanager,由于是使用的VcXsrv,所以选择第二项,填写的IP为安装x server的主机,也就是本地电脑IP.


使用重新连接,配置环境变量(此处为X server的IP,配置要与Xshell统一 ):

export DISPLAY=192.168.20.171:0.0
xhost +

如果安装的有xhost,执行 xhost + 此步的时候一直卡着没有输出,或者出现“xhost:  unable to open display "192.168.20.171:0.0"”,请关闭本地防火墙,并确认本地X server的配置是否正确。

执行测试:

#  yum install xclock
# xclock 
Warning: Missing charsets in String to FontSet conversion

如果此时,在本地出现一个时钟的图形就表示配置成功。也可以安装firefox的方式,执行 firefox命令就可以在本地看到浏览器界面。

这个有什么用呢,举个例子:

如本地远程安装Oracle,输入安装脚本后,会在本地自动跳出图形界面,

wKiom1mdZMSj8OQ5AAFEOf8Bp9U366.jpg

wKioL1mdZeLDaKq4AAG2r7pS2Nc179.jpg


这样就配置成功了,基本不占用服务资源。

提示:这里图形界面的显示只在当前ssh会话中生效,如果重新开启一个新的会话需要重新添加“DISPLAY”的环境变量并执行“xhost +”命令,也可以直接将此环境变量保存到本地profile文件中,这样就不必每次添加。


参考链接:

https://www.centos.org/forums/viewtopic.php?t=47088 

https://yq.aliyun.com/articles/53308