当前位置: 首页>>技术问答>>正文


如何通过SSH启动远程firefox窗口?

, ,

问题描述

当我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窗口。没有firefox进程在remotebox上运行。

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

我不知道为什么firebox2上的firefox启动远程会话而不是本地会话。

最佳解决思路

除了firefox -no-remote之外,另一个参数是firefox -no-xshm,它揭示了使其工作的技术。

X11共享内存是一种进程间通信技术,可供连接到给定x服务器会话的所有应用程序使用。它可以用来执行拖动和放大drop和其他类型的桌面交互。

它也可以(并且)用于实现”open once”应用程序,以减少占用空间(或窗口数量)。

由于X11协议是网络透明的,”shared memory”也扩展到远程X11客户端。

次佳解决思路

试试firefox -no-remote

第三种解决思路

注意,我做了圆顶挖掘,因为这让我烦恼,你也可以添加:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

到你的个人资料

第四种思路

你可以试试这个,当你连接到机器(ssh user@host;注意:没有-X选项)时,首先输入以下命令

export DISPLAY=:0 

这会将默认显示更改为当前桌面屏幕的显示。然后输入

firefox

在桌面窗口中生成firefox。确保您已登录桌面,如果没有登录桌面(无登录),您将收到以下错误;

firefox: cannot connect to X server :0

此方法也适用于锁定的桌面。请确保您已使用相同的用户名登录桌面和ssh shell。

当有多个桌面会话时,每个会话由不同的编号标识为:0:1:2等。

第五种思路

没有其他解决方案对我有用,所以这是在对其他网站进行一些搜索之后。

您需要在单独的进程中运行firefox,就像在本地计算机上执行它一样。使用概要文件管理器创建新的概要文件,如下所示。

export MOZ_NO_REMOTE=1
firefox -ProfileManager

为了保持一致,我决定将外部机器上的每个新配置文件命名为与主机名相同。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1738.html,未经允许,请勿转载。