xAp*_*ple 12 linux ssh display xorg
大多数人希望使用“-X”选项通过 ssh 连接到服务器,以便使用客户端的显示在远程主机上运行 GUI 程序。我想在连接到服务器的物理监视器上运行 GUI 程序。这可能吗 ?让我更具体一点:
我的情况如下:我有一个没有键盘或鼠标的工作站,但它连接了一个显示器。我想用我的笔记本电脑通过 SSH 连接到它,并且能够启动一些图形程序,比如 xeyes 或 ssvnc,并让它出现在工作站的监视器上。
[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0
Run Code Online (Sandbox Code Playgroud)
我也许应该更清楚地解释一些事情:
非常感谢任何帮助!
任何 xlib 应用程序都必须连接到 xserver。您必须通过以下任一方式告诉应用程序与服务器的连接:
-display
第一个 xserver 通常可以通过连接字符串 ':0' 到达。所以,试试这个:
xeyes -display :0
Run Code Online (Sandbox Code Playgroud)
或这个
env DISPLAY=:0 xeyes
Run Code Online (Sandbox Code Playgroud)
该工作站是否运行 X Windows 服务器?没有它,这一切都没有意义。
你需要一些东西来将数据处理成图形、像素、颜色和位置。如果没有某种软件来运行它,“监视器”就毫无用处。
假设是。(但从文字来看,肯定听起来不是这样)
给定“工作站”和“笔记本电脑”的主机名(以及通过 /etc/hosts 或 DNS 或其他方式进行的适当 DNS 解析)...如果没有,请用适当的 IP 地址替换机器主机名。
ssh workstation
xhost +laptop
Run Code Online (Sandbox Code Playgroud)
此时您可以退出工作站,因为这会设置工作站 Xserver 上的权限以允许“膝上型电脑”连接。
如果您使用适当的 DISPLAY env var 设置启动您的程序,您可以使应用程序显示在工作站上,同时在您的笔记本电脑上运行。
DISPLAY=workstation:0 xeyes
Run Code Online (Sandbox Code Playgroud)
-或者-
export DISPLAY=workstation:0
xeyes
Run Code Online (Sandbox Code Playgroud)
任何一种方法都有效,后者会导致从该 shell 启动时在工作站上显示与 X11 相关的任何内容。(希望这是有道理的)
'xhost' 行允许笔记本电脑连接到工作站的 Xserver。没有它,您将获得权限被拒绝,除非您在没有权限的情况下启动 X 服务器,这并不是真正推荐的。“xhost”保护仍然很蹩脚,因为数据是在笔记本电脑和工作站之间以“纯文本”方式发送的,并且可能会被嗅探到,但这是一个简单的解决方案。
如果您想要隐私,则需要在笔记本电脑和工作站之间设置某种加密隧道(端口 6000 用于显示:0)。是的,在这一点上变得很奇怪。
如果您处于受控环境中,那么使用“xhost +laptop”命令就足够了,如果您离开该命令“xhost +”的“laptop”部分,那么任何人都可以连接到 Xserver 并显示内容。
请记住,您的鼠标未“连接”到工作站 Xserver,您将无法操作窗口或单击事物。
如果您希望连接鼠标,我建议您使用 x2x、synergy、vnc 或基于 X Windows 的屏幕共享应用程序。
归档时间: |
|
查看次数: |
31202 次 |
最近记录: |