1、检查是否安装了VNCSERVER软件
#rpm -ivh vnc-server-4.1.2-9.e15.i386.rpm
#rpm -ivh vnc-4.1.2-9.e15.i386.rpm
或(redhat6.3中)
#rpm -ivh tigervnc-server-1.0.90-0.17.20110314svn4359.e16.x86_64.rpm
#rpm -ivh tigervnc-1.0.90-0.17.20110314svn4359.e16.x86_64.rpm
2、配置配置文件VNC Server
VNC运行机制。Linux下的VNC可以同时启动多个VNCserver,各个VNCserver之间用显示编号(display number)来区分,每个VNcserver服务监听3个端口,分别为
5800+显示编号:VNC的httpd监听端口,如果VNC客户端为IE,Firefox等非VNCviewer时必须开放
5900+显示编号:VNC服务端与客户端通信用的真正端口,必须无条件开放
6000+显示编号:X监听:可选
显示编号开放的端口分别由/etc/syscongfig/vncservers文件中的VNCSERVERS和VNCSERVERARGS控制。
VNCSERVERS的设置方式为 :
“VNCSERVERS=”显示编号1:用户名1...“”,
示例VNCSERVERS“1:root 2:aiezu”
VNCSERVERARGS的设置方式为:
VNCSERVERGS[显示编号1]=“参数1参数1参数2参数2....”
示例VNCSERVERARGS[2]=“-geometry 800x600 -nohttpd”,
VNCSERVERARGS的详细参数有:
-geometry 桌面分辨率,默认1024x768
-nohttpd 不监听HTTP端口(58xx端口);
-nolisten tcp 不监听X端口 (60xx端口)
-localhost 只允许本机访问
-AlwaysShared 默认只同时允许一个vncviewer连接,此参数允许同时连多个vncviewer
-Security Types None 登录不需要密码认证VNCAuth:默认值要密码认证
3、修改/etc/sysconfig/vncserver文件
VNCSERVERS=”1:toot 3:aiezu”
VNCSERVERARGS[1]=”-geometry 800x600 -nolisten tcp”
VNCSERVERARGS[3]=”-geometry1027x768 -nolisten tcp”
本次示例我们开启两个vncserver,分别是root用户,显示编号为1和用户aiezu,显示编号为3;并且全不开启x监听端口60xx
4、设置VNC的用户名密码:
设置VNc密码不可跳过否则VNCserver无法启动
#su - aiezu
$ vncpasswd
Passwork :
Verify:
#su - root
#vncpasswd
Password :
Verify:
#service vncserver start
5、修改”.vnc/xstartup”文件
执行到上面步骤后,VNC server 已经能正常运行。但是默认设置下。客户连接启动的是xterm,我们如果想看到桌面,必须将用户根目录下的”.vnc/xstartup”文件中的最后两行注释掉,然后跟你你安装的桌面环境 ,添加1行 “startkde&” 或者”gnome-session&” .
示例:
#xterm-geometry 80x24+10+10 -ls -title “$VNCDESKTOP Desktop”&
#twm &
Startkde &
gnome-session &
配置完各个用户根目录下的”.vnc/xstartup”后,执行service vncserver restart重新启动vncserver使配置文件生效
6、如何关闭指定的显示编号: vncserver -kill :number 即可关掉指定的显示编号和对应的端口号
7、修改防火墙例外端口 : #vi/etc/sysconfig/iptables ;
VNC的默认端口号是5901(类似于windows的3389)。
可以将需要添加的端口复制一行:
-A INPUT -m state -state NEW -m tcp -p tcp -dport 22-j ACCEPT (默认只开启22端口)
-A INPUT -m state -state NEW -m tcp -p tcp -dport 5901 -j ACCEPT (编号1用户添加5091端口)
-A INPUT -m state -state NEW -m tcp -p tcp -dport 5092 -j ACCEPT (编号2用户添加5092端口)
修改完成后重启防火墙
#service iptables restart
其他防火墙命令
#service ipttables stop --关闭防火墙
#iptables -I INPUT -p tcp --dport 5091 -j ACCEPT --开启5091端口
#iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT --开启30001到31000端口进入服务器的数据
#iptables -A INPUT -p udp -i eth0 -s 192.168.100.0/24 --dport 123 -j ACCEPT --开启由网卡eth0 进入且是192.168网段来的请求进入端口123的数据
#iptables -A OUTPUT -p tcp --sport 30001: 31000 -j ACCEPT --开启服务器从端口30001到端口31000出去的数据
#iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP --拒绝来源于192.168.1.2的访问
#iptables -L --line -num -查看防火墙打开的端口
注意-A参数是将规则写到现有规则链的最后,-I参数是将一条规则写在现有规则连的最前面
8、使用VNC客户端发起连接
ip:xx.xx.xx.xx:1
注: 在通过VNC连接的图形界面启动X应用时出现:”Error :Cat’t open display :: 0.0”错误时,请使用”echo $DISPLAY”命令查看DISPALY环境变量是否设置为:显示编号;0,如:”:1:0”.如果不是此行是,启动X应用时会出现此错误。这时可通过”export DISPLAY=:1:0” 设置正确的DISPLAY。还有一种可能就是切换了用户启动X应用,当前用户没有权限使用X窗口,这时返回到启动VNC的用户,运行xhost+ 允许其他用户访问X窗口即可。