Операционная система Linux

         

Виртуальный сервер


Одно из многих достоинств X-протокола заключается в том, что X-сервером может служить любая программа, исполняющая X-запросы, а работает ли она на самом деле с каким-нибудь графическим устройством или только притворяется – неважно. Протоколом X11R6 пользуется сервер печати Xprt, который выводит на принтер все X-запросы или Xvnc – X-сервер, управлять которым по специальному протоколу можно с нескольких машин. С помощью Xvnc можно устраивать показ работы какого-нибудь X-клиента по сети – при этом все пользователи одновременно смогут гонять по экрану один и тот же указатель мыши (что, конечно, можно и запретить).

Виртуальный X-сервер может вообще никаких действий не выполнять, а только передавать X-запросы куда-нибудь дальше, например, "настоящему" X-серверу. Так поступает демон Secure Shell, sshd (программа терминального доступа, о которой уже шла речь в этой лекции), переправляя X-запросы X-серверу в зашифрованном виде. Этим свойством sshd можно воспользоваться, если сообщение по X-протоколу между двумя компьютерами невозможно (запрещено межсетевым экраном), или администратор считает такое соединение небезопасным:

methody@sakura:~ ssh methody@fuji methody@fuji's password: Last login: Sat Dec 25 13:26:40 2004 from localhost methody@fuji:~ $ xcalc Error: Can't open display: methody@fuji:~ $ export DISPLAY=sakura:0 methody@fuji:~ $ xcalc Error: Can't open display: sakura:0 methody@fuji:~ $ logout Connection to fuji closed. methody@sakura:~ ssh -X methody@fuji methody@fuji's password: Last login: Sun Dec 26 11:13:08 2004 from sakura.nipponman.ru methody@fuji:~ $ echo $DISPLAY localhost:10.0 methody@fuji:~ $ xcalc # работает :) !

Пример 16.2. Виртуальный X-сервер ssh (html, txt)

Допустим, Мефодий хочет запустить X-клиент (например, xcalc) на другой машине в локальной сети – fuji, где у него есть учетная запись (тоже methody). После всех операций, проделанных в примере, на экране X-сервера на локальной машине Мефодия (за которой он сидит), появится еще одно окно xcalc; при этом этот xcalc в действительности запущен на машине fuji и все вычислительные операции выполняются именно там.

Демона SSH заводит виртуальный X-сервер на удаленной машине, причем обычно номер_сервера заводится таким, чтобы не пересекаться с X-серверами, которые могут быть запущены на этой машине (в примере номер_сервера равен 10). Виртуальный sshd-X сервер принимает все X-запросы с того же компьютера и передает их – в зашифрованном виде – на компьютер, где запущен ssh и невиртуальный X-сервер. Здесь все X-запросы вынимаются из SSH-"водопровода" и передаются местному серверу, как если бы они исходили от местного X-клиента (так оно и есть: этот клиент – ssh).



Содержание раздела