MacOS 屏幕共享应用程序使用 (x11)vnc 控制 Debian 主机

MacOS 屏幕共享应用程序使用 (x11)vnc 控制 Debian 主机

我的目标是连接到远程主机(运行 Debian),以便我可以控制整个桌面环境。所以我尝试使用 vnc/x11vnc,如这些帖子中所示:

当我想要连接时,我在 Debian 主机中调用此命令:

❯ x11vnc -rfbauth ~/.vnc/passwd
12/05/2021 06:01:16 passing arg to libvncserver: -rfbauth
12/05/2021 06:01:16 passing argx to libvncserver: /home/massisenergy/.vnc/passwd
12/05/2021 06:01:16 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 3011
12/05/2021 06:01:16 XOpenDisplay("") failed.
12/05/2021 06:01:16 Trying again with XAUTHLOCALHOSTNAME=localhost ...
12/05/2021 06:01:16
12/05/2021 06:01:16 *** XOpenDisplay failed. No -display or DISPLAY.
12/05/2021 06:01:16 *** Trying ":0" in 4 seconds.  Press Ctrl-C to abort.
12/05/2021 06:01:16 *** 1 2 3 4
12/05/2021 06:01:20 *** XOpenDisplay of ":0" successful.
12/05/2021 06:01:20
12/05/2021 06:01:20 Using X display :0
12/05/2021 06:01:20 rootwin: 0x143 reswin: 0x2400001 dpy: 0xc74adb40
12/05/2021 06:01:20
12/05/2021 06:01:20 ------------------ USEFUL INFORMATION ------------------
12/05/2021 06:01:20 X DAMAGE available on display, using it for polling hints.
12/05/2021 06:01:20   To disable this behavior use: '-noxdamage'
12/05/2021 06:01:20
12/05/2021 06:01:20   Most compositing window managers like 'compiz' or 'beryl'
12/05/2021 06:01:20   cause X DAMAGE to fail, and so you may not see any screen
12/05/2021 06:01:20   updates via VNC.  Either disable 'compiz' (recommended) or
12/05/2021 06:01:20   supply the x11vnc '-noxdamage' command line option.
12/05/2021 06:01:20
12/05/2021 06:01:20 Wireframing: -wireframe mode is in effect for window moves.
12/05/2021 06:01:20   If this yields undesired behavior (poor response, painting
12/05/2021 06:01:20   errors, etc) it may be disabled:
12/05/2021 06:01:20    - use '-nowf' to disable wireframing completely.
12/05/2021 06:01:20    - use '-nowcr' to disable the Copy Rectangle after the
12/05/2021 06:01:20      moved window is released in the new position.
12/05/2021 06:01:20   Also see the -help entry for tuning parameters.
12/05/2021 06:01:20   You can press 3 Alt_L's (Left "Alt" key) in a row to
12/05/2021 06:01:20   repaint the screen, also see the -fixscreen option for
12/05/2021 06:01:20   periodic repaints.
12/05/2021 06:01:20
12/05/2021 06:01:20 XFIXES available on display, resetting cursor mode
12/05/2021 06:01:20   to: '-cursor most'.
12/05/2021 06:01:20   to disable this behavior use: '-cursor arrow'
12/05/2021 06:01:20   or '-noxfixes'.
12/05/2021 06:01:20 using XFIXES for cursor drawing.
12/05/2021 06:01:20 GrabServer control via XTEST.
12/05/2021 06:01:20
12/05/2021 06:01:20 Scroll Detection: -scrollcopyrect mode is in effect to
12/05/2021 06:01:20   use RECORD extension to try to detect scrolling windows
12/05/2021 06:01:20   (induced by either user keystroke or mouse input).
12/05/2021 06:01:20   If this yields undesired behavior (poor response, painting
12/05/2021 06:01:20   errors, etc) it may be disabled via: '-noscr'
12/05/2021 06:01:20   Also see the -help entry for tuning parameters.
12/05/2021 06:01:20   You can press 3 Alt_L's (Left "Alt" key) in a row to
12/05/2021 06:01:20   repaint the screen, also see the -fixscreen option for
12/05/2021 06:01:20   periodic repaints.
12/05/2021 06:01:20
12/05/2021 06:01:20 XKEYBOARD: number of keysyms per keycode 7 is greater
12/05/2021 06:01:20   than 4 and 51 keysyms are mapped above 4.
12/05/2021 06:01:20   Automatically switching to -xkb mode.
12/05/2021 06:01:20   If this makes the key mapping worse you can
12/05/2021 06:01:20   disable it with the "-noxkb" option.
12/05/2021 06:01:20   Also, remember "-remap DEAD" for accenting characters.
12/05/2021 06:01:20
12/05/2021 06:01:20 X FBPM extension not supported.
12/05/2021 06:01:20 X display is capable of DPMS.
12/05/2021 06:01:20 --------------------------------------------------------
12/05/2021 06:01:20
12/05/2021 06:01:20 Default visual ID: 0x21
12/05/2021 06:01:20 Read initial data from X display into framebuffer.
12/05/2021 06:01:20 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/7680
12/05/2021 06:01:20
12/05/2021 06:01:20 X display :0 is 32bpp depth=24 true color
12/05/2021 06:01:20
12/05/2021 06:01:20 Autoprobing TCP port
12/05/2021 06:01:20 Autoprobing selected TCP port 5900
12/05/2021 06:01:20 Autoprobing TCP6 port
12/05/2021 06:01:20 Autoprobing selected TCP6 port 5900
12/05/2021 06:01:20 listen6: bind: Address already in use
12/05/2021 06:01:20 Not listening on IPv6 interface.
12/05/2021 06:01:20
12/05/2021 06:01:20 Xinerama is present and active (e.g. multi-head).
12/05/2021 06:01:20 Xinerama: number of sub-screens: 1
12/05/2021 06:01:20 Xinerama: no blackouts needed (only one sub-screen)
12/05/2021 06:01:20
12/05/2021 06:01:20 fb read rate: 3248 MB/sec
12/05/2021 06:01:20 fast read: reset -wait  ms to: 10
12/05/2021 06:01:20 fast read: reset -defer ms to: 10
12/05/2021 06:01:20 The X server says there are 20 mouse buttons.
12/05/2021 06:01:20 screen setup finished.
12/05/2021 06:01:20

