在ubuntu 24.04上安装x11vnc的方法(经过验证04/25/2024)

sudo apt update
sudo apt install x11vnc
x11vnc -storepasswd

下面的命令确认authentication文件的位置(示例中的uid 1000)
systemctl status display-manager.service
Apr 25 22:54:30 hwnga-VMware20-1 gdm-password][4052]: pam_unix(gdm-password:session): session opened for user hwnga(uid=1000) by hwnga(uid=0)


ubuntu24.04默认使用waylan,但是x11vnc对于wayland不太友好,需要切换到xorg。logout,登录时只点击用户名,不输入密码,在屏幕右下角有个小的齿轮图标,点击,然后选择"ubuntu on xorg",再输入密码,登录。

下面的命令输出x11,证明从wayland成功切换到了xorg:
hwnga@hwnga-VMware20-1:~$ echo $XDG_SESSION_TYPE
x11


试着在用户hwnga下运行以下命令:
/usr/bin/x11vnc -auth /var/run/gdm3/auth-for-hwnga-*/database -forever -loop -noxdamage -repeat -rfbauth /home/hwnga/.vnc/passwd -rfbport 5900 -shared

如果没有错误,则可以在另外机器上运行vncviewer,确认可以连接成功。


再创建x11vnc systemd service,如下:
[Unit]
Description=Start x11vnc at startup.
After=gdm.service

[Service]
Type=simple
User=hwnga
Group=hwnga
ExecStart=/usr/bin/x11vnc -auth /var/run/gdm3/auth-for-hwnga-*/database -forever -loop -noxdamage -repeat -rfbauth /home/hwnga/.vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

运行下面的命令,启动x11vnc service
hwnga@hwnga-VMware20-1:~$ sudo systemctl daemon-reload 
hwnga@hwnga-VMware20-1:~$ sudo systemctl enable x11vnc-hwnga.service
hwnga@hwnga-VMware20-1:~$ sudo systemctl start x11vnc-hwnga.service
hwnga@hwnga-VMware20-1:~$ sudo systemctl status x11vnc-hwnga.service
● x11vnc-hwnga.service - Start x11vnc at startup.
     Loaded: loaded (/etc/systemd/system/x11vnc-hwnga.service; disabled; preset>
     Active: active (running) since Thu 2024-04-25 23:20:19 CDT; 6s ago
   Main PID: 9502 (x11vnc)
      Tasks: 2 (limit: 29004)
     Memory: 30.1M (peak: 55.4M)
        CPU: 70ms
     CGroup: /system.slice/x11vnc-hwnga.service
             ├─9502 /usr/bin/x11vnc -auth "/var/run/gdm3/auth-for-hwnga-*/datab>
             └─9503 /usr/bin/x11vnc -auth "/var/run/gdm3/auth-for-hwnga-*/datab>

Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: 25/04/2024 23:20:23
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: The VNC desktop is:      hwnga-V>
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: PORT=5900
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: ********************************>
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: Have you tried the x11vnc '-ncac>
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: The scheme stores pixel data off>
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: retrieval.  It should work with >
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]:     x11vnc -ncache 10 ...
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: One can also add -ncache_cr for >
Apr 25 23:20:23 hwnga-VMware20-1 x11vnc[9503]: More info: http://www.karlrunge.>

hwnga@hwnga-VMware20-1:~$ 

下面是安全访问 (如何你不在外网访问,不需要此步骤):
先在ubuntu上安装openssh-server
sudo apt install openssh-server
sudo ufw allow ssh
sudo ufw allow 5900
sudo ufw enable


在window 上,安装mobaxterm, 开启tunelling。ssh server 是你的ubuntu的地址,端口22,用户名是ubuntu用户名。forward端口是你本地的一个未用的地址,比如6660。
在vnc reviewer上,使用localhost:6660来连接

04-30 11:10