вид удаленного рабочего стола Debian Lenny Machine

1

Позвольте мне дать резюме моей спецификации проекта. У меня есть сервер Windows и куча клиентов Debian в одной локальной сети, на машинах Debian нет системы x Window, они связаны с использованием командной строки. Я запускаю приложение QT при запуске системы, поэтому пользователь взаимодействует только с моим графическим интерфейсом, прежде чем он видит что-либо еще.

В соответствии с требованиями моего проекта, мы должны позволить системным администраторам видеть, что конечный пользователь делает на машинах Debian, в любое время, поэтому он должен иметь возможность видеть их экраны в любое время. Он будет использовать Windows-машину для этого. Поэтому мне интересно, можно ли поделиться экраном Debian с сервером Windows, и что будет с этим связано.

Нужна ли настройка VNC-сервера на компьютерах Debian для этого? Есть ли другой способ?

Эрин С
источник
Приложение QT работает только на консоли?
Тим
да, он запускается из консоли, поскольку нет графического интерфейса.
Эрин c
Обычный способ поделиться существующим сеансом X через VNC - это что-то вроде x11vnc. Однако, если вы не используете X и вместо этого запускаете Qt, встроенный непосредственно в кадровый буфер Linux, x11vncэто вам не поможет. Я не думаю, что существуют какие-либо инструменты, которые будут совместно использовать кадровый буфер Linux через VNC. Qt может быть скомпилирован с поддержкой VNC-сервера, но, насколько я понимаю, это заменит ваш существующий дисплей кадрового буфера, вместо того, чтобы работать одновременно.
Джим Пэрис
это облом, я надеюсь, что смогу найти способ решить эту проблему.
Эрин c

Ответы:

1

В случае, если вы используете терминал только на стороне клиента (вы сказали, что на клиентских хостах не запущен сервер xserver), у меня есть предложение, как этого добиться. На самом деле это минимальный, но легко расширяемый пример, который показывает, как вы можете отслеживать сеанс терминала на удаленном хосте. Я не знаю какого-либо специального программного обеспечения для этого, и, вероятно, есть несколько способов сделать это более элегантным, поэтому, пожалуйста, не ожидайте многого.

Мой первый совет - установить rootshна стороне клиента.

Это оболочка для оболочек, которая записывает все повторяющиеся нажатия клавиш и вывод терминала в файл и / или в системный журнал [ сайт rooth ]

К сожалению, ваш репозиторий Debian не упакован, поэтому вы должны сделать свои собственные двоичные файлы. Этого легко достичь, так как у rooth нет необычных зависимостей. Более того, вам нужен socatинструмент для двунаправленной передачи данных.

Если вы вызываете rootshкак

./rootsh -i -f logfile

новая оболочка входа в систему запускает все, что отражается на терминале из этой оболочки, или любой дочерний процесс записывается logfile(также специальные символы, изначально предназначенные для tty).

Теперь вы можете создать TCP-сокет на клиенте с

socat OPEN:logfile,ioreeof TCP-LISTEN:22222,fork

с которого вы можете читать с хоста админа. Например, с

 socat TCP:clientdomain:22222 STDOUT

или с netcatт. е. telnet(доступны двоичные файлы Windows для socat).

В случае, если вы хотите иметь более безопасный поток данных между узлами, вы также socatможете указать его шифрование OPENSSL. Вы можете найти отличное объяснение этому в статье « Защита трафика между двумя экземплярами Socat с использованием SSL» .

Я признаю, что у моего подхода есть несколько недостатков, но этого достаточно, чтобы проиллюстрировать, что возможно без каких-либо специальных инструментов.

user1146332
источник
Спасибо за подробное объяснение, я попробую, когда у меня будет шанс, и дам вам знать.
Эрин c
Один вопрос, однако, я не думаю, что я смогу контролировать GUI моей программы с помощью вашего метода, даже если у debian нет системы x window, когда моя программа запускается из командной строки, она запускает свой собственный GUI. Итак, вы взаимодействуете с графическим интерфейсом. Смогу ли я просматривать действия пользователей в этом графическом интерфейсе?
Эрин c
если это текстовый графический интерфейс, это не проблема, поскольку передаются все символы терминала. Это основано на тексте, не так ли :)
user1146332
к сожалению, это не текстовый графический интерфейс :) Я думаю, что нет простого способа решить эту проблему
erin c
Таким образом, Qt может получить доступ к фреймбуферу вашей видеокарты напрямую !? Это было бы сумасшествием!
user1146332