本文介绍使用ssh服务去连接服务器上的vnc。背景:vnc默认监听5901端口,连接时不加密,所以认为是一个不安全的连接,但有时候又必须使用图形去安装一些应用。于是有了解决办法:ssh连接是安全的,vnc可以设置监听地址为本地,所以通过ssh隧道去连接vnc可以认为是安全可靠的。

工具/原料

  • ssh连接工具(windows下的 secureCRT或者putty,linux直接使用ssh命令就可以)

  • vnc连接工具:VNC viewer

  • 服务端安装好sshd服务和vncserver,并且都运行起来

方法/步骤

  1. 打开secureCRT,连接到服务器(本例服务器IP:192.168.102.131),然后打开会话选项。

  2. 进入会话选项后,找到“端口转发”,点击“增加(A)..”。然后填写三个项,a.名称; b.本地端口5901; c.远程端口5901;d.点击确认,如下图。 这样,本地的5901端口将与远程服务器的5901通过ssh隧道连接,所以这里的vnc连接时,需要保持这个ssh连接不掉线。

    通过SSH隧道连接VNC

  3. 服务端的配置。以centos为例,在/etc/sysconfig/vncserver: 添加下面一行:

    vncserver -geometry 800x600 -nolisten tcp -nohttpd -localhost :1

    主要是后面的 -localhost:1参数,只监听本机的数据。

  4. 4

    所有东西准备差不多了,打开vnc viewer,填写连接端口,如下图。

    注意,没错,地址那里确定是localhost:1,因为走了ssh隧道,所以不需要填写服务器IP了。

    通过SSH隧道连接VNC