最近几天,到一个项目上安装Linux部署环境。由于服务器在机房,而进机房又比较麻烦,于是选择VNC远程连接Linux就显得自然而然了。以前也用过VNC,而且还经常使用,由于各个项目环境不太一样,这次也遇到几个问题,记下来,分享备忘。
使用VNC大致有以下几个问题需要关注:
1、VNC是否安装;
2、VNC服务是否启动;
3、网络是否通畅,包括IP、端口等。
Linux版本:RedHat Enterprise Linux Server release 6.5
VNC工具:vnc-4_1_2-x86_win32_viewer
第1个问题很好解决,如果vncserver命令无法使用,就说明没有安装,可以通过安装光盘使用yum命令安装,也可以下载单独vncserver的rpm文件安装,使用过的版本vnc-server-4.1.2-14.el5_6.6.x86_64.rpm
第2个问题,使用vncserver命令开启服务即可;
开启VNC服务:vncserver :1
关闭VNC服务:vncserver -kill :1
在第一次开发VNC服务,命令行会提示输入密码~
第3个问题,IP地址如果是局域网,只要在同一个网段就能访问到,如果是互联网,内部的局域网地址需要映射成互联网可以访问的IP地址
关于端口问题,VNC服务使用的端口号与桌面号相关,网上搜到的介绍如下:
VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1” ----端口号为5901
桌面号为“2” ----端口号为5902
桌面号为“3” ----端口号为5903
……
我也记住了,端口是从5900开始的。如果是有防火墙软件,需要把5900端口开放才能使用。于是联系网管开放了5900端口。很快网管也给了回复说5900端口已经开启。
可是问题出现了,我的VNCViewer连不上服务器,一直显示在拼命连接中
既然出现问题,那就找各种方法验证5900端口是否已经开放成功。
常用TCP/UDP端口参考http://blog.csdn.net/huiwenjie168/article/details/27328689
由于telnet命令也需要使用端口23,而23端口一般也不会开放。所以只能尝试其他方法。常用的还有以下几个命令:
traceroute命令:traceroute IP地址 -p 5900
nc命令:nc -z -w 1 IP地址 5900
netstat命令:netstat -apn | grep 5900
两种方法都尝试了,结果证明5900端口是通的。那为什么VNCViewer连不上呢?
IP地址是没问题的,因为在互联网可以ping通。那问题到底在哪里呢?
还是要从VNC的端口说起,网上一般都会搜到VNC的端口是从5900开始,桌面号1的端口是5901,桌面号2的端口是5902……
一般都是这么说,那5900对应哪个呢?
问题就在这里了,只能猜到是桌面号0的端口才是5900
于是开启桌面号为0的VNC服务,重新使用VNCViewer连接,这次果然可以了。
除了5900端口问题之外,又遇到一个新的问题,VNCViewer远程连接Linux桌面成功之后,看不见桌面。
除了VNC Config的提示窗口之外,其他的桌面图标、工具栏、任务栏等都看不见。
网上搜到的解决办法如下:
将xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境
于是使用vi ./vnc/xstartup命令修改VNC设置,重启VNC服务,使用VNCViewer重新远程连接,结果还是看不见。
VNC远程桌面除了使用KDE桌面之外,还可以使用GNOME桌面。于是又将xstartup文件的最后一行修改为“gnome-session &”,重新尝试之后还是不行。
尝试了两次之后,想到之前安装Linux的时候,KDE和GNOME桌面都是可选安装的,难道客户给提供的Linux系统没有安装吗?
既然服务器是我们自己使用,先给安装KDE吧
yum groupinstall "X Window System" "KDE*"
等待一段时间之后,提示KDE安装完成。
再重新使用VNCViewer远程连接Linux桌面,这次出现了期待的结果,Linux桌面终于出现了。