CentOS7下安装配置vncserver

2,460 阅读3分钟

一.安装

  1. 以root用户运行以下命令来安装vncserver;

    yum install tigervnc-server
  2. 同样运行以下命令来安装vncviewer;

    yum install vnc
  3. 停止并禁用防火墙;

    systemctl stop firewalld.service

    systemctl disable firewalld.service

二.配置

  1. vncviewer基本上不用配置;

  2. vncserver的配置,创建一个新的配置文件,以开启1号窗口为例(也可以同时开启多个窗口,修改数字即可),方法如下:

    cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service

    或者再增加一个窗口:

    cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service

  3. 编辑/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.

三.应用

  1. 更新systemctl以使其生效;

    systemctl daemon-reload
  2. 设置vncserver的密码;

    vncpasswd root

    按提示输入密码以及确认密码

  3. 启动该服务用来启用vnc的1号窗口;

    systemctl start vncserver@:1.service  或者 vncserver :1

    关闭1号窗口:

    systemctl stop vncserver@:1.service   或者 vncserver -kill :1
  4. 设置为开机自动启动;

    systemctl enable vncserver@:1.service
  5. 启动后就可以在客户端上面输入IP加刚才提到的那个编号即可登陆机器(xxx.xxx.xxx.xxx:1) 看到一个灰色的Xwindow桌面但上面什么也没有

    运行过一次VNSERVER后会在HOME目录下面生成一个.VNC文件夹(在开始启动的时候可看到该文件夹的位置)注:该目录为隐藏,可直接输入路径进入。修改xstartup文件,去掉unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc 前面的注释符号,将最后一行twm & 改成 gnome-session &

    vi /root/.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 &
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    twm &  //改成 gnome-session & 
    //或者注释掉twm & 并且 gnome-session & 去掉注释

    重新启动VNCSERVER即可

    2、VNC的启动/停止/重启

    #service vncserver start/stop/restart

    关闭具体的vncserver命令:

    vncserver -kill :1

    vncserver -kill :2

遇到的错误:

这里写图片描述

执行命令:

vncpasswd


windows与Linux之间通过VNC进行连接时无法相互之间复制、粘贴;

解决方法:在Linux中执行命令

vncconfig -nowin&