Автор Тема: Настройка на Х сървъра  (Прочетена 2335 пъти)

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« -: Sep 20, 2007, 20:45 »
Здравейте.

Имам един сървър на който е инсталирано Ubuntu 7.04 Server Edition (Feisty) на него съм качил един VMware Player на който ще върви една виртуална машина. До тук добре обаче на сървъра нямам инсталирана графична среда и затова не мога да стартирам никакви графични приложения (командата vmplayer също) както всеки сървър и този ще се управлява през ssh, затова след като се логна на него пиша export DISPLAY=192.168.1.20:0, където 192.168.1.20 е ip-то на машината от която се логвам. След това изпълнявам на сървъра командата vmplayer и тя ми връща следния резултат:
Цитат
(vmplayer:9433): Gtk-WARNING **: cannot open display:


Проверих си на локалната машина с echo $DISPLAY да не съм сбъркал дисплея, обаче не съм тъй като ми връща като изход :0 Проверих с iptables -L да нямам някакви правила, които да забраняват връзката — нямам нищо дефинирано като правила. Дадох в конзолата xhost + обаче нищо не стана.  '<img'> Пак същата грешка. След което се сетих да проверя дали Х-а слуша на даден порт, затова изпълних  netstat -at обаче за жалост Х-а го нямаше в списъка  '<img'>
Та въпроса ми е как мога да си накарам локалния Х сървър да слуша на даден порт и да приема отдалечените връзки от сървъра с Ubuntu-то, за да мога да си стартирам приложения от различни места като дам export DISPLAY...
Локалната ми машина е с Debian Lenny.

Предварително благодаря!
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

dedmin

  • Напреднали
  • *****
  • Публикации: 456
    • Профил
Настройка на Х сървъра
« Отговор #1 -: Sep 20, 2007, 22:37 »
Не става с плейъра. Опитай с VirtualBox или XEN.



Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #2 -: Sep 21, 2007, 07:33 »
и аз не съм му фен, но за съжаление това което ще пускам на сървъра няма инсталационни файлове или сорс а идва като image файлове за vmware  '<img'>
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #3 -: Sep 26, 2007, 09:42 »
Разбрах как да си пусна Х-а да слуша на порт 6000 и успях да си пусна графично приложение от друг компютър на моя. Ето какво направих за да си пусна Х-а на tcp порт.
Във файла /etc/X11/xinit/xserverrc имах следната конфигурация:
Цитат
#!/bin/sh

# $Id: xserverrc 189 2005-06-11 00:04:27Z branden $

exec /usr/bin/X11/X -dpi 100  -nolisten tcp


След което я промених по следния начин:
Цитат
#!/bin/sh

# $Id: xserverrc 189 2005-06-11 00:04:27Z branden $

exec /usr/bin/X11/X -dpi 100  
#-nolisten tcp

Обаче kdm-а нещо не се стартира. Като процес го има обаче на практика си седя в конзолата и кде-то не се стартира. Като изпълних startx КДЕ-то тръгна, Х-а си слушаше на порта обаче всички неща които бях писал на кирилица ми излизаха на маймуница. Общо взето където имаше кирилица всичко беше омазано. Върнах старата конфигурация обаче kdm-а още продължава да не се стартира  '<img'>  Трябва да се логна в конзолата и да изпълня /etc/init.d/kdm start за да ми се стартира КДЕ-то и всичко с кирилицата да е наред.
Преинсталирах kdm като първо го де-инсталирах с dpkg -P обаче никакъв резултат.
Някои има ли идея защо не тръгва? В sysvconfig съм му задал да се пуска.
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #4 -: Sep 28, 2007, 13:02 »
първо) може да се каже на ssh да препраща X връзките -X/-Y от командния ред или виж в ssh_config(5) за ForwardX11. мисля, че и сървера трябва да разрешава това - по подразбиране е да, но при теб може да е забранено( виж повече в sshd_config(5) ).

второ) за настойките на граф. среда : точните файлове за твоята ОС не ги знам.
за kdm файла е обикновено .../kdm/Xservers и може да сочи към .../xdm/Xservers.
дебиан, доколкото си спомням, стартира граф. среда на run-level >1. вероятно един stop на kdm и проверка дали е спряла преди start не е излишен.

трето) когато се използва startx, от терминал, се изпълняват по-различни скриптове, от когато се влиза през kdm. обаче би трябвало да си излизат менютата на кирилица, понеже настойките не зависят от променливи в обкръжението.

