CentOS图形界面及VNC/Xmanager远程访问

CentOS图形界面及VNC/Xmanager远程访问

文章来源: 陶老师运维笔记- 微信公众号

CentOS图形界面与vnc.png

在某些特殊工作场景中(如Oracle运维),使用图形化界面操作Linux有时比命令行更加方便。 VNC和Xmanager都可以远程连接到Linux并进行图形化操作,今天给大家分享如何在Linux操作系统中安装图形界面及配置VNC/Xmanager远程桌面。

1. 实验环境

在Linux服务器上安装图形界面,在Mac/Windows客户机上远程访问Linux服务器。

IP 机器 操作系统 版本
192.10.1.8 Linux服务器 CentOS 6.6
192.10.1.2 客户机 Mac / windows -

2. 服务端篇

2.1 配置国内YUM源/EPEL源

安装软件时用国外yum源网速通常不如国内源速度快,为加快安装速度可以改用国内yum 阿里云源。
[EPEL](Extra Packages for Enterprise Linux)是由 Fedora 社区打造,现在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安装更新。

EPEL官网: https://fedoraproject.org/wiki/EPEL/zh-cn

配置阿里云源:

wget -O /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum clean all
yum makecache

2.2 检查可用组件

检查Desktop等组件是否可以安装。

#查看系统已装组件和未装组件
yum grouplist | more   
Installed Groups:
   Additional Development
   Base
...
Available Groups:
   Client management tools
   Debugging Tools
   Desktop

2.3 安装图形化界面软件

安装图形化界面Desktop,X Window System等。

Linux常用来构建服务器的,所以基本上选择Basic Server,但依实际情况也可以选择如下:

  • Desktop  :基本的桌面系统,包括常用的桌面软件,如文档查看工具。
  • Minimal Desktop :基本的桌面系统,包含的软件更少。
  • Minimal :基本的系统,不含有任何可选的软件包。
  • Basic Server  :安装的基本系统的平台支持,不包含桌面。
  • Database Server :基本系统平台,加上MySQL和PostgreSQL数据库,无桌面。
  • Web Server :基本系统平台,加上PHP,Web server,还有MySQL和PostgreSQL数据库的客户端,无桌面。
  • Virtual Host :基本系统加虚拟平台。
  • Software Development Workstation :包含软件包较多,基本系统,虚拟化平台,桌面环境,开发工具。
yum groupinstall "Desktop"  
yum groupinstall 'X Window System'  
yum groupinstall "Chinese Support"  -y 
yum install xorg-x11-xdm  -y 

说明:
若是没有外网,可以找一台可以联外网的机器把rpm软件包down下来,传到不联网机器上完成安装。(可用yum-plugin-downloadonly软件帮助实现)。详细见本文中问题处理章节

修改启动级别:(可选)
若是希望服务器以后以图形界面启动,可以修改/etc/inittab,修改系统的运行级别为5。

Linux系统启动过程: https://www.jianshu.com/p/33437df8c969
Linux系统7个运行级别:
0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
2:多用户状态(没有NFS)
3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
4:系统未使用,保留
5:X11控制台,登陆后进入图形GUI模式
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

#修改启动级别
$cp /etc/inittab  /etc/inittab.backup #备份下
$sed -i 's/id:3/id:5/' /etc/inittab
$cat /etc/inittab  
id:5:initdefault:

2.4 启动图形界面

输入startx启动图形界面。

startx &
#virt-manager &

3. 用VNC或Xmanager登录远程桌面

Xmanager及VNC都可以调用远程桌面。咱们只需要安装其中的一种就可。

VNC和Xmanager的区别:
VNC和Xmanager都可以远程连接到UNIX或Linux并进行图形化操作,但两者的工作原理并不相同。

  • VNC是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,即使操作中网络断开,也不影响操作的进行;
  • Xmanager是通过端口将主机服务器的UI界面引导到本地电脑进行展现,如果操作中网络断开,操作将失败。
    VNC剪切板内容不能跨本地和远程(同VMware没有安装VMtools的效果),而Xmanager可以(同VMware安装VMtools后的效果)。VNC只有几百K大小,Xmanager有几十M大小。
    VNC以GPL授权,衍生出了几个VNC软件: RealVNC:由VNC团队部份成员开发,分为全功能商业版及免费版。 TightVNC:强调节省带宽使用。 UltraVNC:加入了TightVNC的部份程序及加强效能的图型映射驱动程序,并结合Active Directory及NTLM的帐号密码认证,但仅有Windows版本。
    Vine Viewer:MacOSX的VNC用户端。

