服务器部署-CentOS-VNC-tigervnc

本文最后更新于:2020年9月27日 晚上

环境

  • Centos7.2 腾讯云服务器

VNC简介

VNC由Olivetti & Oracle研究室所開發,此研究室在1999年併入美國電話電報公司(AT&T)。AT&T於2002年中止了此研究室的運作,並把VNC以GPL釋出。
由於VNC以GPL授權,衍生出了幾個VNC軟體:

VNC类型 信息
RealVNC 由VNC團隊部份成員開發,分為全功能商業版及免費版。
TightVNC 強調節省頻寬使用
UltraVNC 加入了TightVNC的部份程式及加強效能的圖型映射驅動程式,並結合Active Directory及NTLM的帳號密碼認證,但僅有Windows版本。
Vine Viewer MacOSX的VNC用戶端

官方文档

官方首页
在首页下面有配置相关的文档
[TigerVNC的官方github Wiki](https://github.com/TigerVNC/tigervnc/wiki
https://tigervnc.org/doc/vncconfig.html)

操作

部署服务器端

TightVNC安装与配置

  1. 检查是否安装VNC
    1
    rpm -q tigervnc tigervnc-server
  2. 安装X-Window
    1
    yum groupinstall "X Window System"
  3. 安装VNC
    1
    yum install tigervnc-server -y 
  4. 更改启动设置
  5. 打开启动设置配置文件
    1
    vim /root/.vnc/xstartup
  6. 将配置文件的内容替换为以下下内容
    1
    2
    3
    4
    5
    6
    7
    8
    #!/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 KaTeX parse error: Expected 'EOF', got '&' at position 59: …config -iconic &̲ #xterm -geome…VNCDESKTOP Desktop"&
    #twm &
    startxfce4 &
  7. 配置VNC
    1. 打开配置文件
      1
      vim /etc/systemd/system/vncserver@\:1.service
    2. 根据文件里的提示修改一些配置

      这里给出一个xfce的简单配置
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      [Unit]
      Description=Remote desktop service (VNC)
      After=syslog.target network.target

      [Service]
      Type=simple

      # Clean any existing files in /tmp/.X11-unix environment
      ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
      ExecStart=/usr/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 || :'

      [Install]
      WantedBy=multi-user.target
      实际上,如果你有多个用户想用vnc就要配置多份配置
  8. 系统重新加载配置
    1
    systemctl daemon-reload
  9. 为VNC配置密码
    这个密码是使用VNC客户端链接服务器时所使用的密码
    1
    vncpasswd /etc/vncpasswd
  10. 启动VNC服务
    1
    systemctl start vncserver@\:1.service
  11. 设置VNC服务开机启动
    1
    systemctl enable vncserver@\:1.service

    设置防火墙

    VNC的运行端口是基于配置的。
    VNC的默认端口是5900
    我在上面配置了vncserver@:1.service
    那么这个配置的 VNC 会运行在 5900 + 1 = 5901 端口
    输入代码在防火墙中开启 对应端口的TCP连接即可。服务器部署-CentOS-firewall-防火墙

常用VNC命令

  1. 运行一个VNC服务
    1
    vncserver :服务号码
  2. 查看正在运行的VNC服务进程
    1
    vncserver -list
  3. 关闭某个VNC服务进程
    1
    vncserver -kill :VNC服务号

    用户端

    下载客户端

    这个Tiger VNC Viewer的github页
    https://github.com/TigerVNC/tigervnc/releases
    软件下载的网页不挂梯子的话卡的不行,基本不可能下载下来。

连接服务器

输入地址和VNC服务号码即可。
形如:服务器ip:VNC配置防火墙端口号
例如:192.168.1.1:5901
成功连接后会要求输入VNC密码
输入正确后就能连上了

更多操作

修改TigerVNC默认端口

  1. 打开源码文件
    1
    vi /usr/bin/vncserver
  2. 在文中找到端口内容
    1
    2
    vncPort = 5900 + $displayNumber
    if (!bind(S, pack('S n x12', $AF_INET, 5900 + $n))) {
  3. 修改端口内容
    这里我把默认的5900端口改成了15900端口
    1
    2
    vncPort = 15900 + $displayNumber
    if (!bind(S, pack('S n x12', $AF_INET, 15900 + $n))) {
    需要注意的是,端口改了,防火墙设置也要改,连接时用的端口号也要改。
    由于RealVNC viewer没有手动设置端口的功能,只能从默认端口登入。所以上面我给的是TigerVNC viewer。

问题

会与Anconda发生冲突,如果设置了环境变量的话