Refor Blog

Debian 安装和配置 VNC 远程连接,无需显示器

发布日期:

部分 VNC 实现(如 Ubuntu 自带的屏幕共享)需要连接显示器才能使用。本文的方案基于 TigerVNC,无需显示器即可提供远程桌面服务。

环境

组件版本
Debian11.1.0
桌面Xfce 4.16
VNC 服务端tigervnc-standalone-server
VNC 客户端TigerVNC Viewer

安装步骤

1. 安装依赖

sudo apt install xfce4 xfce4-goodies dbus-x11 tigervnc-standalone-server

2. 设置 VNC 密码

vncpasswd

按提示输入两次密码。

3. 配置 xstartup

编辑 ~/.vnc/xstartup,写入以下内容:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

exec /bin/sh /etc/xdg/xfce4/xinitrc

4. 配置输入法(可选)

不配置此步则 VNC 内无法使用输入法。

开机自启动 Fcitx5:

cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

~/.vnc/xstartup 中添加环境变量:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

export INPUT_METHOD=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

exec /bin/sh /etc/xdg/xfce4/xinitrc

5. 创建 systemd 服务

新建 /etc/systemd/system/vncserver@.service

sudo vim /etc/systemd/system/vncserver@.service

写入以下内容,将 User 替换为实际用户名:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=vnc登陆的用户名
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 2560x1440 -localhost no -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

重载并启用服务:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service

6. 连接 VNC

VNC Viewer 连接界面

下载 TigerVNC Viewer,输入 服务器IP:1 连接。

建议使用 TigerVNC Viewer,不同客户端的 VNC 协议实现可能不兼容。