建议使用x11vnc
安装
sudo apt update
sudo apt install x11vnc
设置密码
sudo -u ylang mkdir -p /home/ylang/.vnc
sudo chmod 700 /home/ylang/.vnc
sudo -u ylang x11vnc -storepasswd /home/ylang/.vnc/passwd
获取屏幕号
w
01:33:18 up 10 min, 1 user, load average: 1.01, 0.67, 0.40
USER TTY 来自 LOGIN@ IDLE JCPU PCPU WHAT
user1 :0 :0 01:22 ?xdm? 8:09 0.00s /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSIO
测试输出
x11vnc -display :0
建立服务
sudo nano /etc/systemd/system/x11vnc.service
[Unit]
Description=Start x11vnc at startup
After=display-manager.service
Requires=display-manager.service
[Service]
ExecStartPre=/bin/sleep 5 # 等待 5 秒钟,确保虚拟显示器启动
ExecStart=/usr/bin/x11vnc -display :0
Restart=always
User=ylang
Group=ylang
[Install]
WantedBy=multi-user.target
四件套
sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc
sudo systemctl status x11vnc
对于没有连接hdmi的情况请打开自动登录
如果因为特殊情况不能打开的则需要创建两个vnc的服务
首先因为没有输出所以要先创建一个虚拟显示输出
安装
sudo apt-get install xserver-xorg-video-dummy
sudo nano /etc/X11/xorg.conf
输入一下内容
Section "Monitor"
Identifier "Monitor0"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
EndSection
Section "Device"
Identifier "Card0"
Driver "dummy"
VideoRam 256000
EndSection
Section "Screen"
DefaultDepth 24
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
######################################################不需要了
然后创建两个服务(如果自动登陆仅仅需要创建一个)
sudo nano /etc/systemd/system/x11vnc-
x11vnc-gdm.service x11vnc-user.service
x11vnc-gdm.service
[Unit]
Description=x11vnc Service for GDM Login Screen on Display :0
After=display-manager.service
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /run/user/118/gdm/Xauthority -display :0 -rfbport 5900 -forever -loop -noxdamage
User=root
Restart=on-watchdog
[Install]
WantedBy=multi-user.target
以上的118不是固定的在这里UID为118的用户是为gdm(GNOME Display Manager)服务创建的“系统用户”
x11vnc-user.service
[Unit]
Description=x11vnc Service for User Session on Display :1
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /home/user-name/.Xauthority -display :1 -rfbport 5901 -forever -loop -noxdamage
User=user-name
Restart=on-failure
Environment=DISPLAY=:1
[Install]
WantedBy=default.target
这里的username要输入你登陆的账户
然后在vnc中就有两个连接
ip:5900用于登陆
ip:5901用于登陆后的远程桌面