Ubuntu中vnc服务器端的安装很简单,运行如下命令:
$sudo apt-get install vnc4server
第一次启动vncserver后,在用户家目录中会生成.vnc/目录,注意:刚安装完用户家目录中是没有.vnc目录的。服务器中可以在不同的账户中启动不同的display号,客户端登录时需要填写对应的display号登录到对应的账户。如果多个客户端登录同一个display,会看到别人操作的动作,即会争抢鼠标。
默认的配置文件是~/.vnc/xstartup。刚安装完如果不修改配置文件的话,从客户端连接时将看不到完整的桌面,而只有一个Terminal窗口,如下图所示:
这是因为默认启用的桌面配置的问题,需要修改配置文件。
1、新用户在服务端申请桌面(display号)
终端
$vncserver
首次输入vncserver会提示输入vnc登陆密码,设置完成之后,产生如下信息:
New'hp-Compaq-Presario-CQ45-Notebook-PC:1 (hp)' desktop ishp-Compaq-Presario-CQ45-Notebook-PC:1
Starting applications specifiedin /home/hp/.vnc/xstartup
Log file is/home/hp/.vnc/hp-Compaq-Presario-CQ45-Notebook-PC:1.log
主要的意思是vncserver产生了一个新的桌面,其中的:1是端口号,用于vnc客户端远程连接端口的。
并且会根据/home/hp/.vnc/xstartup(即用户主目录下的 .vnc/xstartup)文件的配置进行启动,相关的log运行记录在/hp/.vnc/hp-Compaq-Presario-CQ45-Notebook-PC:1.log
2、修改配置文件
那么我们需要做的是修改xstartup配置文件,终端下输入以下内容进行编辑:
$ gedit ~/.vnc/xstartup
默认配置文件~/.vnc/xstartup如下:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
将所有内容替换为一下内容(直接复制粘贴):
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 上面这句话在XUbuntu桌面环境下开启vnc的话最好取消注释
#exec /etc/X11/xinit/xinitrc
#上面这行先不要打开
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#gnome-session &
#x-window-manager &
#下面这块主要是针对运用xfce4管理桌面
x-session-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
我当时遇到了灰屏并且鼠标变为X状况,后来将上面三行取消注释貌似就ok了!
关于灰屏+鼠标变X号:
sudochmod a+x /etc/X11/xinit/xinitrc
这也是种办法,不知是否是这句话生效了
(你没遇到最好!)
3、运行
$vncserver -kill :1 <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">(1是刚才申请的桌面编号)</span>
PS:注意这里-kill之后需要加空格,本人就是因为漏了空格不仅没有能够成功关闭端口1的vncserver,反而又启动了一个新的vncserver端口
操作成功之后会出现如下信息:
Killing Xvnc4 process ID 3913
4、再次运行
$vncserver
在配置完成之后,我们需要重新启动vncserver 得到新的窗口编号(一般和刚才的相同,除非你操作过程中别人也申请了一个)
客户端:
UltraVNC 或VNC Viewer
VNC Viewer只需安装Viewer就行,不用安装server,否则需要License;
CNC Server处:IP:窗口号(在服务端得到的,比如1)
密码:在服务端启动nvcserver时候输入的密码
Ubuntu下:
Ubuntu下如果之前没有安装过vncserver的话可以只安装vnc客户端,在终端下输入:
$ sudo apt-get install xvnc4viewer
安装完成之后,如果在本机测试的话输入:
$ vncviewer localhost:1
这里localhost对应本机的ip地址,如果是远程登陆的话将localhost改为要登陆主机的ip地址即可,连接上以后会提示输入密码,输入会出现远程桌面。
远程桌面中Tab键补全功能不能使:
方法:直接在远程桌面中设置,打开菜单->设置->窗口管理器,或者在终端中输入xfwm4-settings打开(xfwm4就是xfce4 window manger的缩写)
选择键盘,可以看到窗口快捷键中动作一列有“切换同一应用程序的窗口”选项,将该选项的快捷键清除后关闭窗口即可。
关于vncserver的开机启动
安装vncserver主要是为了能远程操作服务器,但是会有一个问题:如果远程操作时需要将服务器重启,但是服务器重启后如果vncserver不能开机自己启动的话,客户端就无法远程连接到服务器了,这样用起来就非常麻烦了,所以必须想办法让vncserver开机启动。
方法:
在服务器上开启ssh服务并让ssh服务开机启动,这样服务器重启后,先通过ssh连接到服务器,然后通过命令行启动vncserver,然后就可以用vnc客户端连接了。