安装并自启VNC server

一、安装VNC并手动运行

  1. apt install desktop-autostart vnc-server
    安装完毕后输入vncserver,屏幕中会提示数字
    可在主目录中的 .vnc 目录中找到隐藏的默认配置文件和密码文件。
    VNC 会话启动并显示一个唯一的显示 ID,该 ID 是主机名和冒号 “:” 后面的数字。在上面的例子中,显示 ID 是 1。向 VNC 查看器应用程序提供显示 ID 以建立连接。
  2. 结束VNC
    vncserver -kill :1
  3. 如果忘了编号可以手动查询
    vncserver -list
  4. 自定义配置
  • 要自定义屏幕大小、安全类型等设置,请修改 $HOME/.vnc/config 文件。
  • 要自定义启动时运行的应用程序,请修改 $HOME/.vnc/xstartup 文件。

二、通过 systemd 服务自启VNC

  1. 查看是否有目标账户
    cut -d: -f1 /etc/passwd

  2. 确保存在/etc/systemd/system
    mkdir -p /etc/systemd/system

  3. 创建 systemd 服务脚本文件 vncserver@:[X].service
    其中 [X] 是显示 ID。对于 /etc/systemd/system 中的每个用户,必须为每个用户分配一个唯一的显示 ID。请确保在 User 字段中输入正确的用户名。以下示例显示了用户 vnc-user-b 已分配了显示 ID 5.
    vi /etc/systemd/system/vncserver@:5.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [Unit]
    Description=VNC Remote Desktop Service for "vnc-user-b" with display ID "5"
    After=syslog.target network.target

    [Service]
    Type=simple
    User=vnc-user-b
    PAMName=login
    PIDFile=/home/%u/.vnc/%H%i.pid
    ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
    ExecStart=/usr/bin/vncserver %i -geometry 2000x1200 -alwaysshared -fg
    ExecStop=/usr/bin/vncserver -kill %i

    [Install]
    WantedBy=multi-user.target
  4. 让每个用户登录他们的帐户,并使用 vncpasswd 命令设置 VNC 密码,然后继续下一步。

  5. 启动 VNC 服务脚本,并为每个用户将其设置在引导时自动启动。使用显示 ID 替换 [X]。

    1
    2
    3
    systemctl daemon-reload
    systemctl start vncserver@:[X].service
    systemctl enable vncserver@:[X].service
  6. 之后确保他们在运行systemctl | grep vnc

三、通过 GDM 身份验证实现多用户登录

使用此方法时,系统将 VNC 配置为监听端口 5900 的 systemd 服务,并将 GDM 配置为接受来自 VNC 的访问请求。

  1. 确保目录存在mkdir -p /etc/systemd/system
  2. 创建 systemd 套接字文件 xvnc.socket,并添加以下内容
    vi /etc/systemd/system/xvnc.socket
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Unit]
    Description=XVNC Server on port 5900

    [Socket]
    ListenStream=5900
    Accept=yes

    [Install]
    WantedBy=sockets.target
  3. 创建 systemd 服务文件 [email protected],并添加以下内容
    vi /etc/systemd/system/[email protected]
    1
    2
    3
    4
    5
    6
    7
    8
    [Unit]
    Description=Daemon for each XVNC connection

    [Service]
    ExecStart=-/usr/bin/Xvnc -inetd -query localhost -geometry 2000x1200 -once -SecurityTypes=None
    User=nobody
    StandardInput=socket
    StandardError=syslog
  4. 建路径 mkdir -p /etc/gdm
  5. 创建一个 GDM custom.conf 文件
    1
    2
    3
    [xdmcp]
    Enable=true
    Port=177
  6. 启动并检查
    1
    2
    3
    4
    systemctl daemon-reload
    systemctl start xvnc.socket
    systemctl enable xvnc.socket
    systemctl | grep vnc

四、推荐VNC客户端

  1. Tightvncviewer on debian
    apt-get install xtightvncviewer
  2. Windows/Mac
    RealVNC
  3. 链接地址备注默认5900端口
    vncviewer [VNCserver address]:[fully-qualified VNC port number 590X]

安装并自启VNC server
https://hexo.psorai.eu.org/2023/10/17/安装并自启VNC server/
Author
Sora
Posted on
October 17, 2023
Licensed under