使用 VNC 通过 SSH 从本地 PC 发送 X11 window 到远程 PC,而不接触远程 PC

send X11 window from local PC, with VNC over SSH to remote PC, without touching remote PC

假设我有两台 Linux 个人电脑:本地,我实际坐在那里,远程,连接到投影仪。所以, 坐在我的本地计算机上时,我想启动一个图形应用程序,比方说 google-chrome,我希望它显示在远程计算机上 - 但我不想亲自去远程计算机并在每次我想执行此操作时启动 'vncviewer'。我连登录都不想去,请问怎么解决?

换句话说,我不想每次都这样做:

  1. 在本地电脑上启动 x11vnc 服务器:

    LOCAL_PC ~$ x11vnc
    # and do some graphical stuff, like: 
    LOCAL_PC ~$ firefox &
    
  2. 然后,实际转到远程计算机并启动 vnc 客户端:

    REMOTE_PC ~$ vncviewer LOCAL_PC_IP
    

所以我找到了解决方案。 (为确保这是您正在寻找的东西:此解决方案将帮助您在计算机上打开图形应用程序并将其显示在远程计算机监视器上

简短版

    REMOTE_PC ~$ xhost +localhost
    LOCAL_PC ~$ x11vnc -geometry 2560x1440 &
    LOCAL_PC ~$ ssh UserName@REMOTE_PC_IP "export DISPLAY=:0.0 xeyes && cinnamon-screensaver-command -d && vncviewer LOCAL_PC_IP"

p.s。不知道第一行有没有必要

长版:

REMOTE_PC - 是连接到投影仪的电脑

LOCAL_PC - 是您所在的电脑。

在 REMOTE_PC 上使用 IP 可以做的事情 - REMOTE_PC_IP

启用 localhost x 控制。亲自去打字,你需要做一次。

    xhost +localhost

在 LOCAL_PC 上使用 IP 可以做的事情 - LOCAL_PC_IP

启动 vnc 服务器

    x11vnc -geometry 2560x1440

ssh 到远程电脑

    ssh username@REMOTE_PC_IP

导出显示,在该远程电脑上解锁屏幕(就像您输入密码并登录一样),启动客户端并连接到在本地电脑上启动的服务器。

    export DISPLAY=:0.0 xeyes
    cinnamon-screensaver-command -d
    vncviewer LOCAL_PC_IP

p.s。代替 cinnamon-screensaver-command,你可能需要使用 gnome-screensaver-command