Передача файлов. Мессенджеры. Удалённый доступ.

Передача файлов

Ограничение на размер пересылаемого по почте файла раньше составляло 2 мегабайта (если не меньше). В последнее время лимит вырос (в среднем до десяти мегабайт), но всё равно, с помощью электронной почты большие файлы передавать неудобно. Всё-таки почта изначально рассчитана на передачу небольших текстовых файлов, поэтому при передаче не-текстовых данных (а таких очень много --- почти все форматы изображения и видео имеют нетекстовый вид) происходит их преобразование в текст в некоторой кодировке (uuencode, base64), что довольно значительно увеличивает размер передаваемого сообщения и значительно увеличивает время передачи.

Есть некоторые более удобные и эффективные решения задачи передачи большого количества данных по сети:

  • Организация собственного файлового сервера. Ввиду сложности этот вариант подходит не всем, хотя вполне возможен в рамках локальной сети, где нету проблемы получения уникального IP-адреса.
  • Использование сетевых сервисов хранения файлов. Сравнительно недавно появился, но уже хорошо зарекомендовал себя Народ.диск (narod.yandex.ru). Другие варианты: ifolder.ru, depositfiles.com, rapidshare.com. Последний лучше не использовать, если общение с сервисом будет происходить из-за NAT (у сервиса ограничение на одно соединение с одного IP-адреса). Все службы по обмену файлов предлагают ввести так называемую капчу (английское CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart). Капча --- это способ для таких сайтов отличить машину от человека. Предлагается ввести некий изображённый на картинке текст. Некоторые сервисы предлагают этот текст прослушать в аудио.
  • Пиринговые сети. Распространение файлов в оных отличается от привычного ftp или http: централизованной передачи данных в общем случае не происходит, они берутся по кускам у всех машин, которые сообщили о том, что у них эти данные есть. Соответственно, чем больше машин в сети обладают нужными данными, тем быстрее будет происходить скачивание. Из основного принципа функционирования пиринговых сетей вытекает некоторое правило вежливости --- после скачивания данных какое-то время оставить включённым клиент для сети, чтобы эти данные могли скачивать другие клиенты.

Мгновенные сообщения

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

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

За достаточно короткое время в 1990-е возникло множество проприетарных протоколов такого рода (например, ICQ, MSN). Работают они все совершенно одинаково, и до определённого момента все существовавшие протоколы были проприетарными и требовали использования некоего проприетарного клиента от провайдера услуг.

Но ситуация изменилась с появлением протокола Jabber.

Jabber

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

Достоинствами данного протокола можно считать:

  • Распределенность, т. е. независимость от одного конкретного сервера
  • Лёгкость организации собственного сервера (может быть очень удобно в пределах локальной сети)
  • XMPP поддерживает шифрование (SSL и TLS)
  • Лёгкость расширения
  • Возможность использования одной учётной записи одновременно несколькими клиентами и выбора какому клиенту отправляются сообщения при помощи ресурсов и приоритетов
  • Выбираемый пользователем текстовый идентификатор, по формату напоминающий почтовый адрес (а не число, как это принято в некоторых других протоколах)

Также некоторые сервисы (почтовый Gmail, блоговый LiveJournal) при регистрации автоматически создают учётную запись Jabber на своём сервере, связанную с соответствующей основной учётной записью. В случае gmail интеграция почты и Jabber довольно велика — так, на почту могут приходить сообщения о неотвеченных сообщениях в Jabber. Подобная интеграция есть и у LiveJournal.

Попробуем зарегистрировать новую учётную запись в Jabber-е и настроить клиент мгновенных сообщений Kopete.

../kopete_kde_menu.png

Kopete поддерживает множество протоколов, поэтому при первом запуске нам потребуется выбрать нужный:

../kopete_wizard_1.png

Выберем Jabber:

../kopete_wizard_1_jabber_selected.png

Дальше требуется ввести данные об учётной записи:

../kopete_account_configuration.png

Поскольку у нас еще нет учётной записи, нам потребуется зарегистрировать новую:

../kopete_new_account_dialog.png

Регистрация достаточно проста: нам потребуется выбрать сервер (в данном случае мы используем jabber.ru), имя пользователя и пароль. Отдельно нужно отметить шифрование:

../kopete_new_account_dialog_ssl.png

Предупреждение о самоподписанном сертификате в данном случае можно игнорировать:

../kopete_new_account_unknown_ssl_cert_dialog.png

Регистрация новой учётной записи успешно завершена:

../kopete_new_account_dialog_successful.png

Настройка учётной записи на этом также заканчивается:

../kopete_wizard_2_complete.png

Внешний вид программы достаточно типичен для мессенджеров:

../kopete_conversation_jabber_ru.png

Чтобы начать общаться, требуется добавить учётную запись предполагаемого собеседника в список контактов:

