Получение работающего сервера удаленного рабочего стола, работающего на Ubuntu 14.04
Хорошо - вот кое-что, что у меня работало много раз в прошлом - X-сервер с поддержкой XDMCP, который обслуживает приятные и блестящие сеансы, включая обработчик входа в систему.
Что я имею:
- Виртуальная машина Ubuntu, работающая на ESXi - я хочу, чтобы эта машина была похожа на Windows Terminal Server.
- Работающая настройка VNC через
x11vnc
- это нормально, если у вас запущена сессия, но нет, если вы хотите войти в систему и создать новый сеанс. Также - довольно грязно на многопользовательском ящике - Много экспериментов с
lightdm
а такжеgdm
, пытаясь получитьXDMCP
функциональность и работает. редактирование/etc/lightdm/lightdm.conf
а также/etc/gdm/*
работает в некоторой степени. Я могу запустить менеджер входа в систему через lightdm, но после входа в систему пользователь просто остается без дела, чтобы поиграть.
В lightdm
(где я сейчас нахожусь), мой lightdm.conf
имеет это:
[SeatDefaults]
allow-guest=false
[XDMCPServer]
enabled=true
port=177
Здесь есть некоторые вещи, которые, я думаю, я просто не понимаю - вот где я хотел бы получить действительно супер ответы:
XDMCP все еще живет (через SSH или нет), даже если он старый и серый. Есть ли что-то новое (например, новый протокол), о котором я не знаю?
Сужается ли база пользователей для такого рода вещей, и я должен использовать другую стратегию? Я действительно не хочу, потому что мне нравятся терминальные серверы.
И - это, конечно, ответ, который я действительно ищу:
- Может кто-то указать мне точные места в
gdm
или жеlightdm
Конфигурационные файлы, которые нужно изменить в Ubuntu 14.04.2 Desktop Edition (64-битная версия), которая в противном случае полностью отсутствует?
Я понимаю, что есть такие проекты, как LTSP, но это не то, что я хочу, так как я не хочу, чтобы мои клиенты загружались в настройку Ubuntu или что-то еще - им просто нужно иметь возможность войти в систему так же, как если бы они использовали Удаленный рабочий стол, чтобы начать сеанс Windows. Я действительно чувствую себя довольно подавленным в этот момент - у меня это работало очень гладко десять лет назад, но теперь рабочее решение полностью ускользает от меня.
1 ответ
ОК, так что я наконец-то понял. Как говорит @gnur, xrdp
это вещь для использования, но не прямо из коробки. Похоже, что XRDP, который поставляется с Ubuntu, старый (ish), поэтому:
- XRDP должен быть построен из источника. Получите исходный код здесь и следуйте очень хорошему руководству, чтобы привести все в разумное рабочее состояние. Без этого переподключение сеанса не работает, что является чем-то вроде ограничителя показа.
Я сделал несколько дополнений, чтобы привести вещи в полную форму:
- XRDP не работает, как другие вещи с X
xmodmap
Таким образом, если ваша клавиатура не работает так, как вы хотите, в сеансе XRDP, вы должны:- Войдите в реальную консольную сессию (т.е. не через XRDP, но, возможно, через консоль ESXi или физически) и адаптируйте вещи к раскладке клавиатуры в этом сеансе. Пытаться
setxkbmap -model pc104 -layout <your-layout>
(dk
в моем случае) - Затем сбросьте рабочий макет в
.ini
файл, который может загрузить XRDP. Сделай это:xrdp-genkeymap mymap.ini
- Выясните, как на самом деле назвать файл, посмотрев на
/var/log/xrdp.log
искать что-то вродеlocal keymap file for 0x0406 found
, Затем назовите свой файл/etc/xrdp/km-0406.ini
, Это заняло некоторое время, чтобы выяснить.
- Войдите в реальную консольную сессию (т.е. не через XRDP, но, возможно, через консоль ESXi или физически) и адаптируйте вещи к раскладке клавиатуры в этом сеансе. Пытаться
- Изменить ваш
/etc/xrdp/xrdp.ini
поэтому у вас есть описание сеанса, которое выглядит так:[xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 delay_ms=2000
Ключевые частиlib
а такжеdelay_ms
- без задержки у меня нет рабочего стола после входа в сеанс XRDP. Кажется, что основной сеанс VNC занимает некоторое время, чтобы подготовиться, и если соединения предпринимаются слишком рано, вы ничего не получите. - Положите что-то разумное в свой
~/.xsession
файл. я имеюxfce4-session
но это было с другой странностью - завершение вкладки в окнах терминала не работало. Видимо, XFCE использует клавишу табуляции для переключения окон. Чтобы это исправить, вам нужно отредактировать (может быть, есть и вещь с графическим интерфейсом)~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
и примените исправление, описанное здесь.
Вот и все! С этим запуском у меня есть очень хорошая замена для XDMCP, которая позволяет пользователям обрабатывать сеансы Ubuntu так же, как они делают сеансы Windows. Как я и хотел:-)
EDIT, использовав это некоторое время, я обнаружил, что решение является работоспособным, но не настолько стабильным. Время от времени переподключение сеанса не будет работать, и пользователи будут оставаться в подвешенном состоянии, не имея возможности войти в систему вообще. Перезапуск сервисов исправляет это, но на самом деле это не так.
Итак - я искал еще для рабочего решения - и нашел его! Мой новый лучший друг - x2go, это автономный X-сервер со специальным клиентским пакетом, который поставляется в нескольких вариантах ОС.
РЕДАКТИРОВАТЬ 2: ОК - так что еще больше об этом. Я обнаружил, что, хотя X2go довольно хорош, у клиента Windows есть своеобразная особенность, которая в значительной степени мешает ему работать с SSH-входами на основе ключей, поэтому мне пришлось включить регулярные PW-входы для моего рабочего стола. Не оптимально, но это не меняет того факта, что X2go действительно хорошо работает во всех остальных отношениях.
РЕДАКТИРОВАТЬ 3: Scarygliders имеет очень хороший сценарий на данный момент, который получает, компилирует и устанавливает все необходимое для блестящей настройки сеанса RDP. Я почти исключаю необходимость в других вещах, которые я нашел. Получить сценарии здесь, клонируя. Тогда беги X11rdp-o-matic.sh --justdoit
, Теперь у меня есть настольный хост, который обслуживает пять пользователей, все они занимаются разработкой Python и тому подобное. Очень хорошо.