Это команда websockify, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
websockify - WebSockets для моста сокетов TCP
СИНТАКСИС
websockify [параметры] [source_addr:] source_port target_addr: target_port
websockify [параметры] [адрес_источника:] порт_источника - WRAP_COMMAND_LINE
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-h, --help показать это справочное сообщение и выйти
-v, --verbose подробные сообщения и покадровый трафик
--record = ФАЙЛ записывает сеансы в ФАЙЛ. [номер_сеанса]
-D, --daemon стать демоном (фоновый процесс)
--run-Once обрабатывать одно соединение с WebSocket и выходить
--timeout = TIMEOUT после TIMEOUT секунд выход, когда не подключен
--cert = CERT файл сертификата SSL
--key = КЛЮЧ файл ключей SSL (если отдельно от сертификата)
--ssl-only запретить незашифрованные соединения
--web = DIR запустить веб-сервер на том же порту. Подавать файлы из DIR.
--wrap-mode = РЕЖИМ действие, выполняемое при выходе из обернутой программы или
демонизирует: выйти (по умолчанию), игнорировать, возродиться
ОПИСАНИЕ
На самом базовом уровне websockify просто переводит трафик WebSockets в обычный TCP.
сокет трафика. Websockify принимает рукопожатие WebSockets, анализирует его и затем начинает
пересылка трафика между клиентом и целью в обоих направлениях.
websockify раньше назывался wsproxy и был частью проекта noVNC.
ПРИМЕЧАНИЯ
WebSockets двоичный данным
Websockify поддерживает все версии протокола WebSockets (Hixie и HyBI). Старший
Версии протокола Hixie поддерживают только текстовые данные UTF-8. Для перевозки
двоичные данные в UTF-8, кодировка должна использоваться для инкапсуляции данных в UTF-8.
Websockify использует base64 для кодирования всего трафика к клиенту и от него. Это не влияет
данные между websockify и сервером.
Зашифрованные WebSocket связи (wss: //)
Чтобы зашифровать трафик с использованием схемы URI WebSocket 'wss: //', вам необходимо сгенерировать
сертификат для загрузки websockify. По умолчанию websockify загружает имя файла сертификата.
self.pem, но параметр --cert = CERT может переопределить имя файла. Вы можете создать собственное
подписанный сертификат с использованием openssl. Когда вас спросят об общем имени, используйте имя хоста
сервер, на котором будет работать прокси:
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
Вебсок Javascript библиотека
Библиотека библиотеки javascript websock.js (см. Https://github.com/kanaka/websockify)
предоставляет объект Websock, который похож на стандартный объект WebSocket, но Websock
обеспечивает связь с сокетами TCP (т. е. двоичный поток) через websockify. Этот
достигается путем кодирования base64 потока данных между Websock и websockify.
Websock имеет встроенную буферизацию очереди приема; событие сообщения не содержит фактических
data, но это просто уведомление о наличии новых данных. Несколько методов rQ *
доступны для чтения двоичных данных из очереди приема.
API Websock задокументирован на вики-странице API websock.js:
https://github.com/kanaka/websockify/wiki/websock.js
См. Раздел «Обертывание программы» ниже, где приведен пример использования Websock и websockify в качестве
telnet-клиент браузера (wstelnet.html).
дополнительный веб-сайт функции
Это не обязательно для основной работы.
* Демонизация: когда указана опция -D, websockify запускается в фоновом режиме как
процесс-демон.
* SSL (URI wss: // WebSockets): обнаруживается автоматически websockify с помощью
нюхает первый байт, отправленный от клиента, а затем оборачивает сокет, если
данные начинаются с '\ x16' или '\ x80' (что указывает на SSL).
* Политика безопасности флеш-памяти: websockify обнаруживает запросы политики безопасности флеш-памяти (опять же
прослушивание первого пакета) и отвечает соответствующей политикой безопасности флэш-памяти
ответ (а потом закрывает порт). Это означает отсутствие отдельной политики безопасности флеш-памяти.
Сервер необходим для поддержки резервного эмулятора Flash WebSockets.
* Запись сеанса: эта функция позволяет записывать отправленный и
полученный от клиента в файл с помощью параметра --record.
* Мини-веб-сервер: websockify может обнаруживать и отвечать на обычные веб-запросы на
тот же порт, что и прокси-сервер WebSockets и политика безопасности Flash. Эта функциональность
активируйте с помощью параметра --web DIR, где DIR - это корень веб-каталога для
обслуживать.
* Обертывание программы: см. Раздел «Обертывание программы» ниже.
Оберните a Программа
В дополнение к проксированию с исходного адреса на целевой адрес (который может быть
другая система), websockify имеет возможность запускать программу в локальной системе и
прокси-сервер WebSockets направляет трафик на обычный TCP-порт, принадлежащий программе или связанный с ним.
Это достигается с помощью небольшой библиотеки LD_PRELOAD (rebind.so), которая перехватывает bind ()
системные вызовы программой. Указанный порт перемещается на новый localhost / без обратной связи
высокий порт. websockify затем проксирует трафик WebSockets, направленный на исходный порт, в
новый (перенесенный) порт программы.
Режим обертывания программы вызывается заменой цели на -, за которой следует программа
командная строка для переноса.
`./websockify 2023 - PROGRAM ARGS`
Параметр --wrap-mode может использоваться, чтобы указать, какое действие следует предпринять, когда завернутый
программа завершается или демонизируется.
Вот пример использования websockify для обертывания команды vncserver (какие фоны
сам) для использования с noVNC:
`./websockify 5901 --wrap-mode = ignore - vncserver -geometry 1024x768: 1`
Вот пример упаковки telnetd (от krb5-telnetd) .telnetd завершает работу после
соединение закрывается, поэтому устанавливается режим переноса для повторного появления команды:
`sudo ./websockify 2023 --wrap-mode = respawn - telnetd -debug 2023`
Страница wstelnet.html демонстрирует простой telnet-клиент на основе WebSockets.
Используйте websockify онлайн с помощью сервисов onworks.net