发布于 2016-01-31 04:25:32 | 262 次阅读 | 评论: 0 | 来源: PHPERZ
安全、方便的使用 VNC,远程连接 VNC 不需要密码
有 关 VNC 的主题按理说不应该写在这里,可是通过一点小小的技巧,可以让我们安全、方便的使用 VNC。我们多数情况下用 Windows 远程登录 Linux 桌面的方法不外乎 X11 forwarding 和 VNC,有关 X11 转发的内容参照前面的部分,还有关于 X11 转发和 VNC 哪个方便,这里就不再啰嗦说这些了,自己试一试就知道了。
在远程机器上启动 vnc 服务的方法很简单,直接使用命令 vncserver 了。如果是第一次使用这个命令,还会提示输入一个口令。注意了,这个口令是用来远程连接 VNC 服务端用的,不是登录口令,着两个口令可不一样。如果想修改 vnc 的连接口令,使用命令 vncpasswd 就可以搞定,用法和 passwd 一样。哎哎,等等。标题上不是写的“远程连接 VNC 不需要密码”么?为什么这里还是需要连接密码?不要着急,慢慢听我讲。前面说的方法就是最常用的方法了,既然连接 VNC 的时候需要密码,那就带来一个老问题。密码太简单了,容易被暴力破解掉。密码太复杂了,人脑毕竟不是电脑,记不住。但是呢,为了安全,密码还是要设置的长 一点,我们可以使用一些其他工具帮助我们管理这些又臭又长的密码,比如 KeePass。
现在要说的是,我们可以把 VNC 的连接密码设置的好长好复杂,而且我们不用记,连接 VNC 的时候还不需要口令,不用担心暴力破解等等。我们需要做如下四步操作:
一、 在本地机器上,用参数 /listen 来启动 vncviewer,这个参数对于 RealVNC、TightVNC、UltraVNC 的客户端都一样。也就是要把 VNC 客户端启动在监听模式下,我们要让 VNC 服务器主动连接我们,这样我们就不需要 VNC 的连接口令了。
vncviewer /listen二、创建一个 PuTTY 的反向隧道,源端口 5500,目标 localhost:5500,具体操作看前面的部分,别忘记点“Add”按钮哦。这个 5500 端口就是 vncviewer 的默认监听端口。
三、在远程服务器上用命令 vncserver 启动 VNC 服务,如果前面已经启动 VNC 服务了,就忽略这一步。
四、关键命令哦,在远程服务器上执行命令
vncconfig -display :1 -connect localhost说一下两个个关键参数,一个是 display 后面的 :1 ,这是连接到第一个 vnc 实例上。另一个就是 connect 参数后面的 localhost,既然我们是在远程机器上输入的这个命令,那很显然,连接的就是远程机器。别忘了,我们在此之前设置了反向的 SSH 隧道,连接远程机器的本地 5500 端口,其实连接的就是我们自己机器的 5500 端口。
哈,然后你就会发现什么密码也不用输入,就直接连接上远程的 VNC 服务了。不过呢,这四步操作确实有些麻烦,懒人的第一要旨就是能有多懒就要多懒。
第一步操作我们可以在 Windows 的启动菜单你里放一个 vncviewer 的快捷方式,别忘了 /listen 参数。
第二步操作可以直接保存到 PuTTY 的会话里面,参考前面的内容。
第三步就没啥子好说的,只要机器没有重启过,这个 VNC 服务就一直能用。
第 四步的这个命令,我们可以在 PuTTY 的 Connection->SSH 的选项里的 “Remote command” 里填写上 “vncconfig -display :1 -connect localost” ,然后同样也是保存到 PuTTY 的会话里。以后只要双击一下那个 PuTTY 的会话,我们的 VNC 窗口就会自动打开。
第二步和第四步操作也可以用一个命令来代替,如下:
plink.exe -R 5500:localhost:5500 guantouping "vncconfig -display :1 -connect localhost"命令参数中的那个 “guantouping” 是 PuTTY 保存的会话名,也可以是远程机器主机名,把这个命令做成一个快捷方式,双击直接打开 VNC。