vncserver是使用非常方便和广泛的远程桌面服务,配置也相对简单。
下面记录了在centos系统上进行配置vncserver的过程。
安装
-
查看centos下是否已经安装了vncserver
rpm -qa |grep vnc
-
如果未安装vncserver,则进行安装
yum install vnc vncserver
vncserver配置
vnc桌面的启动方式有两种,一种是通过在 /etc/sysconfig/vncservers文件中配置启动,这种方式配置的vnc桌面在服务器启动的时候就被启动,可以直接远程连接;另一种是在机器运行的时候运行vncserver :桌面号 命令来启动,这种方式启动的vnc桌面在机器重启后失效。
1. 使用文件来进行配置
这种方式只能在root用户下执行。
/etc/sysconfig/vncservers的配置:
# VNCSERVERS="2:myusername" # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" VNCSERVERS="1:root 2:jason" VNCSERVERARGS[1]="-geometry 1600x1000 -nolisten tcp -localhost" VNCSERVERARGS[2]="-geometry 1600x1000 -nolisten tcp -localhost"
其中指定了 桌面号:用户名,以及相应的配置信息。
2. 使用vncserver命令来配置
这种方式可以在所有用户下进行,每个用户都可以开启多个vnc远程桌面,一个用户的所有vnc桌面都使用相同的密码,但是所有用户的桌面号必须唯一。
usage: vncserver [:<number>] [-name <desktop-name>] [-depth <depth>] [-geometry <width>x<height>] [-pixelformat rgbNNN|bgrNNN] [-fp <font-path>] [-fg] [-autokill] <Xvnc-options>... vncserver -kill <X-display> vncserver -list
可以通过vncserver命令新建桌面
vncserver :number 桌面号, -name 桌面名(显示在vncviewer上), -depth 色深, -geometry 桌面大小。
或者删除一个远程桌面
vncserver -kill :桌面号
vnc桌面配置
每个用户的~/.vnc目录下都有一个 xstartup配置文件,来配置vnc使用的是 gnome桌面还是 kde桌面,还有其他的一些信息。
如果你是gnome桌面,那么你需要修改/root/.vnc/xstartup的配置文件
#!/bin/sh [ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n export LANG export SYSFONT vncconfig -iconic & unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS OS=`uname -s` if [ $OS = 'Linux' ]; then case "$WINDOWMANAGER" in *gnome*) if [ -e /etc/SuSE-release ]; then PATH=$PATH:/opt/gnome/bin export PATH fi ;; esac fi if [ -x /etc/X11/xinit/xinitrc ]; then exec /etc/X11/xinit/xinitrc fi if [ -f /etc/X11/xinit/xinitrc ]; then exec sh /etc/X11/xinit/xinitrc fi [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & gnome-session gnome #添加这一句是连接时使用gnome 桌面环境 twm &
vncserver的服务端运行
vncserver运行:
service vncserver start
在运行的时候,每个用户都可以通过vncserer命令开多个vnc远程桌面(通过全局的桌面号来进行区分),且一个用户的所有vnc桌面的密码都相同(通过vncpasswd设置)。
每当用户新开一个vnc桌面时,在用户的 ~/.vnc 目录下就会有一个对应的 服务器机器名:桌面号.pid 的进程文件和服务器机器名:桌面号.log 的日志文件。
vnc客户端的连接
a、在linux下,运行vncviewer命令即可,服务器地址的写法形如192.168.1.11:1
b、在windows下,运行windows版本的vncviewer即可,用法与linux下相近。
在centos7 下安装配置vncserver
-
以root用户运行以下命令来安装vncserver;
yum install tigervnc-server
-
同样运行以下命令来安装vncviewer;
yum install vnc
-
停止并禁用防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
-
vncviewer基本上不用配置;
-
vncserver的配置,创建一个新的配置文件,以开启1号窗口为例(也可以同时开启多个窗口,修改数字即可),方法如下:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
或者再增加一个窗口:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
-
编辑/lib/systemd/system/vncserver@:1.service,设置用户root相关参数,最终内容如下:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=
/bin/sh
-c
'/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=
/sbin/runuser
-l root -c
"/usr/bin/vncserver %i"
PIDFile=
/root/
.vnc/%H%i.pid
ExecStop=
/bin/sh
-c
'/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
|
-
上述内容中最好设置为root用户,否则可能会看到以下报错:
vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (
/usr/lib/systemd/system/vncserver
@:1.service; enabled)
Active: failed (Result:
exit
-code) since Tue 2015-04-14 10:09:24 CST; 1min 36s ago
Process: 3258 ExecStart=
/sbin/runuser
-l sysadmin -c
/usr/bin/vncserver
%i (code=exited, status=1
/FAILURE
)
Process: 3254 ExecStartPre=
/bin/sh
-c
/usr/bin/vncserver
-
kill
%i >
/dev/null
2>&1 || : (code=exited, status=0
/SUCCESS
)
Apr 14 10:09:24 F1A-VMHOST-SWPE systemd[1]: Starting Remote desktop service (VNC)...
Apr 14 10:09:24 F1A-VMHOST-SWPE runuser[3258]: Password:
Apr 14 10:09:24 F1A-VMHOST-SWPE systemd[1]: vncserver@:1.service: control process exited, code=exited status=1
Apr 14 10:09:24 F1A-VMHOST-SWPE systemd[1]: Failed to start Remote desktop service (VNC).
Apr 14 10:09:24 F1A-VMHOST-SWPE systemd[1]: Unit vncserver@:1.service entered failed state.
Warning: Unit
file
changed on disk,
'systemctl daemon-reload'
recommended.
|
-
更新systemctl以使其生效;
systemctl daemon-reload
-
设置vncserver的密码;
vncpasswd root
按提示输入密码以及确认密码
-
启动该服务用来启用vnc的1号窗口;
systemctl start vncserver@:1.service 或者 vncserver :1
关闭1号窗口:
systemctl stop vncserver@:1.service 或者 vncserver -kill :1
-
设置为开机自动启动;
systemctl enable vncserver@:1.service
End.