п.п.: трудно се отговаря на купчина от проблеми.
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #5 -: Sep 28, 2007, 15:43 »
Прегледах man ssh_config и според мен тези опции ForwardX11 и ForwardX11Trusted трябва да се зададат на сървъра, който ще изпълнява графичното приложение което да се препрати на дисплея на клиента. Затова ги разреших, рестартирах ssh демона обаче пак не можах да си пусна графична програма, тъй като съм си върнал стария конфиг на локалния Х, при който Х-а работи на unix socket.
Според мен схемата е следната сървъра си препраща графичните програми към моя Х, който трябва да ги визуализира при мен, обаче тъй като Х-а ми работи на локален unix socket няма как да получи въпросните пакети от отдалечения компютър. Затова локалния ми Х трябва да работи на tcp порт.... Дано правилно съм обяснил какво се случва. Все пак мисля че си достатъчно разбираш и ти е ясно какво искам да ти обесня...


Нямам такъв файл ../kdm/Xservers даже нямам никъде по харда файл Xservers   '<img'>  Това го проверих с find....
Иначе kdm-а съм го проверявал дали работи преди да му дам от конзолата start и не работи.  '<img'>

Това със strartx-а го разбрах след като видях че кирилицата ми се скапва, след изпълнението на тази програма. При пускане на Х-а със startx кирилицата на менютата си се вижда нормално обаче имената на файловете и папките на кирилица излизат на маймуница... '<img'>

P.S>прав си че много проблеми трудно се оправят. Затова гледам да ги решавам един по един....
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #6 -: Sep 28, 2007, 18:28 »
Цитат (abadon @ Сеп. 20 2007,20:45)
...обаче на сървъра нямам инсталирана графична среда ...  и тя ми връща следния резултат:
Цитат
(vmplayer:9433): Gtk-WARNING **: cannot open display:
...

е аз бих очаквал да каже, че му липсва библиотеки като gtk, X11 ... щом няма графична среда ...

вариант 1)
ssh клиента иска ( ssh -{Y|X} ...  ), а sshd сървера разрешава ( X11Forwarding и други X11_настройки ).
след като клиента е поискал, сървера е разрешил и xauth, изпълнен от sshd на сървера, си е създало каквото трябва, то в ssh сесията, ще има, например, DISPLAY=localhost:10.0 и на порт 6010, примерно, ще слуша sshd(! ).

вариант 2)
вярно си се насочил да махнеш -nolisten tcp , но по тази тема ... нямам представа кои/къде са файловете за твоята ос.
трябва да ги пише в kdmrc  .
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #7 -: Sep 28, 2007, 21:41 »
Добре, че ми каза за този файл kdmrc ':ok:' Пуснах locate и видях че се намира в /etc/kde3/kdm/ , след което го отворих и прегледах и открих следния конфиг:
Цитат

..............
[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers=
ServerArgsLocal=-nolisten tcp
ServerCmd=/usr/bin/X -br
................


След което го промених така:
Цитат

................
[X-:*-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers=
ServerArgsLocal=
#-nolisten tcp

ServerCmd=/usr/bin/X -br
.......................

Изпълних в конзолата /etc/init.d/kdm restart и Х-а си се пусна на tcp порт, като кирилицата по папките и файловете си е наред. Засега не съм забелязал някакви проблеми с нея и дано да няма....

Свързах се с сървъра изпълних му
export DISPLAY=192.168.191.26:0 след което дадох vmplayer и получих следната грешка:
Цитат
Xlib: connection to "192.168.191.26:0.0" refused by server
Xlib: No protocol specified
(vmplayer:1999): Gtk-WARNING **: cannot open display:

Затова на локалната си машина изпълних xhost +, върнах се на сървъра и пак vmplayer и той си тръгна без проблем на моя дисплей.  Трябва да видя сега само как се задава оторизация за достъп до моя Х-а само от определен адрес, защото това xhost + разрешава достъпа на всички, което не е много добре. Ако знаеш как се прави ще съм ти благодарен.

А сега по втория ми проблем защо kdm-а не ми се стартира при пускането на ОС-а, при положение че с sysvconfig му е казано да се стартира. Всеки път трябва да се логвам като root конзолно и да изпълнявам /etc/init.d/kdm start
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #8 -: Oct 01, 2007, 11:07 »
'<img'>  да отговоря ли ....
първо виж xhost(1), xinit(1), xdm(1), като за kdm не се сещам.
 ':zzz:'  ':zzz:'  ':zzz:'  ':zzz:'

може така:
1) глобални насторойки
 /etc/X*.hosts, т.е. в  /etc/X0.hosts ( 0- нула! ) при теб, добави отдалечения хост.

или пък така:
2) добавят се подходящи команди xhost +.... в потребителския скрипт за X сесия:
като се стартира потребителска сесия от Display Manager (kdm при теб) се изпълнява потребителски скрипт с команди. Обикновено е ~/.xsession, но пък може да е ~/.xinitrc или ~/.Xclients или ... и ако няма такъв се търси изпълнява някои от глобалните. Ако намериш Xsession за съответния DM, т.е. в случая kdmrc го пише кой е и къде е ( би трябвало да е в /etc/kde3/kdm/ ). Проследяват се командите в Xsession и се разбира точно за твоята дистибуция кои са файловете.
 'B)'


