piping-vnc-web
piping-vnc-web copied to clipboard
VNC client over pure HTTPS via Piping Server on Web browser
Piping VNC
VNC over pure HTTPS via Piping Server
Application
Requirements
This project requires the latest Google Chrome with enable-experimental-web-platform-features flag for fetch() upload streaming feature (origin trial now).
chrome://flags/ > Experimental Web Platform features > Enabled
Acknowledgements
This project is highly based on noVNC. Thanks to the original authors!
Features
- Transfer data over pure HTTP/HTTPS
- End-to-end encryption using the same way as OpenSSL AES CTR does
Features powered by noVNC
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG
- Supports scaling, clipping and resizing the desktop
- Local cursor rendering
- Clipboard copy/paste
- Translations
- Touch gestures for emulating common mouse actions
- Licensed mainly under the MPL 2.0, see the license document for details
URL fragment parameters
e.g. https://piping-vnc.nwtgck.org/vnc.html#?cs_path=aaa&sc_path=bbb.
Use #?
, which does not send parameters to the hosting server: piping-vnc.nwtgck.org.
-
password
: VNC password -
server
: Piping Server URL -
cs_path
: Server-to-client path -
sc_path
: Client-to-server path -
vnc_server_port
: VNC server port for command hint -
headers
: HTTP headers to Piping Server- (e.g.
[["X-MyExtra1", "myvalue1"], ["Content-Type", "application/myapp"]]
)
- (e.g.
-
e2ee
: E2E encryption option- (type:
{ "cipher_type": "openssl-aes-256-ctr", "pass": string, "pbkdf2": { "iter": number, "hash": "sha1" | "sha256" | "sha512" } }
)
- (type:
Run locally
cd <this repo>
git submodule update --init --recursive # (once)
npm ci # (once)
npm run build-openssl-aes-ctr-stream # (once)
python3 -m http.server
Then, open http://localhost:8000.
Server Requirements
noVNC follows the standard VNC protocol, but unlike other VNC clients it does require WebSockets support. Many servers include support (e.g. x11vnc/libvncserver, QEMU, and MobileVNC), but for the others you need to use a WebSockets to TCP socket proxy.
Authors/Contributors of noVNC
See AUTHORS for a (full-ish) list of authors.
-
Core team:
- Joel Martin
- Samuel Mannehed (Cendio)
- Solly Ross (Red Hat / OpenStack)
- Pierre Ossman (Cendio)
-
Notable contributions:
- UI and Icons : Pierre Ossman, Chris Gordon
- Original Logo : Michael Sersen
- tight encoding : Michael Tinglof (Mercuri.ca)
-
Included libraries:
- base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
- DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)
- Pako : Vitaly Puzrin (https://github.com/nodeca/pako)