../kopete_add_account_button_tip.png

Впрочем, для начала требуется подключиться к серверу:

../kopete_add_account_to_roster.png

Теперь нужно ввести логин нужного нам человека. В данном случае мы добавим в список контактов свою учётную запись:

../kopete_add_account_to_roster2.png

Все, можно начинать общение:

../kopete_conversation_window.png

При получении нового сообщение появляется всплывающее окно с информацией:

../kopete_new_message_notifier2.png

А так выглядит собственно диалог:

../kopete_conversation_window_typing.png

В Легком Линуксе есть аналогичная программа, она называется pidgin и устроена схожим образом. Запустим ее из меню xfce:

../pidgin_xfce_menu.png

Он также поддерживает несколько протоколов:

../pidgin_account_setup_select_protocol.png

Используем уже созданную нами ранее учётную запись Jabber:

../pidgin_account_setup.png

Настройка учётной записи закончена, однако в нашем контакт-листе нет ни одного собеседника:

../pidgin2.png

Поэтому добавим нового:

../pidgin_add_contact_menu.png

../pidgin_add_account_to_roster.png

Если всё сделано верно, то контакт появится в списке собеседников:

../pidgin_with_accounts_dialog.png

../pidgin.png

Можно начинать общение:

../pidgin_conversation.png

Удалённое управление

SSH

Наиболее правильный способ удалённого управления ОС Linux (да и вообще любой Unix-образной системой) --- это получение терминального доступа к машине с помощью протокола ssh, о котором говорилось в соответствующих лекциях. Если кратко, клиент называетс ssh, сервер --- sshd. В ПСПО по умолчанию сервер sshd выключен.

../remote_access_ssh.png

Обратите внимание: на этой картинке через ssh был получен терминал, и в нём видно, что он на удалённой машине. К сожалению, неопытные пользователи это не всегда правильно понимают, из-за чего подобный способ управления вряд ли стоит использоваться поначалу (без соответствующей подготовки). Если вызывать клиент с ключем -Y, то появится возможность запускать графические приложения, например, можно запустить xterm:

../remote_access_xterm_via_ssh.png

Для ОС Windows существует ряд свободных SSH-клиентов, позволяющее подключаться по SSH к другим компьютерам, например, PuTTY.

Общий рабочий стол

Можно организовывать не только новые терминальные сессии, но и подключаться к имеющейся поверхности Х-сервера. Для этого на удалённой машине должен быть запущен соответствующий сервис. Из соображений разумности и безопасности использовать удалённые системы логично только по обоюдной договорённости пользователей этих компьютеров, поскольку у подключившегося есть возможность получить управление мышью и клавиатурой. Это используется для того, чтобы человек мог проделать некоторую работу, например, объясняя, что делать на рабочем столе. Одному пользователю нужно уметь давать доступ к рабочему столу, а другому --- умение пользоваться клиентом.

В среде KDE (стандартная для Линукс Мастер) такой доступ организуется программами krfb и krdc.

../krfb_kde_menu.png

Настройки krfb выглядят так:

../krfb_settings.png

Можно выдать разовое приглашение человеку на управление рабочим столом:

../krfb_wizard_1.png

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

../krfb_settings_configured.png

Таким образом, мы настроили принимающую сторону, теперь можно попробовать подключиться к этому компьютеру. Делается это с помощью другой программы --- krdc:

../krdc_kde_menu.png

Здесь от нас требуется всего лишь ввести адрес (или имя) компьютера, к которому мы хотим подключиться:

../krdc.png

Дополнительно можно изменить настройки соединения --- это влияет на качество картинки:

../krdc_settings.png

При подключении на компьютере, с которым мы соединяемся, появится уведомление о входящем соединении:

../krfb_incoming_connection_dialog.png

Обратите внимание, что можно запретить удалённому пользователю управлять мышью и клавиатурой --- в таком случае он сможет только наблюдать за вашими действиями. После разрешения соединения появится уведомление об успешном подключении:

../krfb_incomming_connection_popup.png

На компьютере, с которого выполнено подключение, оно выглядит так:

../krdc_connected.png

При желании можно также развернуть его в полный экран:

../krdc_fullscreen.png

Организация доступа к рабочему столу отнюдь не ограничена двумя встроенными в KDE утилитами. Есть куда более мощные и универсальные vncserver и vncviewer. На одной запускается x11vnc, который будет передавать все данные с рабочего стола по сети, на другой --- vncviewer с адресом машины с запущенным x11vnc в качестве параметра. У сервера есть широковещательный режим, когда несколько человек могут подключиться к одному серверу и наблюдать происходящее. Различные интересные настройки описаны в документации. Чтобы разрешить наблюдение (но не управление) нескольким пользователям, сервер должен быть запущен с параметрами -shared -viewonly -forever.


Сведения о ресурсах

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

1

1

1

1