Просмотр полной версии : Cannot open display
Подключаюсь телнетом к удалённому компьютеру (линукс-линукс), пытаюсь открыть какое-нибудь графическое приложение - и получаю сабж.
Переменная $DISPLAY на удалённом компе указана правильно, на своём компьютере сделал xhost + , но все равно подключитьтся не получается. Проблема именно на моём компьютере. С других компов, да даже и из под винды, с соответствующей программой, я к пресловутому удалённому компу подключаюсь без проблем.
Внимание, вопрос:
Где, в каких логах можно посмотреть, на какой стадии падает подключение?
Ещё одну забавную штуку заметил:
Если выключить kdm, залогиниться в терминале и запустить startx, то все прекрасно открывается. Что за чёрт? :(
UPD
nolisten tcp в /etc/kde3/kdm/kdmrc
Вот как бывает... :)
Ромариус
06.11.2007, 11:40
а зачем телнетом? лучше(и безопаснее) ssh -X user@comp
а граф. прогу на другом компе запускать в фоне proga&
лучше ssh
Чем лучше? (только не надо отвечать - чем telnet :D )
У нас локалка, все компы друг друга видят - так и задумано.
Ромариус
06.11.2007, 12:21
Чем лучше?
Ну вообще то да, для рассматриваемой в первом посте проблемы разницы нет. :)
Дровосек
06.11.2007, 13:41
-Ars-,
ssh -X user@comp
просто всегда работает и без всякого без дополнительного трахания.
просто всегда работает и без всякого без дополнительного трахания
даже когда
nolisten tcp
:pnikovsky
Telepoozeeck
06.11.2007, 16:07
-Ars-,
Где, в каких логах можно посмотреть, на какой стадии падает подключение?
sudo find /var -exec grep -i "xorg" '{}' \; -print
sudo find ~ -exec grep -i "xorg" '{}' \; -print
Telepoozeeck
06.11.2007, 16:10
это на вопрос где и как. а вот на вопрос ЧТО... телнет, приложение которые ты запускаешь.
Дровосек
06.11.2007, 18:55
даже когда
nolisten tcp
тут прЫнцЫп такой - если ssh работает, то и ssh -Х будет работать. А ssh работает всегда (ну почти всегда), ему пофик какой-то kdm :о)
даже когда
Цитата:
Сообщение от -Ars-
nolisten tcp
Ну и каша ;)
Да какая разница что у тебя с КДМом ? Если уж ты пришел на комп через ssh-тунель - ты локальный юзер, все, что тебе нужно чтобы на ТВОЕМ компе Х-сервер бежал.
Коротко так: Х это СЕРВЕР и графическое приложение обращается к нему, на том компе где бежит приложение вообще Х-ы устанавливать не обязательно.
Непонятно при чем тут телнет ? У Х-сервера есть свой порт на котором он слушает (обычно выше 6000), или не слушает, ssh в данном случае - тонель, ты через него можешь что угодно пробрасывать не только на комп, но и на внутренние сети, но в случае ключа Х ты вообще на юникс_сокет Х-ов цепляешся.
КДЕ с кочки зрения полосы худший вариант, надо минимум 2,5 мега симметричных чтобы хоть что-то шевелилось. Для Гнома достаточно 0,5 мега, для всякого легковесноко 0,25 мега СИММЕТРИЧНЫХ.
Telepoozeeck
07.11.2007, 00:49
-Ars-, а ты уверен что у тебя локальный Х сервер может принимать запросы Х приложений извне?
сделай телнет на порт Х сервера. и заодно nmap -sT -sU x-server.host.home от рута.
Значит, так:
Во-первых, специально для Телепузиков, которым лично я благодарен за полезные советы и расширение горизонтов: проблему я уже решил :)
Во-вторых, для esper-ов, к которым тоже относится всё, сказанное для Телепузика выше:
по-умолчанию у нас все коннектятся друг к другу по телнету. Это раз. Традиция / привычка - непринципиально. В гигабитной локалке - не пофиг ли мне, сколько жрёт KDE?
А вот теперь вопрос для вас обоих (или даже четверых :) ):
Я подключаюсь с работы домой, используя ssh -X - приложения из дома на работе не открываются. Надо где-то что-то включить?
Telepoozeeck
07.11.2007, 09:41
-Ars-, ну? сделал? скажи в чём была проблема. интересно же ж.
Я подключаюсь с работы домой, используя ssh -X - приложения из дома на работе не открываются. Надо где-то что-то включить?
1.
AllowTcpForwarding yes
X11Forwarding yes
2. проверить файрвол\раутер дома: блокирование 6000 и 22 порта.
3. а дома у тебя работает ssh -X ?
скажи в чём была проблема.
Та я ж сказал - в дифолтных настройках KDE было выставлено tcp nolisten. Поэтому, когда грузился через kdm - были проблемы.
AllowTcpForwarding yes
Добавил - не изменилось ничего.
X11Forwarding yes
Было включено.
проверить раутер дома: блокирование 6000 порта.
А это причём? Если я правильно понимаю, когда подключаюсь с использованием ssh -X, то весь траффик инкапсулируется в нём. Или нет?
Я подключаюсь с работы домой, используя ssh -X - приложения
1. Порты и адреса:
проверить файрвол\раутер дома: блокирование 6000 и 22 порта.
это мне кажется не так. Сам сервер стоит у тебя на работе, а значит приложение захочит конектится к тебе на работу, какие ИП адреса у тебя я не знаю (локальные или глобальные), а значит что надо проверить что порт (кажется 6000) из дому конектится на рабочий компьютер например через telnet на порт 6000
Пусть Эспер меня поправит если я не прав.
Хотя...
2. Вопрос
С других компов, да даже и из под винды, с соответствующей программой, я к пресловутому удалённому компу подключаюсь без проблем.
Это с тойже сети на работе домой ?
3. Вопрос
Переменная $DISPLAY на удалённом компе указана правильно
ты случаем не забыл указать таким образом ? set DISPLAY=moi.address.net:0.0
4. Какой командой ты пользуешься, дай просетейший пример
можешь выложить логи, если есть чтото интересное на обоих компьютерах.
Кстати вот порыскал:
1. Тут (http://lists.kde.org/?l=kde-linux&m=110925983707337&w=2) может быть ответ на твой вопрос
2.Тут (http://www.owlriver.com/tips/gdm-setup/remotexkdm.html) что ещё, но не совсем понял кто клиент а кто сервер
3. Это (http://www.cyberciti.biz/tips/iptables-block-remote-x-window-server-connection.html) если вдруг окажется нету конекта из дому на работу
Сам сервер стоит у тебя на работе
Всё перепутал с точностью до наоборот.
Telepoozeeck
07.11.2007, 11:23
А это причём? Если я правильно понимаю, когда подключаюсь с использованием ssh -X, то весь траффик инкапсулируется в нём.
нееееееет! стоп! а кто сказал что у тебя сервер на работе свободно слушает 6000 (или какой там порт)?
ты проверил?
Всё перепутал с точностью до наоборот.
Ты написал
Я подключаюсь с работы домой...приложения из дома на работе не открываются. Надо где-то что-то включить?
Я это понял как линукс дома и ты хочешь сидя на работе запустить апликацию что будет бежать дома.
Так вот когда ты подключаешься к компьютеру то сервер это то что у тебя а не наоборот, и апликация открывает окно и конект на тебя а не наоборот
с Х всё наоборот - Х терминал является windows сервером, а "сервер" на котором бегает апликация является клиентом в X-windows
Telepoozeeck
07.11.2007, 11:31
Всё перепутал с точностью до наоборот.
сам ты перепутал :) у тебя Х сервер (переменная DISPLAY о чём говорит?) где? на работе.
не обижайся но походу дела тут всё смешалось сервер-Х сервер-клиент.
в данном случае клиент это твой удалённый домашний комп, а сервер это твой комп на работе за которым ты сидишь на прямую... как ни парадоксально слышится :)
это всё равно что один чепятает на клавиатуре а второй в другой комнате положив ноги на сисблок смотрит в монитор.
Telepoozeeck
07.11.2007, 11:32
Lyonia, :)
Telepoozeeck
07.11.2007, 11:33
блиииин! среда. рабочий день называется :):):)
как один вариантов (это тоже самое) запуск апликации на домашнем компьютере с шела (неважно какого) чтото ввиде
firefox -display my_x_server_machine_name:0.0 &
вот ещё линк (http://linux.about.com/od/nwb_guide/a/gdenwb01t52s06.htm) тогда апликаци открывет окно на аддрес дисплея т.е. на тебя кроме того если 0:0 то это кажется (могу ошибатся) порт 6000, 0:1 это уже другой порт.
Кстати если есть два дисплея, как АЛьФ любит то модно открывать конекты на каждый дисплей отельно, при том первая цифра говорит ряд, вторая колонка т.е. теретически можешь сделать дисплей MxN маленьких дисплеев
Telepoozeeck,
Я был быстрее? я "чепятал" быстрее тебя ?
а кто сказал что у тебя сервер на работе свободно слушает 6000 (или какой там порт)?
Кстати это должно быть видно элементарно с логов с домашнего компьютера.
Как работает Линукс Х сервер, плохонькая статья (http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlxwindows.html), лучше пока ненашёл
Telepoozeeck
07.11.2007, 12:15
Я был быстрее? я "чепятал" быстрее тебя ?
дурные головы :)
Telepoozeeck
07.11.2007, 12:16
Кстати это должно быть видно элементарно с логов с домашнего компьютера.
ты их видел? и я нет:)
Telepoozeeck,
я тоже нет, но судя по тому что уже АРС изчес два часа назад это значит что работает или он продолжает "копать"
а кто сказал что у тебя сервер на работе свободно слушает 6000 (или какой там порт)?
О! Вот тут-то я и не совсем понимаю. С одной стороны, если я таким образом подключаюсь в локалке - то всё работает. Ergo, у меня проблем нет. С другой - я выхожу из компа, который сидит в локалке, которая раутится в другую локалку из которой уже выход наружу. Если я правильно понял esper-а, то ssh-у пофиг, как проходить, а потом и обратно пофиг как возвращать, поскольку ssh в данном случае служит и как VPN, а не только как "безопасный телнет" :). То есть проблем быть не должно.
не обижайся но походу дела тут всё смешалось сервер-Х сервер-клиент.
Да я и не обижаюсь. Терминологию установили - продолжаем разговор.
Lyonia, пожалуйста, обрати внимание, что исходную задачу я уже порешил и теперь речь идёт про открытие графических аппликаций с моего домашнего компа на рабочем. В данном случае указание адреса компа смысла не имеет - это локалка 192.168.х.х/24, домашнему компу с ней просто нечего делать :)
это значит что работает
Это значит, что Арс - работает. А фигнёй я занимаюсь в перерывах. Вот как сейчас :)
-Ars-,
Я всё вижу. а куда ты прикажешь твоей апликации открывать конект.
Ему обязательно надо вскормить какойто адресс.
В данном случае указание адреса компа смысла не имеет - это локалка 192.168.х.х/24, домашнему компу с ней просто нечего делать
мне трудно чтото говорить но может когда ты открыл тунель то в тунеле обязательно есть второй адресс, какже без него.
Вот тут-то я и не совсем понимаю. С одной стороны, если я таким образом подключаюсь в локалке - то всё работает
ну правильно есть два адресса. видны напрямую никто не мешает конектится друг на друга (хотя нужен конект как раз "на тебя")
мне трудно чтото говорить
К дохтуру, обязательно к дохтуру! :sinyak:
когда ты открыл тунель то в тунеле обязательно есть второй адресс, какже без него
Пример:
коннекчусь я в локалке с компа 1 на комп 2 посредством ssh -X . Подключившись, на компе 2 я пишу echo $DISPLAY и получаю:
localhost:10.0
А когда я делаю то же самое на домашний комп, то получаю в ответ айпишнег гейтвея на работе.
Стоп... А не может ли быть причиной всего этого тот факт, что у меня настроен порт форвард на раутере - я коннекчусь по ssh на 23-й порт, а он уже перебрасывает на 22-й в локалке? Хотя, если бы это было проблемой - само соединение, наверное, тоже не устанавливалось бы...?
-Ars-,
я может чтото выпустил, если задам вопрос что ты уже решил извини
1. Надо решить вопрос о форфарде X11 на ssh
Линк 1 (http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html) Линк 2 (http://csociety.ecn.purdue.edu/~sigos/projects/ssh/forwarding/#X11) Линк 3 (http://www.cag.lcs.mit.edu/~wentzlaf/faq/ssh_X.html)
2. Решить вопрос с адресом - собственно куда то переправлять и куда конектится
не может ли быть причиной всего этого тот факт, что у меня настроен порт форвард на раутере - я коннекчусь по ssh
думаю что нет
Я перепрочитал все ответы - думаю чтото тут в другом.
Вот, мля! Если я у себя на домашнем компе ставлю:
export DISPLAY=localhost:10.0
как на рабочем компе, то всё работает. Почему, мля, оно не определяется само через SSH? Ведь должно?
прочитал один из линков что я давал а чему у тебя равно $DISPLAY на твоем компьютере на работе ?
Почему, мля, оно не определяется само через SSH? Ведь должно?
не думаю.
В своё время мы какието скрипты писали в .tcshrc чтобы он овтоматом display ставил. Само не выставлялось.
по поводу адреса у тебя localhost:10.0
Forwarding traffic.
SSH will allocate a "fake" display on the remote system and attach a "dummy" X server to it. It forwards traffic sent to the fake display through the encrypted tunnel. On the other end, it then gets sent to whatever display your $DISPLAY variable pointed to on the ssh client system.
SSH will automatically set your DISPLAY variable on the remote system to the "fake" server.
:10.0 это видимо и есть виртуальный дисплэй
Lyonia, SSH will automatically set your DISPLAY variable on the remote system to the "fake" server.
вот это то, что важно.
ему у тебя равно $DISPLAY на твоем компьютере на работе
:0.0
мы какието скрипты писали в .tcshrc чтобы он овтоматом display ставил.
ХЗ. Я уже ничего не понимаю. Попробовал законнектиться в другую локалку - та же проблема, что надо выставлять $DISPLAY вручную...
ХЗ. Я уже ничего не понимаю. Попробовал законнектиться в другую локалку - та же проблема, что надо выставлять $DISPLAY вручную...
Я не знаю как решать, но почти всегда была такая проблема, ин адо было её решать особенно когда черещз Xdчегототам приходилось работать
Поэтому и скрипты были.
нашёл! У меня в .shrc было прописано следующее:
client_ip=`echo $SSH_CLIENT | awk '// {print $1}'`
if [ $client_ip ]; then
export DISPLAY="$client_ip:0.0"
# echo "Exported DISPLAY with ip: $client_ip:0.0" # Pay attention that this line will prevent you from using scp
else
export DISPLAY=":0"
fi
Убрал - заработало :)
Telepoozeeck
07.11.2007, 16:48
б.л.я.д.ь.!!! сцуко так и думал шо какая нить х.у.й.н.я. всралась
Telepoozeeck, вроде, цензуромата на форуме нет ;)
Telepoozeeck
07.11.2007, 16:53
-Ars-, а я на всрак случай :hmm:
Убрал - заработало
как говорил когда-то мужик-программист что работали вместе когда он баг отыскивал: "Вот почему не стреляла - бо не заряжена була"
Все сообщения отражают мнения их авторов, и администрация никакой ответственности за них не несёт.
Powered by: vBulletin, Copyright © 2000 - 2007, Jelsoft Enterprises Limited.
© 2001-2007 Израильский Форум