websockify - Інтернет у хмарі

Це команда websockify, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


websockify - міст від веб-сокетів до TCP-сокетів

СИНТАКСИС


websockify [параметри] [source_addr:]source_port target_addr:target_port
websockify [параметри] [source_addr:]source_port -- WRAP_COMMAND_LINE

ВАРІАНТИ


-h, --help показати це повідомлення довідки та вийти
-v, --verbose докладні повідомлення та трафік на кадр
--record=FILE записувати сеанси до FILE.[номер_сеансу]
-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://', ​​вам потрібно згенерувати a
сертифікат для завантаження websockify. За замовчуванням websockify завантажує ім’я файлу сертифіката
self.pem, але параметр --cert=CERT може замінити назву файлу. Ви можете створити самостійно
підписаний сертифікат за допомогою openssl. Коли запитають загальне ім’я, використовуйте ім’я хоста
сервер, на якому буде працювати проксі-сервер:

openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

Websock Javascript бібліотека
Бібліотека Javascript websock.js (див. https://github.com/kanaka/websockify)
надає об'єкт Websock, схожий на стандартний об'єкт WebSocket, але Websock
дозволяє спілкуватися з необробленими TCP-сокетами (тобто бінарним потоком) через websockify. Це
виконується шляхом кодування base64 потоку даних між Websock і websockify.

Websock має вбудовану буферизацію черги прийому; подія повідомлення не містить фактичного
даних, але це просто сповіщення про наявність нових доступних даних. Кілька методів rQ*
доступні для читання двійкових даних із черги отримання.

API Websock задокументовано на веб-сторінці API websock.js:

https://github.com/kanaka/websockify/wiki/websock.js

Дивіться розділ «Загорнути програму» нижче для прикладу використання Websock та websockify як a
клієнт telnet браузера (wstelnet.html).

Додатковий websockify риси
Для основної операції вони не потрібні.

* Демонізація: коли вказано параметр -D, websockify працює у фоновому режимі як
процес демона.

* SSL (wss:// WebSockets URI): це автоматично виявляється websockify за допомогою
нюхає перший байт, надісланий клієнтом, а потім обгортає сокет, якщо
дані починаються з '\x16' або '\x80' (вказує на SSL).

* Політика безпеки Flash: websockify виявляє запити політики безпеки Flash (знову ж таки від
нюхаючи перший пакет) і відповідає відповідною політикою безпеки flash
відповідь (а потім закриває порт). Це означає відсутність окремої політики безпеки флеш-пам’яті
сервер потрібен для підтримки резервного емулятора Flash WebSockets.

* Запис сеансу: ця функція, яка дозволяє записувати надісланий трафік і
отриманий від клієнта у файл за допомогою параметра --record.

* Міні-веб-сервер: websockify може виявляти звичайні веб-запити та відповідати на них
той самий порт, що й проксі-сервер WebSockets і політика безпеки Flash. Ця функція є
активувати за допомогою параметра --web DIR, де DIR є коренем веб-каталогу
подавати.

* Обертання програми: див. розділ «Обертання програми» нижче.

Оберніть a програма
На додаток до проксі-сервера з вихідної адреси на цільову адресу (яка може бути на a
різні системи), websockify має можливість запускати програму в локальній системі та
проксі-трафік WebSockets на звичайний порт TCP, який належить програмі.

Це виконується за допомогою невеликої бібліотеки LD_PRELOAD (rebind.so), яка перехоплює bind()
системні виклики програмою. Вказаний порт буде переміщено на новий локальний хост або вільний цикл
високий порт. websockify потім передає трафік WebSockets, спрямований на вихідний порт до
новий (переміщений) порт програми.

Режим обгортання програми викликається шляхом заміни цілі на -- після чого програма
командний рядок для обгортання.

`./websockify 2023 -- ПРОГРАМА 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



Найновіші онлайн-програми для Linux і Windows