我刚刚在一个系统上安装了一个Ubuntu 10.10桌面来做一些开发工作。我想在我的MacBook上运行X服务器环境,而不是跳键盘(Ubuntu盒子上的图形系统不是很好)。
在网上闲逛,我发现了以下命令,我可以在Mac OS X的终端上运行:
/usr/X11/bin/Xnest -geometry 1280x900 :1 & DISPLAY=:1 ssh -X -Y grog@ubuntusys gnome-session
注意我已经设置了ssh,所以身份验证是自动进行的。
这个似乎工作得很好——Ubuntu桌面出现在我的Mac OS X屏幕上!(如果X11还没有运行,它似乎足够聪明,可以启动它)。然而,如果我试图打开任何程序,它会消失。如此接近。
感谢任何建议。
更新:感谢下面的答案提供了一个教程链接,我学会了如何做基本的X转发。您可以在Mac的X终端窗口中这样做:
ssh -X -Y username@targetsystem
则可以启动在远程系统上运行的X应用程序,但它们的窗口在Mac X服务器上。我现在遇到的问题是我想启动gnome桌面会话:
gnome-session
但是问题是会话占用了整个Mac桌面。不能调整大小或移动它。更糟糕的是,由窗口管理器管理的窗口的顶部最终在Mac OS的菜单栏下面,所以你无法访问这些控件。我认为这是Xnest想要解决的问题,还是我误解了它的意义?
在Mac OS X上使用Xnest或Xephyr:
Xnest:1 -geometry 1280x800 -query 10.0.1.x
Xephyr:1 -screen 1280x1024 -query 1.1 .x
您唯一要做的就是在Linux中手动编辑/etc/gdm/custom.cfg或使用gdmsetup GUI程序来启用远程登录。此处以CentOS 5为例进行说明。在Ubuntu中,情况会有所不同。
这种方法与VNC非常不同,VNC就像微软的RDP(屏幕捕获),而XDMCP利用Mac的图形功能来辅助Linux系统。
请记住,X11是专门为在网络连接上使用而设计的,而不是在集成或附加的显示设备上使用。X具有网络透明性:运行应用程序(客户机应用程序,例如Linux上的Firefox)的机器可以不同于用户的本地机器(显示服务器,即Mac上的X11)。这种方法允许在用户的本地X服务器上完全加速2D和3D操作。
根据您运行的OSX版本,最好的选择可能是本机Mac X11发行版。它在安装光盘上(或者如果你像我一样通过App Store获得Lion,它默认在Utilities文件夹中可用)。
启动它(Applications> Utilities> X11)会打开一个特定的X11 x终端,你可以用它来ssh跳转到你的Ubuntu系统。答案1中的链接很老了,我发现这个更有帮助:http://www.craigryder.com/linux-ubuntudebetc/x11-forwarding-and-ssh-for-remote-linux-ubuntu-desktop/
我使用的唯一额外选项是-C标志,以便在运行ssh命令时启用压缩。请注意,你不需要运行一个完整的gnome会话来使用X功能-你可以简单地运行你想要的程序(即$ gedit&)。这让你不用使用整个桌面,但这有点奇怪,因为你的Mac桌面仍然是黑的。您可以在@ http://ubuntuforums.org/showthread.php?t=1373823&page=2
找到有关此技术的更多信息。我还注意到在Ubuntu 10.10上,我的系统显示了你提到的奇怪的UI控制行为,但是当我升级到Ubuntu 11时,这些行为就消失了。我并没有深入研究是否仅仅将X升级到最新版本的10.10 Ubuntu系统就能解决这个问题,但我可以确认它不会出现在11中。
最后一点,这似乎仍然会迫使Mac X11服务器进入全屏模式,但如果你按下COMMAND-ALT-A键,它会立即将你从X桌面带回到你的Lion桌面,这允许我在需要跳出我的Ubuntu系统时同时运行并保持工作效率。我似乎总是能够访问所有X应用程序的所有标题和菜单栏,就像我坐在Ubuntu桌面一样。
一个警告-我正在运行上面的程序连接到我的工作站上运行Ubuntu的VMWare Workstation VM(启用了3D加速)-连接到实际的硬件可能(尽管我不能理解为什么)导致稍微不同的行为。
希望有帮助!
VNC不适合您吗?或通过SSH进行常规X转发