Предисловие
В основе статьи лежит разработка Удаленная консультация, которая позволяет подключаться к клиенту и управлять компьютером, что позволяет, например, непосредственно в информационной базе клиента решать какие-либо проблема, производить обучение и т.д. Все необходимые программные файлы, рассматриваемые в данной статье, необходимо брать в указанной публикации.
Введение
Основная проблема в размещении сетевых серверных приложений взаимодействующих по интернету лежит в обеспечении достаточной пропускной способности и минимальной задержки канала связи. Для обеспечения этих требований удобно использовать выделенные виртуальные сервера (VPS/VDS). Ключевые требования для сервера Удаленной консультации как раз опираются на канал связи и мощность процессора, поэтому для настройки такого сервера будем использовать дешевый VPS/VDS-хостинг, цены по интернету разные, я ориентировался на самые дешевые, выбранный мной тариф стоит 65 руб./мес. Параметры используемого сервера были следующие:
- CPU: Intel Xeon, 1 ядро, 2.2 ГГц;
- RAM: 512 Мб;
- HDD: 10 Гб;
- Операционная система: CentOS 7 (x86_64);
- Трафик: безлимитный, средняя задержка по тестам 60 мс.
Настройка и запуск сервера
Процесс регистрации и покупки сервера я описывать не буду, так как не получится без рекламы, но и описания он не требует, так как все интуитивно понятно. Обычно, после регистрации на странице хостера и оплаты сервера вам выдаются логин и пароль для root-доступа к серверу по SSH, так же зачастую процедура подключения описана на выбранном хостинге. Для подключения по SSH будем использовать клиент PuTTY, для передачи файл с целевой Windows машины на сервер файла PSCP из набора PuTTY.
Первым делом необходимо на выделенный сервер закачать исполняемый файл сервера Удаленной консультации для операционной система CentOS, в архиве к статье Удаленная консультация файл называется rh_server, реализованный на golang. Я пользуюсь по работе в основном Windows, поэтому закачивать на сервер будем упомянутой выше утилитой pscp.exe, запустим командную строку и напишем:
"Путь к утилитеpscp.exe" "путь к файлу
h_server" root@ip_адрес_сервера:/usr/bin
затем введем пароль и файл будет закачен в директорию исполняемых файлов /usr/bin. После этого зайдем в консоль PuTTY, залогинимся, переключимся на коневую директорию и все дальнейшие команды набираются исходя из того, что мы находимся в корневой директории
cd /
Так как я копировал файл с Windows-машины на Linux теперь необходимо для нашего файла rh_server установить соответствующие атрибуты доступа
chmod 700 /bin/rh_server
Далее необходимо определиться, на каком порту будет работать сервер, например 80, тогда необходимо в настройки сетевого экрана добавить разрешение на работу по указанному порту
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
перезагружаем правила
/etc/init.d/iptables restart
После этого можно запускать сервер, для того чтобы при отключении сессии PuTTY наш сервер работал необходимо использовать команду nohup, при этом вывод всей информации направим в файл /tmp/rh_log
nohup rh_server –port=80 > /tmp/rh_log &
Далее можно наблюдать подключения по логу, например так
cat /tmp/rh_log
Результаты
Проверяем сервер небольшим нагрузочным тестом. Исходные параметры:
- Размер экрана: 1920 х 1080;
- Качество передаваемой картинки: 8 бит (256 цветов);
- Количество одновременно работающих клиентов: 20 клиентов (10 пар);
- Процент изменения области экрана при передачи: не менее 40% при каждой отправке данных, что соответствует очень интенсивной работе.
Полученные результаты:
- Среднее количество кадров на клиенте: 7 кадров в секунду, что является отличным результатом, комфортность сохраняется до 4 кадров включительно;
- Средний объем принимаемых данных в секунду: 45 Кб/с;
- Загруженность процессора в пике программой: 8%
- Загруженность оперативной памяти сервера программой, средняя: 3.1%
Таким образом, можно сделать вывод, что на достаточно дешевом VPS/VDS хостинге можно развернуть систему удаленной консультации для небольших и средних фирм и получить приемлемое качество удаленного доступа. При этом отталкиваясь от полученных данных можно прогнозировать, что при обычной работе пользователя сервер сможет выдержать более 40 одновременно работающих пользователей.
Можно доработать ваше решение для проведения вебинаров ?
С демонстрацией рабочего стола 🙂
(2) Боюсь, что для полноценных вебинаров нужно будет не дорабатывать, а перерабатывать очень сильно приложение. Из-за того, что в сети очень много по этому вопросу предложений, требования к функционалу высоки.
Если просто показывать выделенную область рабочего стола в режиме конференции с передачей звука, реализовать чат, запись видео, то это уже можно доработать, только вот сомневаюсь, что будет востребовано.
(3)
Из-за отсутствия альтернатив, приходиться покупать TeamViewer за 100.
Вот мы уже почти созрели, только есть вероятность, что этот забугорный сервис прикроют.
Скайп у многих компаний запрещен, т.к. америкосовское.
Все-таки, наверно, вы пользуетесь им для того, чтобы связаться с конкретным клиентом для демонстрации функционала своих разработок и переговоров. Если все так, то можно подумать.
(5)
Минусовать можно сколько угодно. Это факт, с которым мы сталкиваемся, когда нас просят провести презентацию на предприятиях, где скайп запрещен, потому как американский.
Тогда приходиться выкручиваться сервисами, типа webinar.ru и прочими.
Пробовали поднять Big Blue Button = тормоза при показе рабочего стола.
Для передачи файлов по SSH (SFTP) из Винды использую filezila — нормально получается 🙂
Как раз возникла необходимость создания подобного сервиса. Спасибо за идею +1
Для автозапуска при перезагрузки добавляем в файл /etc/crontab строчку:
@reboot sleep 15 && /bin/rh_server –port=80
В Debian 8 amd64 и Ubuntu 16.04 rh_server замечательно работает
(11) Здорово, что еще кто-то пользуется 😉
— обычно использую FileZilla Client — он sftp тянет легко (задаете порт 22, если стандартно)
Респект автору и плюс в копилку!
(14) Спасибо!