Jest to polecenie websockify, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
websockify — mostek WebSockets do gniazda TCP
STRESZCZENIE
websockify [opcje] [adres_źródłowy:]port_portu adres_docelowy:port_docelowy
websockify [opcje] [adres_źródłowy:]port_źródłowy -- WRAP_COMMAND_LINE
OPCJE
-h, --help pokaż tę wiadomość pomocy i wyjdź
-v, --verbose szczegółowe komunikaty i ruch na ramkę
--record=PLIK nagrywa sesje do PLIKU.[numer_sesji]
-D, --daemon staje się demonem (proces w tle)
--run-once obsługuje pojedyncze połączenie WebSocket i kończy działanie
--timeout=TIMEOUT po upływie TIMEOUT sekund w przypadku braku połączenia
--cert=plik certyfikatu CERT SSL
--key=KLUCZ Plik klucza SSL (jeśli jest oddzielony od certyfikatu)
--ssl-only nie zezwala na połączenia nieszyfrowane
--web=DIR uruchamia serwer WWW na tym samym porcie. Udostępniaj pliki z DIR.
--wrap-mode=TRYB akcja, która ma zostać wykonana po zamknięciu opakowanego programu lub
demonizuje: wyjście (domyślnie), zignorowanie, odrodzenie
OPIS
Na najbardziej podstawowym poziomie websockify po prostu tłumaczy ruch WebSockets na normalny protokół TCP
ruch w gniazdach. Websockify akceptuje uzgadnianie WebSockets, analizuje je i rozpoczyna
przekazywanie ruchu pomiędzy klientem a celem w obu kierunkach.
websockify nosiło wcześniej nazwę wsproxy i było częścią projektu noVNC.
UWAGI
WebSockets dwójkowy dane
Websockify obsługuje wszystkie wersje protokołu WebSockets (Hixie i HyBI). Starszy
Wersje protokołu Hixie obsługują tylko ładunki tekstowe w formacie UTF-8. W celu transportu
dane binarne w formacie UTF-8, kodowanie musi być użyte do enkapsulacji danych w formacie UTF-8.
Websockify używa base64 do kodowania całego ruchu do i od klienta. To nie ma wpływu
dane między websockify a serwerem.
Szyfrowane WebSocket połączenia (wss://)
Aby zaszyfrować ruch przy użyciu schematu URI WebSocket „wss://”, musisz wygenerować plik
certyfikat dla websockify do załadowania. Domyślnie websockify ładuje nazwę pliku certyfikatu
self.pem, ale opcja --cert=CERT może zastąpić nazwę pliku. Możesz wygenerować własny
podpisany certyfikat za pomocą openssl. Gdy pojawi się pytanie o nazwę zwyczajową, użyj nazwy hosta
serwer, na którym będzie działać serwer proxy:
openssl req -nowy -x509 -dni 365 -węzły -out self.pem -keyout self.pem
Skarpeta Javascript biblioteka
Websock.js (patrz https://github.com/kanaka/websockify) Biblioteka bibliotek JavaScript
udostępnia obiekt Websock podobny do standardowego obiektu WebSocket, ale Websock
umożliwia komunikację z surowymi gniazdami TCP (tj. strumieniem binarnym) poprzez websockify. Ten
odbywa się to poprzez kodowanie base64 strumienia danych pomiędzy Websock i websockify.
Websock ma wbudowane buforowanie kolejki odbiorczej; zdarzenie komunikatu nie zawiera wartości rzeczywistej
danych, ale jest po prostu powiadomieniem, że dostępne są nowe dane. Kilka metod rQ*
są dostępne do odczytu danych binarnych z kolejki odbiorczej.
Interfejs API Websock jest udokumentowany na stronie wiki API websock.js:
https://github.com/kanaka/websockify/wiki/websock.js
Zobacz sekcję „Zawijanie programu” poniżej, aby zapoznać się z przykładem użycia Websock i websockify jako pliku
klient telnet przeglądarki (wstelnet.html).
Dodatkowy websockify cechy
Nie są one niezbędne do podstawowej obsługi.
* Demonizowanie: Gdy określono opcję -D, websockify działa w tle jako
proces demona.
* SSL (identyfikator URI wss:// WebSockets): jest wykrywany automatycznie przez websockify przez
wąchanie pierwszego bajtu wysłanego od klienta, a następnie zawijanie gniazda, jeśli
dane zaczynają się od „\x16” lub „\x80” (co wskazuje na SSL).
* Polityka bezpieczeństwa Flash: websockify wykrywa żądania zasad bezpieczeństwa Flash (ponownie przez
wąchanie pierwszego pakietu) i odpowiada odpowiednią polityką bezpieczeństwa flash
odpowiedź (a następnie zamyka port). Oznacza to brak oddzielnej polityki bezpieczeństwa pamięci flash
serwer jest potrzebny do obsługi awaryjnego emulatora Flash WebSockets.
* Nagrywanie sesji: Ta funkcja umożliwia nagrywanie wysyłanego ruchu i
otrzymany od klienta do pliku przy użyciu opcji --record.
* Mini-serwer WWW: websockify może wykrywać normalne żądania internetowe i odpowiadać na nie
ten sam port, co serwer proxy WebSockets i zasady bezpieczeństwa Flash. Ta funkcjonalność jest
aktywuj za pomocą opcji --web DIR, gdzie DIR jest katalogiem głównym katalogu internetowego
służyć.
* Zawijanie programu: zobacz sekcję „Zawijanie programu” poniżej.
Owiń a Program
Oprócz proxy z adresu źródłowego na adres docelowy (który może znajdować się w pliku
inny system), websockify ma możliwość uruchomienia programu w systemie lokalnym i
ruch proxy WebSockets do normalnego portu TCP, którego właścicielem/powiązanym jest program.
Osiąga się to za pomocą małej biblioteki LD_PRELOAD (rebind.so), która przechwytuje metodę bind()
wywołania systemowe programu. Określony port zostanie przeniesiony na nowy host lokalny/bez sprzężenia zwrotnego
wysoki port. websockify następnie przekazuje ruch WebSockets kierowany do oryginalnego portu do
nowy (przeniesiony) port programu.
Tryb zawijania programu jest wywoływany poprzez zastąpienie elementu docelowego --, po którym następuje program
wiersz poleceń do zawinięcia.
`./websockify 2023 -- PROGRAM ARGS`
Opcji --wrap-mode można użyć do wskazania, jaką akcję należy podjąć po zapakowaniu
program kończy działanie lub demonizuje się.
Oto przykład użycia websockify do zawinięcia polecenia vncserver (które tła
sam) do użytku z noVNC:
`./websockify 5901 --wrap-mode=ignore -- vncserver -geometry 1024x768:1`
Oto przykład zawijania telnetu (z krb5-telnetd).telnetd kończy działanie po
połączenie zostaje zamknięte, więc tryb zawijania jest ustawiony na ponowne pojawienie się polecenia:
`sudo ./websockify 2023 --wrap-mode=respawn -- telnetd -debug 2023`
Strona wstenet.html przedstawia prostego klienta telnet opartego na technologii WebSockets.
Korzystaj z websockify online, korzystając z usług onworks.net