3.1 使用VNC登录远程桌面

VNC主要有两部分组成:vncserver和vncviewer,其中vncserver是服务器端软件,提供VNC服务,vncviewer是客户端软件,远程调用VNC服务的。即vncviewer能远程登录到vncserver所在的主机。

3.1.1 安装配置vncserver

在CentOS服务器上安装及配置vncserve。
1)安装vncserver软件

#安装软件
yum install tigervnc  tigervnc-server -y
#配置为开机自启动
chkconfig –level 345 vncserver on

2)设置vncserver密码
第一次执行会让你输入密码,至少6位,示例密码为vncadmin。后续在vncviewer连接服务器端主机中需要用到。
注意:后续可用vncpasswd命令修改密码。

$vncserver
You will require a password to access your desktops.
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/DB-132038:1.log

3)配置使用gnome桌面
配置为使用gnome桌面,修改 /root/.vnc/xstartup文件,把最后的 twm & 删掉 加上 gnome-session &

vim /root/.vnc/xstartup
#twm &
gnome-session &

4)允许root访问图形界面
允许root访问图形界面和生成新的machine-id(可选)。

#注释掉 auth       required    pam_succeed_if.so user != root quiet
cp /etc/pam.d/gdm /etc/pam.d/gdm.backup
sed -i 's/.*!= root.*/#&/' /etc/pam.d/gdm
cat  /etc/pam.d/gdm 
 #auth       required    pam_succeed_if.so user != root quiet   
#dbus-uuidgen >/var/lib/dbus/machine-id

5)启动vncserver服务
修改配置文件:
修改配置文件,/etc/sysconfig/vncservers 。

#修改配置文件,填加VNCSERVERS="1:root"
#指该服务启动时,会在root用户下配置一个VNC服务,对应的端口为1。
vim /etc/sysconfig/vncservers 
VNCSERVERS="1:root"
VNCSERVERS="2:leuser"

启动:

/etc/init.d/vncserver start

设置开机自启动:

#chkconfig --add vncserver
$chkconfig --list |grep vnc -i
vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off
#配置开机自启动
$chkconfig --level 345 vncserver on
$chkconfig --list |grep vnc -i    
vncserver       0:off   1:off   2:off   3:on    4:on    5:on    6:off

6)检查vnc服务

$ps aux|grep vnc -i
$netstat -ntlup |grep vnc
tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN      22738/Xvnc          
tcp        0      0 0.0.0.0:6002                0.0.0.0:*                   LISTEN      22738/Xvnc    

3.1.2 vncviewer登录

服务端安装配置好vncserver,咱们就可以利用vncviewer登录服务器。

安装vncviewer

  • vncviewer软件下载: https://www.realvnc.com/en/connect/download/vnc/

登录远程Server:
  输入IP:vncservers中序号,(即1:root,2:leuser ),输入前一节设置的密码vnc密码(密码vncadmin),点击“OK”即可登录。注意:Username为灰,无法填写,在该例中,输入为IP:2,即登录的是leuser账户,若输入IP:1,则为root用户。

#CentOS VNCServer配置
vim /etc/sysconfig/vncservers 
VNCSERVERS="1:root"
VNCSERVERS="2:leuser"
vncviewer

登录成功后效果:


image.png

3.2 使用Xmanager登录远程桌面

  • 软件下载: https://www.netsarang.com/zh/all-downloads/

3.2.1 服务端配置

1)配置Xmanager

cp  /etc/gdm/custom.conf   /etc/gdm/custom.conf.backup
vim /etc/gdm/custom.conf
[daemon]  
  
[security]  
AllowRoot=true  
AllowRemoteRoot=true  #允许root登录
  
[xdmcp]  
Enable=true  
Port=177  
  
[greeter]  
 
[chooser]  
  
[debug]  

2)修改xdm-config:
修改xdm-config,在尾行“DisplayManager.questPort: 0”前面加一个感叹号。

cp /etc/X11/xdm/xdm-config  /etc/X11/xdm/xdm-config.backup
cat /etc/X11/xdm/xdm-config
! DisplayManager.requestPort:   0

3)修改Xaccess
vim /etc/X11/xdm/Xaccess ,找到“#any host can get a login window”这一行,去掉这行开头的注释
找到“#any indirect host can get a chooser”这一行,去掉这行开头的注释。