The VNC desktop is:      debianSR:0
PORT=5900

******************************************************************************
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?

The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:

    x11vnc -ncache 10 ...

One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching

12/05/2021 06:01:23 Got connection from client 10.39.3.163
12/05/2021 06:01:23   other clients:
12/05/2021 06:01:23 Normal socket connection
12/05/2021 06:01:23 Disabled X server key autorepeat.
12/05/2021 06:01:23   to force back on run: 'xset r on' (3 times)
12/05/2021 06:01:23 incr accepted_client=1 for 10.39.3.163:57928  sock=11
12/05/2021 06:01:23 Client Protocol Version 3.3
12/05/2021 06:01:23 Protocol version sent 3.3, using 3.3
12/05/2021 06:01:23 created   xdamage object: 0x2400040
12/05/2021 06:01:23 client useCopyRect: 10.39.3.163 0
12/05/2021 06:01:23 client_set_net: 10.39.3.163  0.0035
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x000003F3)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x000003EA)
12/05/2021 06:01:24 Enabling full-color cursor updates for client 10.39.3.163
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x00000450)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x0000044C)
12/05/2021 06:01:24 Enabling NewFBSize protocol extension for client 10.39.3.163
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x0000044D)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x00000451)
12/05/2021 06:01:24 Using zlib encoding for client 10.39.3.163
12/05/2021 06:01:24 Pixel format for client 10.39.3.163:
12/05/2021 06:01:24   32 bpp, depth 32, little endian
12/05/2021 06:01:24   true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x000003F3)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x000003EA)
12/05/2021 06:01:24 Enabling full-color cursor updates for client 10.39.3.163
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x00000450)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x0000044C)
12/05/2021 06:01:24 Enabling NewFBSize protocol extension for client 10.39.3.163
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x0000044D)
12/05/2021 06:01:24 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0x00000451)
12/05/2021 06:01:24 Switching from zlib to zlib Encoding for client 10.39.3.163
12/05/2021 06:01:25 client 1 network rate 386.8 KB/sec (5119.8 eff KB/sec)
12/05/2021 06:01:25 client 1 latency:  0.5 ms
12/05/2021 06:01:25 dt1: 1.6203, dt2: 0.0000 dt3: 0.0005 bytes: 626674
12/05/2021 06:01:25 link_rate: LR_LAN - 1 ms, 386 KB/s
12/05/2021 06:01:26 copy_tiles: allocating first_line at size 61
12/05/2021 06:01:33 created selwin: 0x2400041
12/05/2021 06:01:33 called initialize_xfixes()
12/05/2021 06:01:39 client_count: 0
12/05/2021 06:01:39 Restored X server key autorepeat to: 1
12/05/2021 06:01:39 viewer exited.
12/05/2021 06:01:39 deleted 60 tile_row polling images.

但过了一段时间(也许2分钟,也许2小时),它停止了,我不知道为什么。如果我再次启动它,则会再次工作一段时间。知道发生了什么/如何建立更可靠且持久(最多可达 8 小时)的 vnc 连接?

这是我的startup文件:

❯ cat ~/.vnc/xstartup
#!/bin/zsh

# unset SESSION_MANAGER

xrdb $HOME/.Xresources
startxfce4 &
/etc/X11/Xsession
  1. 对其他连接方式的任何建议(例如X普拉,我现在正在考虑)也欢迎!
  2. 我无法使用双向剪贴板(它在 中呈灰色Screen Sharing.app)。需要为此更改 Debian 主机中的任何设置吗?

答案1

两种选择:

  • X2Go
    这是一个很棒的远程桌面解决方案,实际上是我能找到的唯一一个键盘布局切换正常工作的解决方案(如果您使用多个按键布局)。 X2Go 服务器可在 Debian 存储库上使用;你需要它自己的客户端,有一个Mac版本。
  • XRDP
    这也很有效;它本质上启动了 Microsoft 终端服务器/RDS 协议。它也可以在 Debian 存储库中找到。对于客户端,需要一个微软RDS协议客户端;我认为微软有一位官员,还有其他人。

上述解决方案提供了2路剪贴板。

我用过Xpra远程应用使用权;它比 X 转发更快。我还没有使用它进行远程桌面。

答案2

不能同时使用x11vncand 。tightvnc他们的工作方式完全不同。x11vnc允许远程访问现有的 REAL X 服务器,同时tightvnc创建 VNC 客户端访问的新的隐藏 X 服务器。

我假设您想使用,x11vnc因为这是您运行的命令。在这种情况下,请取出tightvncserver包装~/.vnc/xstartup,因为xstartup仅用于tightvnc

另外,当您启动x11vnc服务器时,请从现有的 X 会话中启动它,以便正确设置 $DISPLAY 变量。

根据您的桌面环境,您可能会找到一个名为“X11VNC Server”的应用程序,该应用程序x11vnc以 GUI 模式启动,以便您轻松配置它。

要让它自动启动,如果您使用的是 xinit,请将其添加到您的 .xinitrc 中。如果您使用的是显示管理器,请参阅这个帖子

相关内容