当我通过 SSH 连接到远程机器时
$ ssh -X remotebox
然后在远程框上启动 Firefox
remotebox$ firefox
并且我在本地机器上运行着 Firefox,因此会打开一个本地 Firefox 窗口。但远程机器上没有运行 Firefox 进程。
如果我的本地机器上没有运行 Firefox,那么将会打开一个远程 Firefox 窗口。
为什么会打开本地 Firefox 窗口?我该如何防止这种情况发生?
这里有一些有关我的本地系统的更多信息。
Linux lesmana-laptop 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.1 LTS
Release: 10.04
Codename: lucid
DISPLAY=:0.0
Mozilla Firefox 3.6.8, Copyright (c) 1998 - 2010 mozilla.org
remotebox 的信息。
Linux dxray 2.6.22.19-0.4-default #1 SMP 2009-08-14 02:09:16 +0200 x86_64 x86_64 x86_64 GNU/Linux
LSB Version: core-2.0-noarch:core-3.0-noarch:core-2.0-x86_64:core-3.0-x86_64:desktop-3.1-amd64:desktop-3.1-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.1-amd64:graphics-3.1-noarch
Distributor ID: SUSE LINUX
Description: openSUSE 10.3 (X86-64)
Release: 10.3
Codename: n/a
DISPLAY=localhost:15.0
Mozilla Firefox 3.0.14, Copyright (c) 1998 - 2009 mozilla.org
以下命令通过远程 Firefox 窗口启动远程 Firefox 会话。
remotebox$ firefox -no-remote
以下命令会产生短暂的延迟,然后返回提示符并弹出本地 Firefox 窗口。remotebox 上没有运行 Firefox 进程。
remotebox$ firefox
remotebox2 的信息。
Linux marvin 2.6.31-22-generic #60-Ubuntu SMP Thu May 27 00:22:23 UTC 2010 i686 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 9.10
Release: 9.10
Codename: karmic
DISPLAY=localhost:11.0
Mozilla Firefox 3.6.8, Copyright (c) 1998 - 2010 mozilla.org
remotebox2 上的以下命令按预期启动远程 Firefox 会话。
remotebox2$ firefox
我不知道为什么 remotebox2 上的 Firefox 启动远程会话而不是本地会话。
答案1
此外,firefox -no-remote
另一个参数firefox -no-xshm
揭示了使其工作所使用的技术。
X11 共享内存是一种进程间通信技术,可供连接到给定 x 服务器会话的所有应用程序使用。它可用于执行拖放和其他类型的桌面交互。
它也可以(并且正在)用于实现“打开一次”应用程序,以减少占用空间(或窗口数量)。
由于 X11 协议对网络是透明的,因此“共享内存”也扩展到远程 X11 客户端。
答案2
尝试firefox -no-remote
答案3
请注意,我确实挖掘了圆顶,因为这让我很烦恼,你也可以添加:
MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE
到您的个人资料。
答案4
你可以尝试一下,当你连接到机器时(ssh user@host
注意:没有 -X 选项),首先输入以下命令
export DISPLAY=:0
这会将默认显示更改为当前桌面屏幕。然后只需输入
firefox
在桌面窗口上启动 Firefox。请确保您已登录桌面,否则(没有登录)您将收到以下错误;
firefox: cannot connect to X server :0
此方法也适用于锁定的桌面。请确保您已使用以下用户名和密码登录桌面和 ssh shell:相同的用户名。
当有多个桌面会话时,每个会话由不同的编号标识,如、:0
、等。 :1
:2