Ubuntu20.04LTS Desktop安装最新版TigerVNC-server_V1.12.0并实现systemd开机启动

介绍

  1. 官网
  2. 官网下载

配置流程

  1. 添加用户映射
  2. 配置Xvnc选项
  3. 设置VNC密码
  4. 启动Tigervnc服务器
  5. 配置防火墙

文件介绍

  1. 官方github介绍
  2. 需要文件
    文件作用
    /etc/tigervnc/vncserver.users映射桌面与系统用户
    可以为3个文件中任意1个配置Xvnc选项,下方"config文件"有介绍
    passwd密码文件,使用"vncpasswd"生成,默认在"~/.vnc/passwd"
    /lib/systemd/system/vncserver@.servicesystemd服务文件
  3. vncserver.users文件
    1. 官方github文件
    2. 文件内容
      sudo bash -c "cat >> /etc/tigervnc/vncserver.users" <<'EOF'
      #第一个桌面即5901端口对应bdidc用户
      #第二个桌面即5902端口对应root用户
      :1=bdidc
      :2=root
      EOF
      
  4. config文件
    1. 官方github文件
    2. 配置文件优先级,越大越优先
      优先级文件
      1/etc/tigervnc/vncserver-config-defaults
      2$HOME/.vnc/config
      3/etc/tigervnc/vncserver-config-mandatory
    3. 文件内容
      sudo bash -c "cat >> /etc/tigervnc/vncserver-config-defaults" <<'EOF'
      # session必选,必须与当前桌面匹配,可以在/usr/share/xsessions目录的文件中查看当前桌面
      session=gnome
      geometry=1024x768
      EOF
      
  5. passwd文件
    1. 二进制文件,只能使用命令创建,不能查看
    2. 默认在当前用户家目录的.vnc目录中
    3. 创建命令
      vncpasswd
      
  6. vncserver@.service文件
    1. 官方github文件
    2. 文件内容
      sudo bash -c "cat > /lib/systemd/system/vncserver@.service" <<'EOF'
      [Unit]
      Description=Remote desktop service (VNC)
      After=syslog.target network.target
      
      [Service]
      Type=forking
      ExecStart=/usr/lib/x86_64-linux-gnu/vncsession-start %i
      PIDFile=/run/vncsession-%i.pid
      SELinuxContext=system_u:system_r:vnc_session_t:s0
      
      [Install]
      WantedBy=multi-user.target
      EOF
      sudo systemctl daemon-reload 
      

安装、配置

Ubuntu20.04 Desktop安装/配置tigervnc-server

  1. 注意,此方法安装的文件不全,不能使用systemd启动,建议使用后面的方法
  2. 安装TigerVNC
    sudo apt install -y tigervnc-standalone-server
    
  3. 配置VNC访问
    1. 创建初始用户配置并设置密码,不要使用sudo.密码文件保存在~/.vnc目录中
      vncpasswd
      
  4. 启动vncserver
    1. 一定要加上 -localhost no, 否则只能本地连接,不能实现远程连接,那么vnc就毫无意义
    2. 关闭防火墙,否则可能无法连接,Ubuntu20.04LTS默认没有防火墙
    3. 启动
      vncserver :1  -geometry 1400x900  -depth 32 -localhost no
      # 此时应该可以使用客户端进行远程连接了,如果想使用systemd开机自启,请使用后面的安装方法
      
  5. 关闭vncserver
    # 查看启动的vnc
    vncserver -list
    # 关闭打开的vncserver
    vncserver -kill :1
    

Ubuntu20.04 Desktop使用systemd开机启动

  1. 按上面方法安装后怎么都配置不好systemd
  2. 现在用另一种方法安装
    1. 打开官网下载
    2. 打开里面的二进制发布现在是1.12.0
    3. 进入Ubuntu20.04LTS页面
    4. 下载tigervncserver_1.12.0-1ubuntu1_amd64.deb
    5. 如果官网连接失效,使用搬运的Ubuntu20.04LTS专用tigervncserver_1.12.0csdn下载,Ubuntu22.04LTS专用tigervncserver-1.13.1csdn下载,客户端csdn下载
    6. 安装
      sudo apt install -y ./tigervncserver_1.12.0-1ubuntu1_amd64.deb
      
    7. 编辑桌面与用户映射文件
      sudo bash -c "cat >> /etc/tigervnc/vncserver.users" <<'EOF'
      #第一个桌面即5901端口对应bdidc用户
      #第二个桌面即5902端口对应root用户
      :1=bdidc
      :2=root
      EOF
      
    8. 配置Xvnc选项
    9. 在/usr/share/xsessions目录的文件中查看当前桌面为:GNOME
    10. 配置Xvnc选项,这里只设置桌面环境和分辨率
      sudo bash -c "cat >> /etc/tigervnc/vncserver-config-defaults" <<'EOF'
      # session必选,必须与当前桌面匹配,可以在/usr/share/xsessions目录的文件中查看当前桌面
      session=gnome
      geometry=1400x900
      EOF
      
    11. 配置vnc连接密码,当前用户下配置当前用户的密码,如果配置root用户的密码加上sudo
      vncpasswd
      
  3. 启动
    1. 使用"/etc/tigervnc/vncserver.users"处定义的对应关系连接
    2. 启动和开机启动桌面:1,用户bdidc
      sudo systemctl restart vncserver@:1 # 1为对应的桌面
      sudo systemctl enable vncserver@:1 # 设置开机启动
      sudo systemctl status vncserver@:1 # 查看启动状态
      
    3. 启动和开机启动桌面:2,用户root
      sudo systemctl restart vncserver@:2 # 1为对应的桌面
      sudo systemctl enable vncserver@:2 # 设置开机启动
      sudo systemctl status vncserver@:2 # 查看启动状态
      
    4. Ubuntu20.04LTS默认不安装防火墙,不需要配置