Зачастую целая группа людей, работающих на разных компьютерах и даже из разных мест, должны разделять одну и ту же сессию терминала. Разделенная сессия означает, что вся группа печатает на общей клавиатуре (по очереди) и видит один и тот же экран с результатами команд, приходящими с удаленного компьютера. Такая разделяемая сессия может быть либо подключение к удаленному компьютеру, либо работа в местном CYGWIN.

linked/Terminal-Session-Sharing-6.png

linked/Terminal-Session-Sharing-6.png

Fig.1. Terminal Session Sharing

Когда такая "разделенная" сессия может быть нужна:

Каждое окно терминала Proxy32 содержит встроенный TELNET/TLS сервер и один "слушающий" COM-PORT для разделения существующей терминальной сессии с удаленными пользователями. Удаленные пользователи подключаются по протоколам TELNET, TELNET/TLS или Serial к терминалу Proxy32, чтобы получить копию экрана удаленного компьютера и чтобы печатать команды в разделенную сессию терминала. Только один пользователь в любой момент времени может печатать команды для удаленного компьютера (разделенная сессия означает общая клавиатура и общий экран), в противном случае удаленный компьютер не сможет распознать команды. Местный пользователь в терминале Proxy32 может переключать удаленных пользователей в режим "только для чтения", в котором они будут продолжать получать результаты команд с удаленного компьютера, но они не смогут печатать свои команды на удаленный компьютер.

Пример по шагам с использванием двух терминалов в одном рабочем пространстве Proxy32

Шаг 1:

Создать терминал и подключить его к удаленному оборудованию. Это сессия терминала, которую мы будем разделять.

linked/Terminal-Session-Sharing-Example-Step1.png

linked/Terminal-Session-Sharing-Example-Step1.png

Рис.2 Терминал разделяемой сессии (вверху) и терминал, который будет использоаться для подключения к разделяемой сессии, (внизу) готовы к работе.

Шаг 2:

Извлечь информацию, которую нужно передать другим пользователям, чтобы они могли подключиться к разделяемой сессии (к терминалу, который мы создали на шаге 1). Для этого необходимо открыть в разделяемом терминале выпадающий список, который находится справа от кнопки с изображением замка (ссылка 10) и в этом списке выбрать строчку, которая содержит информацию о подключении.

linked/annotated-terminal-picture-separate-copies-ref-10.png

linked/annotated-terminal-picture-separate-copies-ref-10.png

При выборе строчки ее текст копируется на клипборд, так что его легко вставить в текстовое сообщение или в e-mail и отправить пользователю, который будет использовать эту информацию, чтобы подключиться к разделяемой сессии. Содержимое списка состоит из 3-х частей. В верхней части указан номер порта, к которому нужно подключаться, чтобы получить доступ к разделяемой сессии (каждая разделяемая сессия или окно терминала имеют свой уникальный номер порта). Во второй части списка после горизонтальной линии приведен перечень IP адресов, к которым можно подключаться, чтобы получить доступ к разделяемой сессии терминала. В третьей части списка после горизонтальной линии приведен список комбинаций протокол/IP адрес/порт, которые можно использовать, чтобы подключаться к разделяемой сессии терминала. Протокол может быть или TELNET или TELNET-TLS в зависимости от состояния кнопки включения TLS (ссылка 9).

linked/annotated-terminal-picture-separate-copies-ref-9.png

linked/annotated-terminal-picture-separate-copies-ref-9.png

Список IP адресов может содержать только один IP адрес 127.0.0.1, если включена опция "TSS Server listens only on loopback IP" в меню терминала "Control/Sharing Terminal Session with other users/TELNET/TLS SERVER". Выпадающий список содержит информацию в разных сочетаниях, чтобы пользователь мог выбрать, какой элемент списка он хочет скопировать на клипборд для передачи другому пользователю. Содержимое списка обновляется каждый раз, когда он открывается. При повторном открытии список IP адресов или протокол могут измениться, если изменилась конфигурация терминала или компьютера. Кроме того, пользователь должен убедиться, что опция "TSS Server denies new connections" в меню терминала не включена. При использовании протокола TELNET-TLS для разделения сессии может возникнуть необходимость задать параметры протокола TLS, включая выбор сертификата, который будет использоваться при аутентификации подключения к разделяемой сессии.

linked/Terminal-Session-Sharing-Example-Step2.png

linked/Terminal-Session-Sharing-Example-Step2.png

Рис.3 Владелец разделяемой сессии копирует то клипбоард информацию (путем ее выбора из выпадающего списка) "telnet belous-PC 64382", которая нужна для подключения к разделяемой сессии .

TELNET сервер в каждом из окон терминала использует свой уникальный номер TCP порта для того, чтобы принимать запросы на подключение, приходящие от TELNET терминалов удаленных пользователей. Таким образом, путем выбора номера порта для подключения удаленный пользователь может выбирать к какому из окон терминала основного пользователя он будет подключаться.

