通过 SSH 进行 X11 转发

通过 SSH 进行 X11 转发

过去几个小时我一直在玩X11转发,到目前为止我已经成功地将我的台式电脑的X服务器转发到我的笔记本电脑,使用X11VNC作为服务器,X2VNC作为客户端。 X2VNC 使用 Xinerama 在我的笔记本电脑和台式电脑之间提供类似双屏的行为。

实际上真的很棒!

我知道大多数 Linux 系统在 TTY7 上运行 Xorg 和桌面环境。

因此我在想,是否有可能以任何方式将 VNC 隧道绑定到它自己的 TTY 上?

如果能够在两个 TTY 之间来回切换以选择要管理的计算机,那就太好了。与使用 Xinerama 或 GUI 相比,我更喜欢这种方法。

答案1

我想这并不是一个真正的答案,但它可能是一个起点。

我使用 xinit 启动了一堆额外的 X 服务器,如下所示;

xinit -- :1 tty3   
xinit -- :2    
xinit -- :3 tty5    
xinit -- :4

看起来我什至可以在不同的虚拟显示器上启动多个 gnome3 和 xfce 会话

startx -- :2  tty3   
startx -- :3  tty4

现在我可以通过导出 DISPLAY var 在这些会话中启动内容export DISPLAY=:3,然后使用 Ctrl-Alt-F2、F3 等选择它

然而我完全不知道我在做什么(我是在切换 DISPLAY、会话、控制台还是 tty?),正如你所说,它非常酷......;-)

[tomh@workstation001 ~]$ export DISPLAY=:4
[tomh@workstation001 ~]$ google-chrome

答案2

我知道这很旧但是:

xinit -e ssh -XYC $HOSTTOSSHTO startx -- :1

我看到的唯一缺点是会话开始后您无法关闭登录终端。像其他提到的帖子一样,用CTRL+ ALT+来回移动。F#我一直用我的 Raspberry Pi 来完成此操作,并且也通过互联网上的服务器等来完成此操作(有点慢)。您还可以startx/usr/bin/icewmopenboxstartKDE其他名称进行交换。

答案3

我似乎找到了一个合适的解决方案。

我专门创建了一个用户,用于连接到我的台式计算机。

在我的笔记本电脑上用户的 ~/.xinitrc 中,我有以下行(/home/desktop/.xinitrc):

exec vncviewer 192.168.1.2

192.168.1.2是我的台式电脑在我的网络上的IP。

就我而言,我现在在台式电脑上使用 Tiger VNC 作为客户端,并仍然使用 X11VNC 作为服务器。

我想任何客户都会这样做。

现在的工作方式是,我通过 CTRL+ALT+F2 输入 tty2,以新桌面用户身份登录,然后使用 启动 x xinit -- :1。新的 x 服务器将在 tty8 上启动,因为我的主 x 服务器已经在 tty7 上运行。

vncviewer 运行并成功连接到我的台式电脑,如果台式电脑的分辨率大于笔记本电脑的分辨率,则提供整个屏幕和滚动条。

现在,我可以使用 CTRL+ALT+7 和 CTRL+ALT+8 在笔记本电脑和台式电脑之间轻松切换。

这是假设您使用 Tiger VNC 的完整过程(唯一的区别是exec vncviewer x.x.x.x):

  1. 创建新用户adduser desktop
  2. 新用户的配置使用默认值即可,因此请继续按 Enter 直到创建用户。
  3. 打开/home/desktop/.xinitrc(记住以 root 身份执行此操作,除非您以桌面身份登录并且还要注意权限)并清除文件(如果有任何内容)并输入以下行:exec vncviewer x.x.x.x
  4. 将 替换x.x.x.x为您想要的 IP 地址。
  5. 保存文件。
  6. 使用 CTRL+ALT+X 输入未使用的 tty,其中 X 是 1 到 9 之间的数字。
  7. 登录身份desktop
  8. 使用 启动新的 X 服务器xinit -- :1,如果 :1 已在使用中,您可以使用不同的显示。
  9. 您将被发送到启动 X 服务器的新 tty,瞧! Tiger VNC 现在应该连接到您选择的 IP 地址。

可能如果您的桌面环境在您从任何用户启动 X 时自动启动,则会遇到麻烦。因此,如果事情没有按预期方式进行,请记住这一点。

相关内容