ນີ້ແມ່ນຄໍາສັ່ງ websockify ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
websockify - WebSockets ກັບ TCP socket bridge
ສະຫຼຸບສັງລວມ
websockify [ທາງເລືອກ] [source_addr:]source_port target_addr:target_port
websockify [ທາງເລືອກ] [source_addr:]source_port -- WRAP_COMMAND_LINE
OPTIONS
-h, --help ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອແລະອອກ
-v, --verbose ຂໍ້ຄວາມ verbose ແລະຕໍ່ການຈະລາຈອນເຟຣມ
--record=FILE ບັນທຶກເຊດຊັນໃສ່ FILE.[session_number]
-D, --daemon ກາຍເປັນ daemon (ຂະບວນການພື້ນຖານ)
--run-ຄັ້ງດຽວຈັດການການເຊື່ອມຕໍ່ WebSocket ດຽວແລະອອກ
--timeout=TIMEOUT ຫຼັງຈາກ TIMEOUT ວິນາທີອອກເມື່ອບໍ່ໄດ້ເຊື່ອມຕໍ່
--cert=ໄຟລ໌ໃບຢັ້ງຢືນ CERT SSL
--key=KEY ໄຟລ໌ກະແຈ SSL (ຖ້າແຍກອອກຈາກໃບຢັ້ງຢືນ)
--ssl-only ບໍ່ອະນຸຍາດການເຊື່ອມຕໍ່ທີ່ບໍ່ໄດ້ເຂົ້າລະຫັດ
--web=DIR ແລ່ນ webserver ໃນພອດດຽວກັນ. ຮັບໃຊ້ໄຟລ໌ຈາກ DIR.
--wrap-mode=MODE ປະຕິບັດການທີ່ຈະປະຕິບັດໃນເວລາທີ່ໂຄງການ wrapped ອອກຫຼື
daemonizes: ອອກ (ຄ່າເລີ່ມຕົ້ນ), ignore, respawn
ລາຍລະອຽດ
ໃນລະດັບພື້ນຖານທີ່ສຸດ, websockify ພຽງແຕ່ແປການເຂົ້າຊົມ WebSockets ກັບ TCP ປົກກະຕິ
ການຈະລາຈອນເຕົ້າຮັບ. Websockify ຍອມຮັບການຈັບມື WebSockets, ວິເຄາະມັນ, ແລະຫຼັງຈາກນັ້ນເລີ່ມຕົ້ນ
ສົ່ງຕໍ່ການຈະລາຈອນລະຫວ່າງລູກຄ້າແລະເປົ້າຫມາຍໃນທັງສອງທິດທາງ.
websockify ເຄີຍມີຊື່ວ່າ wsproxy ແລະເປັນສ່ວນຫນຶ່ງຂອງໂຄງການ noVNC.
ຫມາຍເຫດ
WebSockets binary ຂໍ້ມູນ
Websockify ຮອງຮັບທຸກລຸ້ນຂອງໂປຣໂຕຄໍ WebSockets (Hixie ແລະ HyBI). ແກ່
ໂປຣໂຕຄໍລຸ້ນ Hixie ຮອງຮັບການໂຫຼດຂໍ້ຄວາມ UTF-8 ເທົ່ານັ້ນ. ເພື່ອຂົນສົ່ງ
ຂໍ້ມູນຖານສອງໃນໄລຍະ UTF-8 ການເຂົ້າລະຫັດຈະຕ້ອງໃຊ້ເພື່ອຫຸ້ມຫໍ່ຂໍ້ມູນພາຍໃນ UTF-8.
Websockify ໃຊ້ base64 ເພື່ອເຂົ້າລະຫັດການເຂົ້າຊົມທັງຫມົດໄປຫາແລະຈາກລູກຄ້າ. ນີ້ບໍ່ມີຜົນກະທົບ
ຂໍ້ມູນລະຫວ່າງ websockify ແລະເຄື່ອງແມ່ຂ່າຍ.
ເຂົ້າລະຫັດແລ້ວ WebSockets ການເຊື່ອມຕໍ່ (wss://)
ເພື່ອເຂົ້າລະຫັດການຈະລາຈອນໂດຍໃຊ້ WebSocket 'wss://' URI scheme, ທ່ານຈໍາເປັນຕ້ອງສ້າງ a
ໃບຢັ້ງຢືນສໍາລັບ websockify ເພື່ອໂຫລດ. ໂດຍຄ່າເລີ່ມຕົ້ນ websockify ໂຫລດຊື່ໄຟລ໌ໃບຢັ້ງຢືນ
self.pem ແຕ່ທາງເລືອກ --cert=CERT ສາມາດ override ຊື່ໄຟລ໌. ທ່ານສາມາດສ້າງຕົນເອງ
ເຊັນໃບຢັ້ງຢືນໂດຍໃຊ້ openssl. ເມື່ອຖາມຫາຊື່ທົ່ວໄປ, ໃຫ້ໃຊ້ຊື່ໂຮດຂອງ
ເຊີບເວີທີ່ພຣັອກຊີຈະແລ່ນ:
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
Websock Javascript ຫ້ອງສະຫມຸດ
websock.js (ເບິ່ງ https://github.com/kanaka/websockify) ຫໍສະໝຸດ Javascript
ສະໜອງວັດຖຸ Websock ທີ່ຄ້າຍຄືກັບວັດຖຸ WebSocket ມາດຕະຖານແຕ່ Websock
ເຮັດໃຫ້ການສື່ສານທີ່ມີເຕົ້າຮັບ TCP ດິບ (ເຊັ່ນວ່ານ້ໍາຄູ່) ຜ່ານ websockify. ນີ້
ແມ່ນສໍາເລັດໂດຍການເຂົ້າລະຫັດ base64 ກະແສຂໍ້ມູນລະຫວ່າງ Websock ແລະ websockify.
Websock ມີ built-in ຮັບ buffering ແຖວ; ເຫດການຂໍ້ຄວາມບໍ່ມີຕົວຈິງ
ຂໍ້ມູນແຕ່ເປັນພຽງແຕ່ການແຈ້ງເຕືອນວ່າມີຂໍ້ມູນໃຫມ່ທີ່ມີຢູ່. rQ* ຫຼາຍວິທີ
ມີໃຫ້ອ່ານຂໍ້ມູນຖານສອງຈາກແຖວຮັບ.
Websock API ແມ່ນບັນທຶກໄວ້ໃນໜ້າ websock.js API wiki:
https://github.com/kanaka/websockify/wiki/websock.js
ເບິ່ງພາກ "Wrap a Program" ຂ້າງລຸ່ມນີ້ສໍາລັບຕົວຢ່າງຂອງການນໍາໃຊ້ Websock ແລະ websockify ເປັນ
ລູກຄ້າ telnet ຂອງຕົວທ່ອງເວັບ (wstelnet.html).
ເພີ່ມເຕີມ websockify ຄຸນລັກສະນະ
ເຫຼົ່ານີ້ແມ່ນບໍ່ຈໍາເປັນສໍາລັບການດໍາເນີນງານພື້ນຖານ.
* Daemonizing: ເມື່ອຕົວເລືອກ -D ຖືກລະບຸ, websockify ແລ່ນໃນພື້ນຫລັງເປັນ
ຂະບວນການ daemon.
* SSL (the wss:// WebSockets URI): ອັນນີ້ຖືກກວດພົບໂດຍອັດຕະໂນມັດໂດຍ websockify ໂດຍ
sniffing byte ທໍາອິດທີ່ສົ່ງຈາກລູກຄ້າແລະຫຼັງຈາກນັ້ນຫໍ່ເຕົ້າຮັບຖ້າຫາກວ່າໄດ້
ຂໍ້ມູນເລີ່ມຕົ້ນດ້ວຍ '\x16' ຫຼື '\x80' (ສະແດງເຖິງ SSL).
* ນະໂຍບາຍຄວາມປອດໄພ Flash: websockify ກວດສອບການຮ້ອງຂໍນະໂຍບາຍຄວາມປອດໄພ flash (ອີກເທື່ອຫນຶ່ງໂດຍ
sniffing ຊອງທໍາອິດ) ແລະຄໍາຕອບທີ່ມີນະໂຍບາຍຄວາມປອດໄພ flash ທີ່ເຫມາະສົມ
ຕອບສະຫນອງ (ແລະຫຼັງຈາກນັ້ນປິດພອດ). ນີ້ຫມາຍຄວາມວ່າບໍ່ມີນະໂຍບາຍຄວາມປອດໄພ flash ແຍກຕ່າງຫາກ
ເຊີບເວີແມ່ນຈໍາເປັນສໍາລັບການສະຫນັບສະຫນູນ Flash WebSockets fallback emulator.
* ການບັນທຶກ Session: ຄຸນນະສົມບັດທີ່ອະນຸຍາດໃຫ້ການບັນທຶກການຈະລາຈອນທີ່ສົ່ງແລະ
ໄດ້ຮັບຈາກລູກຄ້າໄປຫາໄຟລ໌ໂດຍໃຊ້ຕົວເລືອກ --record.
* Mini-webserver: websockify ສາມາດກວດພົບແລະຕອບສະຫນອງຕໍ່ການຮ້ອງຂໍຂອງເວັບໄຊຕ໌ປົກກະຕິໃນ
ພອດດຽວກັນກັບພຣັອກຊີ WebSockets ແລະນະໂຍບາຍຄວາມປອດໄພ Flash. ການທໍາງານນີ້ແມ່ນ
ເປີດໃຊ້ດ້ວຍຕົວເລືອກ --web DIR ບ່ອນທີ່ DIR ເປັນຮາກຂອງເວັບໄດເລກະທໍລີ
ຮັບໃຊ້.
* ຫໍ່ໂຄງການ: ເບິ່ງພາກ "ຫໍ່ໂຄງການ" ຂ້າງລຸ່ມນີ້.
ຫໍ່ a ໂຄງການ
ນອກເຫນືອຈາກການສົ່ງຕົວແທນຈາກທີ່ຢູ່ແຫຼ່ງໄປຫາທີ່ຢູ່ເປົ້າຫມາຍ (ເຊິ່ງອາດຈະຢູ່ໃນ a
ລະບົບທີ່ແຕກຕ່າງກັນ), websockify ມີຄວາມສາມາດໃນການເປີດຕົວໂຄງການໃນລະບົບທ້ອງຖິ່ນແລະ
ຕົວແທນ WebSockets ການຈະລາຈອນໄປຫາພອດ TCP ປົກກະຕິທີ່ໂຄງການເປັນເຈົ້າຂອງ / ຜູກມັດ.
ສຳເລັດດ້ວຍຫ້ອງສະໝຸດ LD_PRELOAD ຂະໜາດນ້ອຍ (rebind.so) ເຊິ່ງຂັດຂວາງ bind()
ໂທລະບົບໂດຍໂຄງການ. ພອດທີ່ລະບຸນັ້ນຖືກຍ້າຍໄປຢູ່ໃນ localhost/loopback ໃໝ່ໂດຍບໍ່ເສຍຄ່າ
ພອດສູງ. websockify ຫຼັງຈາກນັ້ນ proxies ການຈະລາຈອນ WebSockets ມຸ້ງໄປຫາພອດຕົ້ນສະບັບໄປຫາ
ໃຫມ່ (ຍ້າຍ) ພອດຂອງໂຄງການ.
ຮູບແບບການຫໍ່ໂປຣແກຣມຖືກເອີ້ນໂດຍການປ່ຽນເປົ້າໝາຍດ້ວຍ -- ຕາມດ້ວຍໂປຣແກຣມ
ເສັ້ນຄໍາສັ່ງທີ່ຈະຫໍ່.
`./websockify 2023 -- PROGRAM ARGS`
ຕົວເລືອກ --wrap-mode ສາມາດຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກສິ່ງທີ່ຕ້ອງເຮັດໃນເວລາທີ່ຫໍ່
ອອກຈາກໂຄງການຫຼື daemonizes.
ນີ້ແມ່ນຕົວຢ່າງຂອງການໃຊ້ websockify ເພື່ອຫໍ່ຄໍາສັ່ງ vncserver (ພື້ນຖານໃດ
ຕົວຂອງມັນເອງ) ສໍາລັບການນໍາໃຊ້ກັບ noVNC:
`./websockify 5901 --wrap-mode=ignore -- vncserver -geometry 1024x768 :1`
ນີ້ແມ່ນຕົວຢ່າງຂອງການຫໍ່ telnetd (ຈາກ krb5-telnetd).telnetd ອອກຫຼັງຈາກ
ການເຊື່ອມຕໍ່ປິດສະນັ້ນຮູບແບບ wrap ໄດ້ຖືກຕັ້ງເພື່ອ repawn ຄໍາສັ່ງ:
`sudo ./websockify 2023 --wrap-mode=respawn -- telnetd -debug 2023`
ຫນ້າ wstelnet.html ສະແດງໃຫ້ເຫັນລູກຄ້າ telnet ທີ່ອີງໃສ່ WebSockets ງ່າຍໆ.
ໃຊ້ websockify ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net