П.П.: а това, че при Ubuntu 7.04 Server Edition (Feisty) са забили аргументите и командите за X сървера, не го намирам за логично.
не виждам, какво им пречи на тези, да ползват стандартен файл Xservers и да не карат потребителите да им ровят из ...
пфу
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #9 -: Oct 01, 2007, 11:48 »
Първото ти приложение не ми свърши работа тъй като тези файлове ги нямаше и не съм пробвал да ги създавам и да описвам разни неща в тях...

Обаче второто ти сработи прегледах /etc/kde3/kdm/kdmrc но нямах нищо описано като файлове '<img'>  Обаче като се разрових в /etc/kde3/kdm/ видях че имам файл "Xaccess" в който като описах хостовете всичко сработи.

Интересно защо след като всичко си работи kdm-а ми не се стартира?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #10 -: Oct 01, 2007, 22:00 »
1) фаиловете /etc/X*.hosts ги няма и едвали ще ги има (недостатъците на xhost са ясно обяснени в xhost(1) ). Ако искаш, ги създаваш, ако не - другия вариант ;

2.1) Xaccess - не  ':xclam:' . Това е "Access control file for XDMCP connections" и е свързано с друго.

2.2) Файловете $HOME/.xinitrc и $HOME/.xsession, като последния зависи от дистрибуцията, обикновено също ги няма и вече темата като, че ли е за друг раздел. Нещата стават строго специфични за ползваната дистрибуция. В конкретния случай мога да дам само насока:

Преполагам, че в kdmrc има Session=path_to_file и в path_to_file има нещо такова:
Примерен код
session=$1
...
case $session in
...
  custom)
    exec $SSH_AGENT $HOME/.xsession
    ;;
...
  *)
    exec $SSH_AGENT "$session"
    ;;
...

, като горното е за по-нови версии, където "$session" трябва да се взима от някои .../kdm/sessions/XXX.desktop файл, където XXX зависи от избраното от менюто на kdm.

Така, при конфигурация като горната в менюто, трябва да може да се избере за тип на сесия custom(потребителска) и тогава ще се изпълни $HOME/.xsession .
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #11 -: Oct 02, 2007, 10:32 »
Ще карам по първия ти вариант и ще създам файловете /etc/X*.hosts въпреки, че втория ми се вижда по-правилното решение обаче е много трудно за изпълнение. Много файлове трява да се променят....

В /etc/kde3/kdm/kdmrc имам:
Цитат
[X-*-Core]
AllowNullPasswd=false
AllowRootLogin=false
AllowShutdown=None
AutoReLogin=true
ClientLogFile=.xsession-errors-%s
Reset=/etc/kde3/kdm/Xreset
Session=/etc/kde3/kdm/Xsession
Setup=/etc/kde3/kdm/Xsetup
Startup=/etc/kde3/kdm/Xstartup

Обаче в Xsession нямам нещата които ми даде като пример  '<img'>  И понеже не съм от най-разбиращите bash ми се вижда по-добре да не променям нищо там....
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

triplek

  • Напреднали
  • *****
  • Публикации: 564
    • Профил
Настройка на Х сървъра
« Отговор #12 -: Oct 02, 2007, 11:25 »
Пробвай с:

echo "export XAUTHORITY=/home/USER/.Xauthority" >>  /root/.bashrc

Като замениш USER с твоя юзър.
Активен

Debian Lenny/sid

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #13 -: Oct 02, 2007, 11:55 »
Това вече съм го сложил, тъй като без него root не можеше да пуска графични програми от конзолата.



Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Настройка на Х сървъра
« Отговор #14 -: Oct 02, 2007, 23:56 »
Тук мисля, че е оригиналния Xsession файл (за Xorg):
Xsession?view=markup
( отдавна не съм разглеждал оригинални пакети за X-window )

От файла се вижда, че ако има избрана сесия failsafe, се стартира ..., иначе, по подразбиране, ако съществура файл, $HOME/.xsession, с ненулева големина, се изпълнява той, а ако ли не, се стартира xsm ( X Session Manager ).
Общо взето дистрибуциите следват този модел и за да се разбере логиката, не се изискват познания по "shell scripting", а по програмиране.
За съжаление някой дистрибуции, усложняват твърде много нещата и мисля, че те разбирам.
Не познавам "Ubuntu 7.04 Server Edition (Feisty)", но за да се разбере if.. then.. else.. или exec, ми се струва, че дори не се изискват, начални познания по програмиране (на който и да е език).

А, ако дистрибуцията не следва горните правила, дори и при "Server Edition" и по-точно, при определени условия, не може да изпълни потребителски X-session скрипт  - има кошчета. Моля разбиращите от Ubuntu да ме поправят и променят създаденото току що мнение.
Активен