VNC client over pure HTTPS via Piping Server
This project requires the latest Google Chrome with enable-experimental-web-platform-features flag for fetch() upload streaming feature (origin trial now).
chrome:https://flags/ > Experimental Web Platform features > Enabled
This project is highly based on noVNC. Thanks to the original authors!
- Transfer data over pure HTTP/HTTPS
- End-to-end encryption using the same way as OpenSSL AES CTR does
Features powered by noVNC
- Supports all modern browsers including mobile (iOS, Android)
- Supported authentication methods: none, classical VNC, RealVNC's RSA-AES, Tight, VeNCrypt Plain, XVP, Apple's Diffie-Hellman, UltraVNC's MSLogonII
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG, ZRLE, JPEG
- Supports scaling, clipping and resizing the desktop
- Local cursor rendering
- Clipboard copy/paste with full Unicode support
- Translations
- Touch gestures for emulating common mouse actions
- Licensed mainly under the MPL 2.0, see the license document for details
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 passwordserver
: Piping Server URLcs_path
: Server-to-client pathsc_path
: Client-to-server pathvnc_server_port
: VNC server port for command hintheaders
: 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:
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 https://localhost:8000.
VNC server sides need a VNC server, netcat (nc) and curl.
Authors/Contributors of noVNC
See AUTHORS for a (full-ish) list of authors. If you're not on that list and you think you should be, feel free to send a PR to fix that.
-
Core team:
- Samuel Mannehed (Cendio)
- Pierre Ossman (Cendio)
-
Previous core contributors:
- Joel Martin (Project founder)
- Solly Ross (Red Hat / OpenStack)
-
Notable contributions:
- UI and Icons : Pierre Ossman, Chris Gordon
- Original Logo : Michael Sersen
- tight encoding : Michael Tinglof (Mercuri.ca)
- RealVNC RSA AES authentication : USTC Vlab Team
-
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)