安装并自启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
  1. 让每个用户登录他们的帐户,并使用 vncpasswd 命令设置 VNC 密码,然后继续下一步。
  2. 启动 VNC 服务脚本,并为每个用户将其设置在引导时自动启动。使用显示 ID 替换 [X]。
1
2
3
systemctl daemon-reload
systemctl start vncserver@:[X].service
systemctl enable vncserver@:[X].service
  1. 之后确保他们在运行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
  1. 创建 systemd 服务文件 xvnc@.service,并添加以下内容
    vi /etc/systemd/system/xvnc@.service
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
  1. 建路径 mkdir -p /etc/gdm
  2. 创建一个 GDM custom.conf 文件
1
2
3
[xdmcp]
Enable=true
Port=177
  1. 启动并检查
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