среда, 28 ноября 2007 г.

Настройка X-сервера теминалов

На сервере настраивать X-сервер необязательно. X-сервер должен быть установлен на клиенте(на сервере достаточно X-клиента libx11).
Для того, чтобы появлялось что-то более полезное вместо xterm на сервере должен стоять WM(xfce4, twm, etc) или DE(Gnome, KDE, etc) и в ~/.xsession или глобально должна быть настроена его загрузка.

$ ssh server
Установить xdm, libx11(встанет по зависимостям) и фонты:
$ sudo apt-get install xdm xfonts-base
Установить WM/DE:
$ sudo apt-get install xfwm4 (или kde/gnome)
Настроить конфигурацию X-сессии:
$ cat > .xsession
startxfce4 (или startkde/gnome-session)
^D
Настроить доступ к менеджеру дисплеев XDM с любых узлов:
$ sudoedit /etc/X11/xdm/Xaccess
...

* #any host can get a login window

...
Разрешаем протокол удаленной X11-авторизации XDMCP:
$ sudoedit /etc/X11/xdm/xdm-config
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
!DisplayManager.requestPort: 0
Запускаем XDM:
$ sudo /etc/init.d/xdm start
Готово
$ exit
На клиенте

Ставим XDMCP-клиент(tsclient поддерживает RDP,VNC,XDMCP):
$ sudo apt-get install tsclient xnest
Запускаем:
$ tsclient
Указываем протокол XDMCP, имя сервера, соединиться. Авторизуемся и попадаем в графическую среду. Терминал-сервер готов.

P.S.
Пункт создания .xsession в Debian необязателен, т.к. при установке первого WM/DE деб автоматически устанавливает его системным x-session-manager(update-alternatives --list x-session-manager) и системным винменеджером(update-alternatives --list x-window-manager).

P.P.S
Можно сделать "apt-get install sysvconfig" и вместо "/etc/init.d/xdm start" можно будет запускать сервисы как в RedHat: "service xdm start". А вместо постоянных sudo или su можно сделать:
$ cat ~/.bash_aliases
alias dpkg="sudo dpkg"
alias aptitude="sudo aptitude"
alias apt-get="sudo apt-get"
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
alias j="jobs"
alias grep="grep --colour=auto"
alias service="sudo service"
alias sysvconfig="sudo sysvconfig"