CentOS图形界面及VNC/Xmanager远程访问
文章来源: 陶老师运维笔记- 微信公众号
在某些特殊工作场景中(如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"
登录成功后效果:
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):”。
方法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即可。
4. Xshell,SecureCRT等配置X11转发
参考: [Putty, Xshell,SecureCRT] 本地显示X11转发图像 https://blog.csdn.net/u010472607/article/details/80356216
4.1 SecureCRT配置X11转发图像
- STEP 1: 选择Session Options.
- STEP 2: 选择 Remote/X11, 勾选Forward X11
4.2 Xshell配置X11转发图像
选择相应会话的属性,选择[隧道], 然后在右侧进行如下勾选, X DISPLAY项内容不需要修改。
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