$vim /etc/X11/xdm/Xaccess 
*                                       #any host can get a login window
*               CHOOSER BROADCAST       #any indirect host can get a chooser
$cat /etc/X11/xdm/Xaccess  |grep -v '^#'|grep -v '^$'

4)修改prefdm.conf
修改/etc/init/prefdm.conf文件。注释exec /etc/X11/prefdm -nodaemon,添加exec /usr/sbin/gdm

vim /etc/init/prefdm.conf
respawn limit 10 120
#exec /etc/X11/prefdm -nodaemon
exec /usr/sbin/gdm

5)关闭防火墙:

$iptables -L
#service  iptables  stop
$iptables  -A  INPUT  -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

6)重启linux 服务器
重启linux 服务器,执行reboot now。

reboot now

7)检查xdmcp服务:
由于xdmcp服务默认使用udp177端口,所以要查看xdmcp服务是否已启动。

lsof -i:177
netstat    -antpu   |   grep 177

3.2.2 Xbrowser客户端配置

安装Xbrowser客户端软件:

  • 软件下载: https://www.netsarang.com/zh/all-downloads/

远程登录:
打开Xmanager,点击Xbrowser。(建议关闭本地计算机防火墙后再使用Xmanager远程登陆。)

  • 方法1: 在Xshell中调用,设置会话属性。
    如下图所示,需在“隧道”选项上勾选“转发X11连接到(X):”。


    Xshell
  • 方法2: 用Xstart登录远程桌面.
    输入主机,用户名和身份验证是必须的,协议必须为SSH,关键在于命令的填写(下面详表),填写完毕后,即可点击“运行”。

登录远程桌面的主要有以下三个命令:
1> gnome-session 调用gnome桌面
2> startkde 调用kde桌面
3> /usr/bin/xterm -ls -display $DISPLAY 调用终端窗口
第一种和第二种比较容易理解,第三种出来的图形其实如下,其实就是一个终端窗口。
如果报“/usr/bin/xterm: DISPLAY is not set”错误,可在终端上设置xhost +或者export DISPLAY=192.168.2.1:0.0,这里,192.168.2.1指的是客户端地址。

在实际生产环境中,往往没有必要登陆到远程桌面,直接调用应用程序即可,譬如,安装Oracle,直接执行./runInstaller即可。

Xstart

4. Xshell,SecureCRT等配置X11转发

参考: [Putty, Xshell,SecureCRT] 本地显示X11转发图像 https://blog.csdn.net/u010472607/article/details/80356216

4.1 SecureCRT配置X11转发图像

  • STEP 1: 选择Session Options.
    Session
  • STEP 2: 选择 Remote/X11, 勾选Forward X11
    iForward X11

4.2 Xshell配置X11转发图像

选择相应会话的属性,选择[隧道], 然后在右侧进行如下勾选, X DISPLAY项内容不需要修改。


image.png

5. 问题处理

5.1 无外网机器安装桌面软件

机器没有外网,可以找一台可以联外网的机器把rpm软件包down下来,传到不联网机器上完成安装。(可用yum-plugin-downloadonly软件帮助实现)。
下载软件:

$yum install yum-plugin-downloadonly
$mkdir /root/rpm
#下载所需全部rpm包
yum --downloadonly --downloaddir=/root/rpm groupinstall  "Desktop" -y
yum --downloadonly --downloaddir=/root/rpm groupinstall  "X Window System" -y
yum --downloadonly --downloaddir=/root/rpm groupinstall  "Chinese Support" -y
yum --downloadonly --downloaddir=/root/rpm  install xorg-x11-xdm  -y

传递软件:
使用nc来实现两服务器软件传输。 陶老师运维笔记- nc传输文件

#不联外网机器A
nc -l 1234 | tar xzvf - >rpm
#已下载rpm的软件的机器B
tar czvf - rpm | nc 目标机A 1234

完成安装:

#进到下载软件路径/root/rpm
cd rpm #有Desktop等rpm包的目录。
yum install  *.rpm

参考:

  • http://mirrors.163.com/.help/centos.html
  • https://www.netsarang.com/zh/all-downloads/
  • 用Xmanager及VNC登录远程桌面 https://www.cnblogs.com/ivictor/p/4760914.html?utm_source=tuicool
  • vnc viewer mac http://mac.orsoon.com/Mac/153107.html
  • Xshell,SecureCRT X11转发图像https://blog.csdn.net/u010472607/article/details/80356216

陶老师运维笔记

你可能感兴趣的:(CentOS图形界面及VNC/Xmanager远程访问)