linuxvnc: удалённое наблюдение за локальной консолью

()

Иногда возникает необходимость удалённо посмотреть что именно выводит какоё-то демон на одну из локальных консолей. Как вариант для решения этой задачи можно использовать утилиту linuxvnc.

Для начала установим её:

apt-get install linuxvnc

Запускается linuxvnc командой:

linuxvnc <номер_виртуальной_консоли>

Большая часть параметров linuxvnc аналогична параметрам x11vnc. Так например для запуска на порту, отличном от 5900, нужно использовать параметр: "-rfbport <номер_порта>".

Если вдруг возникнет необходимость запустить linuxvnc сразу для всех консолей, то можно добавить следующие строки в /etc/rc.local:

for i in `seq 1 7`; do
    linuxvnc ${i} -rfbport 590${i}  2> /var/log/linuxvnc_${i}.log &
done

После чего можно подключаться к любой из консолей командой:

vncviewer <адрес_сервера>:<номер_консоли>
krdc+linuxvnc

Окно krdc, подключенного к linuxvnc

Рекомендуется не забывать про настройку файрвола. Доступ к tcp-портам, на которых слушает linuxvnc должен быть у минимально возможного списка ip-адресов.

Рекомендуется установить x11vnc и прочитать соответствующую man-страницу. Однако хотя в man-странице linuxvnc и сказано что утилита использует большинство параметров x11vnc, но на самом деле это не так.

Например параметры -scale и -usepw были просто проигнорированы. Так что о защите сервера паролем и масштабировании картинки придётся забыть. В остальном утилита работает на ура.

Из недостатков так же хочется отметить тот момент, что linuxvnc не поддерживает функции программируемого знакогенератора, а встроенные шрифты не содержат русских букв. Однако в конечном итоге оно и не нужно.

Приятной работы!

Ключевые слова: linux, vnc, linuxvnc, x11vnc.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Alex 2008-04-26 10:15:49 (#)

хотелось бы увидеть ссылку на оф. сайт этой проги

MooSE 2008-04-26 11:18:11 (#)

оно является куском проекта libvncserver. смотреть сюда: http://libvncserver.sourceforge.net/

Alex 2008-04-26 22:06:54 (#)

интересный подход. значит в генте оно ставиться emerge libvncserver. Однако доков оно вместе с собой не ставит. посему вопрос, откуда уважаемый автор взял описалово ключиков, неужели из тырнета?

MooSE 2008-04-26 22:08:09 (#)

взял примерно так:

man linuxvnc. там сцыло на man x11vnc. а дальше - тупое эксперементироване....

Alex 2008-04-26 22:10:52 (#)

localhost alex # man linuxvnc
Ничего про linuxvnc в руководстве нет

MooSE 2008-04-26 22:16:27 (#)

home ~ # dpkg --listfiles linuxvnc | grep man
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/linuxvnc.1.gz

home ~ # man linuxvnc

LINUXVNC(1)

NAME
linuxvnc - export a tty to any VNC client

SYNOPSIS
linuxvnc [ tty_number [ vnc args ] ]

DESCRIPTION
You need root privileges, or at least be in the "tty" group, because it reads /dev/vcsN
and writes /dev/ttyN.

It follows the same idea as WinVNC, x11vnc or OSXvnc, i.e. it takes an existing desktop
and exports it via RFB (VNC), just that LinuxVNC exports text.

If you want to export another tty, specify it as ’tty_number’. You can also pass VNC
options to tune what encodings are used for the VNC session. You can read x11vnc man page
for more information on this.

SEE ALSO
x11vnc(1).

AUTHOR
This manual page was written by Ludovic Drolez <ldrolez@debian.org>, for the Debian
project (but may be used by others).

March 10, 2004 LINUXVNC(1)

Alex 2008-04-26 22:20:46 (#)

да. жосткий ман...описано множество ключей...

MooSE 2008-04-26 22:23:52 (#)

ну ссылка на man x11vnc есть... давай я не буду его тут приводить?:)

Alex 2008-04-26 22:30:43 (#)

не надо. я его уже почитал. там нет ключа -rfbport. Более того, я его еще и попробовал
localhost alex # LinuxVNC -rfbport 5910
26/04/2008 22:27:39 Usage: LinuxVNC [tty_number [vnc args]]

UPD:
Был не прав. Ключ в мане есть и он работает. Правильный вариант:
LinuxVNC 2 -rfbport 5910

Alex 2008-04-26 22:51:10 (#)

Мне кажется гораздо актуальней подобная задача не для локальной консоли, а для ssh-сессии. можно ли такое проделать?

MooSE 2008-04-26 22:53:58 (#)

Хм.... Для SSH вроде создаётся на /dev/tty* а /dev/pty*. Разве что попробовать симлинки создавать...

arcman 2008-04-29 09:18:16 (#)

несовсем понял зачем нужна эта штука
особенно не понял зачем пытаться использовать её для ssh
(зачем удалённо подключаться к удалённой сессии? сразу использовать ssh не судьба)

вывод локальной консоли разве нельзя завернуть в ssh сессию?

MooSE 2008-04-29 09:24:56 (#)

arcman, буду благодарен если расскажешь как вывод локальной консоли завернуть в ssh-сессию.

arcman 2008-04-29 10:24:14 (#)

линукса под рукой нет, но копать надо вроде в эту сторону:
rconsole(1) , remote-tty(1) , ttysrv(8)

arcman 2008-04-29 10:51:27 (#)

http://www.linux.org.ru/books/HOWTO/Text-Terminal-HOWTO-7.html#ss7.7

также возникает вопрос целесообразности подобных операций.
нельзя ли поставленные задачи решить проще, применив стандартные средства?
например посмотреть тотже dmesg

MooSE 2008-05-04 08:16:34 (#)

> http://www.linux.org.ru/books/HOWTO/Text-Terminal-HOWTO-7.html#ss7.7

А без компиляции ядра?:)

> также возникает вопрос целесообразности подобных операций.
> нельзя ли поставленные задачи решить проще, применив стандартные средства?
> например посмотреть тотже dmesg

Можно. Но много всякого ПО валит свой мусор именно на stdout. У меня на предыдущей работе PSS был написанный безымянным автором. Вот он такое любил. Бегать в серверную и читать чего ж он там намусорил на tty1 как-то лениво было...:)
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности