用VNC可以以桌面的方式,连接到远程电脑进行操作。
下面描述如何对VNC Server和VNC Client进行配置。
VNC Server即要远程连到的电脑。
VNC Server的配置
1. 安装tigervnc-server
# yum install tigervnc-server
2. 设置VNC密码
# vncpasswd
执行这条命令的用户就是vnc的用户名;
输入两次密码就设置成功了。
3. 修改vncviewer配置文件
# vim /etc/sysconfig/vncservers
里面加上两行
VNCSERVERS="2:root" VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp"
2是Display号,root是用户。
4. 开放防火墙5900-6000端口,重启vncserver
# /etc/init.d/vncserver restart
VNC Client的配置
1. 安装vncviewer
# yum install tigervnc
2. 桌面远程登录
# vncviwer
输入之前在Server端用vncpasswd配置的密码,回车。
另一种启动VNC-Server的方法
在欲启动VNC Server的用户下,执行
$ vncserver
即可顺利启动VNC server.
防火墙规则
VNC-Server默认使用5900+显示号作为端口。如上面实验的显示号是2,则防火墙需要开启5902端口。
所以防火墙规则可以这么设定(/etc/sysconfig/iptables)
-A INPUT -p tcp -m tcp --dport 5900:6000 -j ACCEPT
常见问题
用上面的 /etc/init.d/vncserver restart 可能会报错,我遇到过这样的报错
[root@vserver1 ~]# /etc/init.d/vncserver restart Shutting down VNC server: [ OK ] Starting VNC server: 2:Harry Invalid null command. if: Expression Syntax. New 'vserver1.intern.com:2 (Harry)' desktop is vserver1.intern.com:2 Creating default startup script /home/Harry/.vnc/xstartup Starting applications specified in /home/Harry/.vnc/xstartup Log file is /home/Harry/.vnc/vserver1.intern.com:2.log else: endif not found. [FAILED]
[root@vserver1 ~]# /etc/init.d/vncserver restart Shutting down VNC server: 2:Harry [FAILED] Starting VNC server: 2:Harry Invalid null command. if: Expression Syntax. A VNC server is already running as :2 else: endif not found. [FAILED]
出现该问题,可能的原因是VNCserver在运行的时候,我们人为修改了它的配置文件,比如更改了用户名和display,然后重启的时候,之前用户名和display对应的vncserver进程没有正常关闭。
在修改vncserver的配置文件时,要先停掉vncserver,再修改,再启动。