Получение работающего сервера удаленного рабочего стола, работающего на 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, Это заняло некоторое время, чтобы выяснить.
  • Изменить ваш /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 и тому подобное. Очень хорошо.

Другие вопросы по тегам