怎样在 CentOS 7.0 上安装和配置 VNC 伺服器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在 CentOS 7.0 上安装和配置 VNC 伺服器相关的知识,希望对你有一定的参考价值。
参考技术A怎样在 CentOS 7.0 上安装和配置 VNC 伺服器
1. 安装 X-Window 首先我们需要安装 X-Window,在终端中执行下面的命令,安装会花费一点时间。 # yum check-update# yum groupinstall "X Window System" #yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-ce...
1. 安装 X-Window
首先我们需要安装 X-Window,在终端中执行下面的命令,安装会花费一点时间。
# yum check-update# yum groupinstall "X Window System"
#yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
### 设定预设启动图形介面# unlink /etc/systemd/system/default.target# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# reboot
在伺服器重启之后,我们就有了一个工作著的 CentOS 7 桌面环境了。
现在,我们要在伺服器上安装 VNC 伺服器了。
2. 安装 VNC 伺服器
现在要在我们的 CentOS 7 上安装 VNC 伺服器了。我们需要执行下面的命令。
# yum install tigervnc-server -y
3. 配置 VNC
然后,我们需要在 /etc/systemd/system/ 目录里建立一个配置档案。我们可以将 /lib/systemd/sytem/vncserver@.service 拷贝一份配置档案范例过来。
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
接着我们用自己最喜欢的编辑器(这儿我们用的 nano )开启 /etc/systemd/system/vncserver@:1.service ,找到下面这几行,用自己的使用者名称替换掉 。举例来说,我的使用者名称是 linoxide 所以我用 linoxide 来替换掉 :
ExecStart=/ *** in/runuser -l <USER> -c "/usr/bin/vncserver %i"PIDFile=/home/<USER>/.vnc/%H%i.pid
替换成
ExecStart=/ *** in/runuser -l linoxide -c "/usr/bin/vncserver %i"PIDFile=/home/linoxide/.vnc/%H%i.pid
如果是 root 使用者则
ExecStart=/ *** in/runuser -l root -c "/usr/bin/vncserver %i"PIDFile=/root/.vnc/%H%i.pid
好了,下面重启 systemd 。
# systemctl daemon-reload
最后还要设定一下使用者的 VNC 密码。要设定某个使用者的密码,必须要有能通过 sudo 切换到使用者的许可权,这里我用 linoxide 的许可权,执行“su linoxide”就可以了。
1.检查VNC客户端和伺服器端是否已经安装
执行如下命令:
[root@localhost ~]# rpm -qa vnc vnc-server
package vnc is not installed
package vnc-server is not installed
表示系统没有安装VNC服务端,那我们就用yum安装VNC服务端。
[root@localhost ~]# yum -y install vnc vnc-server
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: mirrors.163.
* extras: mirrors.163.
* updates: mirrors.163.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tigervnc.i686 0:1.0.90-0.10.20100115svn3945.el6 set to be updated
---> Package tigervnc-server.i686 0:1.0.90-0.10.20100115svn3945.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================
Installing:
tigervnc i686 1.0.90-0.10.20100115svn3945.el6 base 252 k
tigervnc-server i686 1.0.90-0.10.20100115svn3945.el6 base 1.1 M
Transaction Summary
=================================================================================================================================================================================
Install 2 Package(s)
Upgrade 0 Package(s)
Total download size: 1.3 M
Installed size: 3.6 M
Downloading Packages:
(1/2): tigervnc-1.0.90-0.10.20100115svn3945.el6.i686.rpm | 252 kB 00:00
(2/2): tigervnc-server-1.0.90-0.10.20100115svn3945.el6.i686.rpm | 1.1 MB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 137 kB/s | 1.3 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Sueeded
Running Transaction
Installing : tigervnc-1.0.90-0.10.20100115svn3945.el6.i686 1/2
Installing : tigervnc-server-1.0.90-0.10.20100115svn3945.el6.i686 2/2
Installed:
tigervnc.i686 0:1.0.90-0.10.20100115svn3945.el6 tigervnc-server.i686 0:1.0.90-0.10.20100115svn3945.el6
Complete!
启动VNC Server服务:使用vncserver命令(在当前使用者主目录下生成.vnc资料夹)
[root@localhost ~]# vncserver
You will require a password to aess your desks.
Password:
Verify:
xauth: creating new authority file /root/.Xauthority
New \'localhost.localdomain:1 (root)\' desk is localhost.localdomain:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
2. 在CentOS系统中将使用者名称加入到配置档案中
编辑vncservers的配置档案
[root@localhost ~]# vi /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Unment the lines below to start a VNC server on display :2
# as my \'myusername\' (adjust this to your own). You will also
# need to set a VNC password; run \'man vncpasswd\' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area neork is
# untrusted! For a secure way of using VNC, see this URL:
# :kbase.redhat./faq/docs/DOC-7028
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer\' manual page.
# VNCSERVERS="2:myusername"
VNCSERVERS="2:root" #使用者名称root
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
VNCSERVERARGS[2]="-geometry 1024x768" #尺寸大小
3.设定 root使用者的密码
使用如下命令设定密码:
[root@localhost ~]# vncpasswd
Password:abc123
Verify:abc123
当提示Verify时,再次输入密码确认。
4.启动VNC服务
使用如下命令启动VNC SERVER
[root@localhost ~]# / *** in/service vncserver start
正在启动 VNC 伺服器:2:root
New \'localhost.localdomain:2 (root)\' desk is localhost.localdomain:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:2.log
[确定]
[root@localhost ~]#
当显示如下资讯时,表示启动成功.
5.修改VNC SERVER的视窗治理器
vnc server预设使用的视窗治理器是n,这是一个非常简单的视窗治理器,我们可以改成常用的GNOME或者KDE。
先使用如下命令进入使用者的home目录:cd /.vnc
编辑启动项:vi xstartup
按照如下方式修改启动项:
[root@localhost ~]# vi /root/.vnc/xstartup
#!/bin/sh
vnonfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = \'Linux\' ]; then
case "$WINDOWMANAGER" in
*gnome*)
if [ -e /etc/SuSE-release ]; then
PATH=$PATH:/opt/gnome/bin
export PATH
fi
;;
esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
exec /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
exec sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desk" &
gnome-session & #以GNOME作为VNC的视窗治理器
#startkde #kde desk
#m &
#m # 注掉CentOS系统预设的视窗治理器
6.重启VNC SERVER
当CentOS系统提示如下资讯时,表示重启成功
[root@localhost ~]# / *** in/service vncserver restart
关闭 VNC 伺服器:2:root [确定]
正在启动 VNC 伺服器:2:root
New \'localhost.localdomain:2 (root)\' desk is localhost.localdomain:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:2.log
[确定]
检视VNC SERVER 监听的埠:
[root@localhost ~]# stat -antulp |grep 59
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 3162/Xvnc
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 4193/Xvnc
tcp 0 0 0.0.0.0:59473 0.0.0.0:* LISTEN 1153/rpc.statd
tcp 0 0 :::5989 :::* LISTEN 1501/cimserver
tcp 0 0 :::5900 :::* LISTEN 3123/vino-server
tcp 0 0 ::ffff:192.168.0.124:5900 ::ffff:192.168.0.145:3072 ESTABLISHED 3123/vino-server
防火墙开放的埠:
[root@localhost ~]# / *** in/iptables -A INPUT -p tcp -m multiport
一些 VNC 伺服器的优点:
远端的图形管理方式让工作变得简单方便。
剪贴簿可以在 CentOS 伺服器主机和 VNC 客户端机器之间共享。
CentOS 伺服器上也可以安装图形工具,让管理能力变得更强大。
只要安装了 VNC 客户端,通过任何作业系统都可以管理 CentOS 伺服器了。
比 ssh 图形转发和 RDP 连线更可靠。
那么,让我们开始安装 VNC 伺服器之旅吧。我们需要按照下面的步骤一步一步来搭建一个可用的 VNC。
首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个。
注意:以下命令必须以 root 许可权执行。要切换到 root ,请在终端下执行“sudo -s”,当然不包括双引号(“”)
1. 安装 X-Window
首先我们需要安装 X-Window,在终端中执行下面的命令,安装会花费一点时间。
# yum check-update
# yum groupinstall "X Window System"
#yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
### 设定预设启动图形介面
# unlink /etc/systemd/system/default.target
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# reboot
在伺服器重启之后,我们就有了一个工作著的 CentOS 7 桌面环境了。
现在,我们要在伺服器上安装 VNC 伺服器了。
2. 安装 VNC 伺服器
现在要在我们的 CentOS 7 上安装 VNC 伺服器了。我们需要执行下面的命令。
# yum install tigervnc-server -y
首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个。
注意:以下命令必须以 root 许可权执行。要切换到 root ,请在终端下执行“sudo -s”,当然不包括双引号(“”)
1. 安装 X-Window
首先我们需要安装 X-Window,在终端中执行下面的命令,安装会花费一点时间。
# yum check-update
# yum groupinstall "X Window System"
#yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
### 设定预设启动图形介面
# unlink /etc/systemd/system/default.target
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
# reboot
在伺服器重启之后,我们就有了一个工作著的 CentOS 7 桌面环境了。
现在,我们要在伺服器上安装 VNC 伺服器了。
2. 安装 VNC 伺服器
现在要在我们的 CentOS 7 上安装 VNC 伺服器了。我们需要执行下面的命令。
# yum install tigervnc-server -y
3. 配置 VNC
然后,我们需要在 /etc/systemd/system/ 目录里建立一个配置档案。我们可以将 /lib/systemd/sytem/vncserver@.service 拷贝一份配置档案范例过来。
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
接着我们用自己最喜欢的编辑器(这儿我们用的 nano )开启 /etc/systemd/system/vncserver@:1.service ,找到下面这几行,用自己的使用者名称替换掉 。举例来说,我的使用者名称是 linoxide 所以我用 linoxide 来替换掉 :
ExecStart=/ *** in/runuser -l <USER>-c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
替换成
ExecStart=/ *** in/runuser -l linoxide -c "/usr/bin/vncserver %i"
PIDFile=/home/linoxide/.vnc/%H%i.pid
如果是 root 使用者则
ExecStart=/ *** in/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
好了,下面重启 systemd 。
# systemctl daemon-reload
最后还要设定一下使用者的 VNC 密码。要设定某个使用者的密码,必须要有能通过 sudo 切换到使用者的许可权,这里我用 linoxide 的许可权,执行“su linoxide”就可以了。
# su linoxide
$ sudo vncpasswd
确保你输入的密码多于6个字元
4. 开启服务
用下面的命令(永久地)开启服务:
$ sudo systemctl enable vncserver@:1.service
启动服务。
$ sudo systemctl start vncserver@:1.service
5. 防火墙设定
我们需要配置防火墙来让 VNC 服务正常工作。
$ sudo firewall-cmd --permanent --add-service vnc-server
$ sudo systemctl restart firewalld.service
现在就可以用 IP 和埠号(LCTT 译注:例如 192.168.1.1:1 ,这里的埠不是伺服器的埠,而是视 VNC 连线数的多少从1开始排序)来连线 VNC 伺服器了。
6. 用 VNC 客户端连线伺服器
好了,现在已经完成了 VNC 伺服器的安装了。要使用 VNC 连线伺服器,我们还需要一个在本地计算机上安装的仅供连线远端计算机使用的 VNC 客户端。
你可以用像 Tightvnc viewer 和 Realvnc viewer 的客户端来连线到伺服器。
要用更多的使用者连线,需要建立配置档案和埠,请回到第3步,新增一个新的使用者和埠。你需要建立 vncserver@:2.service 并替换配置档案里的使用者名称和之后步骤里相应的档名、埠号。请确保你登入 VNC 伺服器用的是你之前配置 VNC 密码的时候使用的那个使用者名称。
VNC 服务本身使用的是5900埠。鉴于有不同的使用者使用 VNC ,每个人的连线都会获得不同的埠。配置档名里面的数字告诉 VNC 伺服器把服务执行在5900的子埠上。在我们这个例子里,第一个 VNC 服务会执行在5901(5900 + 1)埠上,之后的依次增加,执行在5900 + x 号埠上。其中 x 是指之后使用者的配置档名 vncserver@:x.service 里面的 x 。
在建立连线之前,我们需要知道伺服器的 IP 地址和埠。IP 地址是一台计算机在网路中的独特的识别号码。我的伺服器的 IP 地址是96.126.120.92,VNC 使用者埠是1。
执行下面的命令可以获得伺服器的公网 IP 地址(LCTT 译注:如果你的伺服器放在内网或使用动态地址的话,可以这样获得其公网 IP 地址)。
# curl -s checkip.dyndns.|sed -e \'s/.*Current IP Address: \' -e \'s/<.*$\'
1.安装 yum install vnc vncserver 2. vim /etc/sysconfig/vncservers 使用vim编辑器开启配置档案,在档案中新增下面两行命令 VNCSERVERS="2:root" --指定远端使用者 2:桌面号,root:使用者 VNCSERVERARGS[2]="-geometry 1024x768" --指定远端桌面解析度 3.给你刚刚设定的远端桌面使用者 root 设定密码 vncpasswd 4.配置防火墙 vi /etc/sysconfig/iptables 使用vi编辑器开启配置档案,在档案中新增下面一行命令 -A RH-Firewall-l-INPUT -p tcp -m tcp --dport 5900:5903 -j ACCEPT vncserver在呼叫的时候,会根据你的配置来启用server端的监听埠, 埠预设是从5900开始,再加上你的桌面号。 比如你的桌面号为2,则vnc的连线埠号为5900+2=5902 比如你的桌面号为10000,则vnc的连线埠号为5900+10000=15900 重启防火墙 5. 修改指令码档案 xstartup,如果找不到此档案,执行service vncserver restart 就可以自动生成 cd ~/.vnc/ vi xstartup 使用vi编辑器开启配置档案,并进行下列修改 #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desk" & --将它注释,加#代表注释 #m & --将它注释 gnome-session & --新增它 6.重启伺服器: service vncserver restart 远端登入: vncviewer ip:桌面号 ip和桌面号缺一不可,否则会报:unable connect to socket:(111)错误 /* 不是必须的 */ 7.远端桌面和本地桌面同步 点选系统-》首选项-》远端桌面-》勾选允许其他人检视和控制您的桌面
yum check-update
yum -y install lvm2 device-mapper
yum -y groupinstall GNOME 桌面
yum -y install tigervnc-server tigervnc
reboot
yum check-update
yum -y groupinstall GNOME 桌面
yum -y install tigervnc-server tigervnc
reboot
其他配置问题了
CentOS Linux下VNC Server远程桌面配置详解
http://www.ha97.com/4634.html
PS:偶以前基本不用Linux的远程图形桌面,前几天有开发的同事配置CentOS的vnc有问题,找我解决,就顺便记录总结一下,这个总结是比较完整的。下面的配置在CentOS5.x和6.x、SUSE企业版亲测验证,其他发行版按理也通用:
一、安装相应桌面环境与vnc服务端和客户端:
# yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安装GNOME桌面环境)
# yum groupinstall "X Window System" "Desktop"(CentOS 6.x安装GNOME桌面环境)
# yum groupinstall Xfce(CentOS安装Xfce桌面环境,可选)
# yum install vnc-server vnc* (CentOS 5.x里)
# yum install tigervnc-server tigervnc (CentOS 6.x里)
说明:Xfce与KDE,Gnome都是图形桌面环境,其特点是占用资源更小资源占用情况大致为:Gnome>KDE>Xfce。具体情况与版本有关。一般版本越新,资源占用越大。
二、VNC的启动和重启:
# /etc/init.d/vncserver restart
注:有时候上面的命令启动会报错,直接运行就可以:
# vncserver
注:关闭具体的vncserver命令:vncserver -kill :1 vncserver -kill :2
三、设置远程登陆到gnome桌面的配置:
# vim /etc/sysconfig/vncservers(SUSE企业版不用配置此文件)
再最后面加入如下两行:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24"
说明:
1、-alwaysshared表示同一个显示端口允许多用户同时登录 -depth代为色深,参数有8、16、24、32;
2、这里的“用户名”是指linux系统用户的名称;
3、上面三行中第一行是设定可以使用VNC服务器的帐号,可以设定多个,但中间要用空格隔开。注意前面的数字“1”或是“2”,当你要从其它电脑来VNC服务器时,就需要用IP:1这种方法,而不能直接用IP。如假定你的VNC服务器IP是192.168.1.100,那想进入VNC服务器,并以peter用户登录时,需要在vncviewer里输入IP的地方输入:192.168.1.100:1,如果是root,那就是192.168.1.100:2;
4、下面两行[1][2]最好与上面那个相对应,后面的800X600可以换成你电脑支持的分辨率。注意中间的”x”不是“*”,而是小写字母”x”。
四、设置vnc访问密码:
# vncpasswd
说明:这里是为上面的root远程用户配密码,所以在root账户下配;依次类推,为别的账户配密码,就要在别的账户下设密码。
五:修改远程桌面显示配置文件:
# vim /root/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session & #set starting GNOME desktop
#startkde & #kde desktop
#twm & #Text interface
#/usr/bin/startxfce4
#exec /usr/bin/fluxbox
说明:
1、不修改此文件你看到的远程桌面很简单,相当于命令行操作,为了远程操作如同本地操作一样,务必参考以上方式进行修改;
2、只要你启用一次VNCserver,就能自动创建,方法如下:
# vncserver
通过上面的方法,就可以在用户家目录下的.vnc目录里创建xstartup文件。
六、vnc客户端登陆:
在vnc客户端中输入:服务器端IP:1 或 服务器端IP:2
如图所示:
iptables防火墙默认会阻止vnc远程桌面,所以需要在iptables允许通过。当你启动vnc服务后,你可以用netstat –tunlp命令来查看vnc服务所使用的端口,可以发现有5801,5901,6001等。使用下面命令开启这些端口:
# vim /etc/sysconfig/iptables
添加:
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 5801 -j ACCEPT
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 5901 -j ACCEPT
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 6001 -j ACCEPT
重启防火墙:
# /etc/init.d/iptables restart
或者直接关闭防火墙:
# /etc/init.d/iptables stop
七、开机自启动vncserver服务:
# chkconfig vncserver on
八、vnc的反向连接设置:
在大多数情况下,vncserver总处于监听状态,vnc client主动向服务器发出请求从而建立连接。然而在
一些特殊的场合,需要让vnc客户机处于监听状态,vncsrever主动向客户机发出连接请求,此谓vnc的
反向连接。
主要步骤:
a、启动vnc client,使vncviewer处于监听状态;
# vncviewer -listen
b、启动vncserver
# vncserver
c、在vncserver端执行vncconnect命令,发起server到client的请求;
# vncconnect -display :1 192.168.80.135
九、可能遇到的问题:
a、黑屏
在Linux里安装配置完VNC服务端,发现多用户登陆会出现黑屏的情况,具体的现象为:
客户端可以通过IP与会话号登陆进入系统,但登陆进去是漆黑一片,除了一个叉形的鼠标以外,伸手不见五指。
原因:用户的VNC的启动文件权限未设置正确。
解决方法:将黑屏用户的xstartup(一般为:/用户目录/.vnc/xstartup)文件的属性修改为755(rwxr-xr-x)。
完后杀掉所有已经启动的VNC客户端:
vncserver -kill :1
vncserver -kill :2 (注意:-kill与:1或:2中间有一空格)
最后重启vncserver服务即可! # /etc/init.d/vncserver restart
注意:vncserver只能由启动它的用户来关闭,即时是root也不能关闭其它用户开启的vncserver,
除非用kill命令暴力杀死进程。
b、Windown下如何登陆VNC Server
(1)从浏览器登录(浏览器需要安装JAVA支持库,作为java applet来实现,才能登录控制VNC服务器,可以yum install java*安装)
直接从浏览器中输入如下地址:
http://xxx.xxx.xxx.xxx:5801
(2)从VNC客户端登录
在windows上安装vnc客户端,然后输入xxx.xxx.xxx.xxx:x,连接登录。
备注:
a、输入的格式为IP:号码,号码要看你自己的配置而定。如192.168.80.128:1
b、登陆提示connection refused(10061),则是因为linux防火墙的问题,请检查防火墙设置。
c、后面的尾缀”:x”也是不能少的,要不然老提示failed to connect : connection refused (10061)
http://www.centoscn.com/image-text/install/2015/0211/4687.html
以上是关于怎样在 CentOS 7.0 上安装和配置 VNC 伺服器的主要内容,如果未能解决你的问题,请参考以下文章