По умолчанию в Proxy32 при создании нового окна встроенного терминала номер TCP порта для встроенного TELNET сервера выбирается из списка свободных портов, которые имеются в системе. Если несколько окон встроенного терминала создаются подряд одно за другим, то выбранные номера портов могут оказаться последовательными. Если окно встроенного терминала закрывается, то используемый номер порта освобождается и впоследствии может быть назначен одному из вновь создаваемых окон. По умолчанию пользователь не имеет контроля над тем, какие номера портов выделяются вновь создаваемым окнам терминала. В ситуации, когда TELNET сервер находится за Firewall-ом, то пользователь может выбрать опцию, при которой каждое вновь создаваемое окно будет пытаться использовать заданный начальный номер порта, например, 1300. Если этот номер порта свободен, он будет использован, а если он занят, то это окно будет пытаться использовать следующий номер порта 1301. Процесс будет продолжаться путем увеличения номера порта на единицу до тех пор, пока свободный порт не будет найден и использован. Следующее создаваемое окно терминала будет использовать такой же алгоритм для выбора номера порта. В результате все создаваемые окна будут иметь номера портов в диапазоне 1300 и чуть выше при условии, что этот диапазон портов свободен в системе. Пользователь может включать и выключать этот алгоритм выбора портов, а также выбирать начальный номер порта, который по умолчанию равен 1300. Эти настройки находятся в меню “Settings/Initial Terminal Settings/Terminal Session Sharing”. Начальный порт по умолчанию был выбран для использования на Windows XP, а при использовании Proxy32 на других операционных системах начальный порт может быть скорректирован для того, чтобы его значение попадало в диапазон свободных портов, которые позволено использовать в конкретной операционной системе. При использовании Firewall диапазон портов, используемый окнами терминала Proxy32 (в нашем примере диапазон портов, начиная с 1300 и чуть выше) должен быть открыт в Firewall для того, чтобы удаленные пользователи могли подключаться к этим окнам терминала.

Шаг 3.

Удаленный пользователь использует полученную информацию для подключения к разделяемой сессии. Если удаленный пользователь получил от владельца разделяемой сессии строчку "telnet belous-PC 64382", которая скопирована из выпадающего списка в разделямом терминале, то он может вставить эту строчку в свой bash терминал и нажать клавишу Enter для подключения к разделяемой сессии. При использовании протокола TELNET-TLS для разделения сессии может возникнуть необходимость задать параметры протокола TLS, включая выбор сертификата, который будет использоваться при аутентификации подключения к разделяемой сессии.

linked/Terminal-Session-Sharing-Example-Step3.png

linked/Terminal-Session-Sharing-Example-Step3.png

Рис.4 Удаленный пользователь вводит информацию "telnet belous-PC 64382", которая нужна для подключения к разделяемой сессии, на подсказку bash (клавиша Enter еще не нажата).

Шаг 4.

Владелец разделяемой сессии получает информацию о том, что удаленный пользователь подключился к разделяемой сессии. Эта информация появляется как сообщение в окне разделяемого терминала. Кроме того, список всех удаленных пользователей, подключенных к разделяемой сессии находится в выпадающем списке (ссылка 11 на рис. 1) в нижней части окна разделяемого терминала.

linked/annotated-terminal-picture-separate-copies-ref-11.png

linked/annotated-terminal-picture-separate-copies-ref-11.png

linked/Terminal-Session-Sharing-Example-Step4.png

linked/Terminal-Session-Sharing-Example-Step4.png

Рис.5. После нажатия клавиши Enter удаленный пользователь подключился к разделяемой сессии, а владелец разделяемой сессии получил сообщение о подключении удаленного пользователя.

Шаг 5.

Владелец разделяемой сессии и удаленный пользователь, подключенный к разделяемой сессии, могут печатать по очереди в разделяемую сессию. Результаты выполнения команд поступают одновременно в оба терминала.

linked/Terminal-Session-Sharing-Example-Step5.png

linked/Terminal-Session-Sharing-Example-Step5.png

Рис.6. Удаленный пользователь, подключеный к разделяемой сессии, или владелец разделяемой сессии напечатали команду "pwd" на подсказку разделяемой сессии и получили результаты выполнения команды в оба терминала.

Шаг 6.

Удаленный пользователь отключается от разделяемой сессии, разрывая соединение в своем терминале (например, нажимает "Ctrl-]", а затем печатает "quit" на подсказку "telnet>"). Владелец разделяемой сессии получает информацию о том, что удаленный пользователь отключился от разделяемой сессии. Эта информация появляется как сообщение в окне разделяемого терминала. Кроме того, список всех удаленных пользователей, подключенных к разделяемой сессии находится в выпадающем списке (ссылка 11 на рис. 1) в нижней части окна разделяемого терминала. Владелец разделяемой сессии может сам отключить удаленного пользователя (или запретить ему печатать в разделяемую сессию), используя команды в меню терминала.

linked/Terminal-Session-Sharing-Example-Step6.png

linked/Terminal-Session-Sharing-Example-Step6.png

Рис.7. Удаленный пользователь отключил telnet-соединение от разделяемой сессии, а владелец разделяемой сессии получил сообщение об отключении удаленного пользователя.