使用 Ubuntu 17.10 桌面版,我如何配置 x11vnc 以便可以使用 vnc 客户端远程登录?

使用 Ubuntu 17.10 桌面版,我如何配置 x11vnc 以便可以使用 vnc 客户端远程登录?

我非常谨慎地表述了我的问题。经过大量研究和反复试验,我能够通过在我的服务文件中使用以下命令行让 x11vnc 在启动时作为系统服务启动:

ExecStart=/usr/bin/x11vnc -auth /run/user/121/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared

我和许多其他人一样发现该auth guess参数在 17.10 中不起作用。我还发现 121 是拥有欢迎程序 X 会话的用户“gdm”的号码,我的Xauthority文件就驻留在该号码中。通过 ssh 检查 xorg 进程:

user@foo:~$ ps -ax |grep xorg
886 tty1     Sl+    0:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3

好的,我可以通过 vnc 客户端连接,并且可以看到欢迎界面和登录界面,但登录后会显示一个带有活动鼠标指针的纯黑屏幕。再次查看 xorg 进程:

user@foo:~$ ps -ax |grep xorg
886 tty1     Sl+    0:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3
1384 tty2     Sl+    0:00 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3

我看到登录用户(我!)拥有一个新的 X 会话,并且正在使用Xauthority该位置的文件。问题似乎是 VNC 客户端卡在“gdm”拥有的欢迎程序的原始 X 会话中。我怎样才能诱导 vnc 客户端跟随到新的 X 会话而不打开客户端的第二个实例?当然,可以使用 x11vnc 和 vnc 客户端登录并使用桌面管理器图形界面,不是吗?非常感谢!

答案1

我没有和你一样的用例,但很相似,如果问题尚未解决,它可能会为解决问题提供一些提示。事实上,我通过 SSH 和 VNC 客户端使用控制台从智能手机进行远程连接。我的电脑x11vnc目前运行的是 Ubuntu 18.04.2 LTS。

  1. 当显示欢迎界面时,我运行:

    sudo x11vnc -safer -localhost -once -display :0 -auth /run/user/125/gdm/Xauthority (... other options)
    
  2. 然后我通过 VNC 客户端登录。然后,对于您来说,我看到一个纯黑屏。然后我终止正在运行的x11vnc

  3. 然后我手动运行(1000是登录的用户数量):

    x11vnc -safer -localhost -once -display :1 -auth /run/user/1000/gdm/Xauthority (... other options)
    
  4. 然后我可以通过 VNC 客户端在智能手机上看到我的桌面(包括我的应用程序等)。然后我可以远程做任何事情,就像坐在电脑前使用键盘和鼠标一样。

我认为您的结论是您需要使用x11vnc不同的-auth选项值运行第二个脚本。我认为您可以将其配置为“登录”脚本,该脚本在给定用户登录后直接执行。

注 1:顺便提一下,请注意该-display选项先期望:0然后:1,这让我浪费了很多时间!

注 2:对您来说,这121是用户“gdm”的号码,对我来说也是,125但我是通过您的问题找到它的,所以感谢您。

注 3:我知道这个问题已经存在 1 年多了,但是因为这个问题本身对我有帮助,所以我想尽可能地帮助我。

相关内容