Когда я подключаюсь по 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
Информация удалённой коробки.
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$ 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
Я не знаю, почему firefox на remotebox2 запускает удаленный сеанс вместо локального.
, кроме firefox -no-remote
еще один параметр - firefox -no-xshm
, который раскрывает технику, которая использовалась для его работы.
X11 общая память - это метод межпроцессного обмена данными, который может использоваться всеми приложениями, подключенными к заданному сеансу x сервера. Она может использоваться для выполнения перетаскивания и других видов взаимодействия на рабочем столе.
Она может использоваться (и используется) также для реализации приложений, "открытых один раз", с целью уменьшения занимаемой площади (или количества окон).
Поскольку протокол X11 является сетевой прозрачностью, "общая память" распространяется и на удаленных клиентов X11.
Обратите внимание, я копал купол, так как это меня беспокоило, и вы можете просто добавить:
MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE
в свой профиль.
Jekk tixtieq tibbrawżja l-internet lokalment bħallikieku kont bilqiegħda quddiem kaxxa remota:
$ ssh -X username@remote.example.com
imbagħad imexxi Firefox ġewwa l- sessjoni tat-terminal remot :
$ firefox https://test-ipv6.com/
Innota l-użu tal-bandiera -X
fil-kmand ssh
.
Tista 'wkoll tagħmel iż-żewġ passi f'darba waħda, bħalma jidher hawn taħt:
$ ssh -X username@remote.example.com firefox http://test-ipv6.com/
Jekk għandek applikazzjoni taħdem mill-bogħod li tesponi xi tip ta 'web frontend, tkun interessat li tesponi r-remote IP: port daqslikieku huwa IP lokali: port. F'dan il-każ, l-għażla -L
tiddefinixxi korrispondenza bejn localhost: localport
u remotehost: remoteport
, kif muri fil-psewdo kmand hawn taħt:
ssh -L localhost:localport:remotehost:remoteport remoteuser@remotehost
Għal eżempju:
$ ssh -L 127.0.0.1:18080:internal.example.com:8080 username@router.example.com
imbagħad ħaddem Firefox lokalment :
$ firefox http://127.0.0.1:18080
Fl-eżempju ta 'hawn fuq, qed tikkonnettja permezz ta' SSH fuq (moħbi) u inti interessat fuq web frontend espost f ' internal.example. com: 8080
. Dan l-IP remot: il-port se jkun espost lokalment fi 127.0.0.1:18080
.
Вы можете попробовать это, когда подключитесь к машине (ssh user@host
; примечание: без опции -X), сначала введите следующую команду
export DISPLAY=:0
, которая изменит дисплей по умолчанию на дисплей текущего экрана рабочего стола. А затем просто введите
firefox
, чтобы Firefox появился на экране рабочего стола. Убедитесь, что вы вошли на рабочий стол, без которого (без входа) вы получите следующую ошибку;
firefox: cannot connect to X server :0
Этот метод будет работать и для заблокированных рабочих столов. Пожалуйста, убедитесь, что Вы вошли на рабочий стол и в оболочку ssh с одинаковым именем пользователя .
Когда существует несколько сеансов работы с рабочим столом, каждый сеанс идентифицируется разным номером как :0
, :1
, :2
и др.
Ни одно из других решений у меня не сработало, так что это было после небольшого поиска на других сайтах.
Вам нужно запустить firefox в отдельном процессе так же, как если бы вы делали все это на локальной машине. Используйте диспетчер профилей для создания нового профиля следующим образом.
export MOZ_NO_REMOTE=1
firefox -ProfileManager
Чтобы сохранить единообразие, я решил называть каждый новый профиль на внешней машине таким же, как имя хоста.
Я просто добавлю то, что работало на меня. Просто используя firefox -no-remote
не удалось выполнить с обычной ошибкой
Error: GDK_BACKEND does not match available displays
Однако, сработало следующее:
ssh -Y user@host
firefox -no-remote
Опция -Y
позволяет осуществлять доверенную переадресацию X11. Доверенные пересылки X11 не подпадают под управление расширения X11 SECURITY. Вы можете рассмотреть возможность добавления опции -C
к команде ssh
для включения компрессии.