vnc服务的概述:VNC(Virtual Network Computing)虚拟网络计算机的缩写,主要是完成图形界面的远程控制使用。一个vnc系统是由客户端、服务器端和一个协议组成。服务器是分享其屏幕,客户端是控制服务器屏幕,协议(RFB)是传输服务器的原始图像到客户端和客户端传送事件到服务器端。协议的基本原理是:1、协商使用的编码;2、使用点阵方块来传送变化的方块区域。而vnc使用的服务端口默认是TCP端口5900到5906,JAVA的VNC客户端使用的是5800到5806.


1、环境:

vnc服务器:Cent OS 7.0

vnc客户端:win7 64位,vnc-E4_2_5-x86_win32_viewer

2、检查是否已经安装vnc服务器

rpm -qa | grep vnc

如果没有安装则插入光盘并安装:

rpm -ivh tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64.rpm

3、启动vncserver:

vncserver &

但此时会有如下的提示:

java实现vnc服务器 搭建vnc服务器_iptables

这时就需要设置vnc的登陆密码,设置完成之后再重新启动vnc服务器:

java实现vnc服务器 搭建vnc服务器_iptables_02

这时的红框内的数值就是在进行vnc登陆时需要附加的数值

4、启动vnc reviewer,并输入linux的网络ip地址和domain号

java实现vnc服务器 搭建vnc服务器_centOS_03

但是此时会出现下面的错误,原因是由于linux的网络防火墙阻止导致的。

java实现vnc服务器 搭建vnc服务器_vnc_04

java实现vnc服务器 搭建vnc服务器_iptables_05

解决的方法是:执行service iptables stop关闭网络防火墙。

5、虽说上述操作能够保证vnc访问成功,但是一般不建议使用上述的操作。我们应该将nvc的规则添加到iptables中去。具体的操作命令如下:

[root@localhost system]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT

[root@localhost system]# iptables -I INPUT -p tcp --dport 5902 -j ACCEPT

上述两条命令是将5901和5902端口好的vnc的tcp报文加入到INPUT表项中去。其中端口号5901对应的是桌面为“1”的端口号,类似的5902是2号桌面的,端口号最多可以到5906,也就是最多只能有6个桌面。添加完成之后需要保存。可以使用下面的命令查看添加的情况和保存配置。

查看添加结果:[root@localhost system]# iptables -L --line-number 

保存添加配置:[root@localhost system]# service iptables save

运行结果如下:

java实现vnc服务器 搭建vnc服务器_客户端_06

至此,整个vnc的配置结束。


问题:链接成功之后,多了一会桌面被锁定了,这时我再登陆却出现了能够在密码项输入数字但是不能输入字母的问题。

原因是由于客户端和服务器端的输入法问题引起的,默认情况下linux使用的英文输入法,所以在客户端我们也应在切换到英文输入法就可以输入字母了。