Tunneling Software
Install ONE of the following programs to expose your local VNC port to the internet:
Software & Images
Versions below NT 4.0 may be difficult to install. Windows 7, Windows XP, and Windows 10 are highly recommended for stability.
VMware Setup Steps
- Open VMware Workstation and create a new virtual machine.
- Select Typical Configuration.
- Choose Installer disc image file (iso) and select your downloaded Windows ISO.
- Ensure Guest Operating System is set to Microsoft Windows and matches your ISO version.
- Name the VM clearly (e.g., "Windows XP", "Windows 10").
- Store the VM in a location with sufficient free space.
Hardware Configuration
- Memory: Set to 4096 MB for modern Windows (1024-2048 MB for XP).
- Processors: Set to 2 cores.
- Hard Disk: At least 60 GB for Windows XP and newer.
- Network Mode: Must be set to NAT.
OS Specific Guidance
Windows 98
256β512 MB RAM. Small disks (2-8 GB). Expect driver/display limits.
Windows XP
1024β2048 MB RAM. 20β40 GB disk. Very stable for VNC access.
Windows 10
4096 MB RAM. 60+ GB disk. 2 CPU cores minimum. Best compatibility.
Enable VNC Access
- Power off the VM.
- Open VM Settings > Options > VNC Connections.
- Enable VNC access and set a strong password.
- Note your local VNC port (commonly 5900).
Example local endpoint: localhost:5900
Websockify and noVNC Requirement
Mandatory for Browser Access:
VNC is a raw TCP protocol and browsers cannot connect to it directly. The self hosting system expects a websocket endpoint (wss://). Therefore, websockify or noVNC must be used to convert VNC traffic into websocket traffic before exposing it through a tunnel. Tunneling tools do not perform protocol conversion.
Correct Data Flow:
1. VMware VNC Server (TCP 5900)
2. Websockify / noVNC Websocket Server (e.g., TCP 6080)
3. Tunneling Program (bore, localtunnel, serveo)
4. Browser Client using wss://
The tunnel must expose the websockify or noVNC port (6080), not the raw VNC port (5900).
Windows Websockify / noVNC Setup
- Install Git for Windows.
- Clone the noVNC repository:
git clone https://github.com/novnc/noVNC
- Install Python 3 and ensure it is added to your PATH.
- From the noVNC directory, run websockify pointing to the local VNC server:
python utils/websockify/run.py 6080 localhost:5900
- Confirm that noVNC is listening on
localhost:6080 and serving a websocket endpoint.
Linux Websockify / noVNC Setup
- Install dependencies using the system package manager (python3, git).
- Clone the noVNC repository:
git clone https://github.com/novnc/noVNC
- Run websockify:
./utils/websockify/run 6080 localhost:5900
- Confirm that the websocket server is active on port
6080.
3. Tunnel the WebSocket Port (6080)
β οΈ IMPORTANT: You must tunnel port 6080, NOT 5900.
Run one of these commands to create your public link:
Bore:
bore local 6080
Localtunnel:
lt --port 6080
Serveo:
ssh -R 80:localhost:6080 serveo.net
The command will output a public URL (e.g. wss://random.localtunnel.me). This is your VNC Endpoint.
Operational Requirement
VMware, Websockify, and your Tunnel MUST all be running at the same time for the VM to work!
Finalizing on VMsHARE
Fill out the Self-Host modal as follows:
VM Name: Windows 10
Path (Slug): /windows10selfhost
Location: wss://YOUR_TUNNEL_URL/windows10selfhost
Replace YOUR_TUNNEL_URL with the output from your tunnel program.
Icon URL: https://windows.com/windows10.png
Categories: windows
Description: A Windows 10 machine.
Note: The VMware Workstation 7z archive used in this tutorial is password-protected; the password is "mysubsarethebest".
Operational Notes
- VMware and your tunneling program must remain running at all times.
- Free tunnels are usually not persistent and will change URLs when restarted.
- Performance depends heavily on your host hardware and network upload speed.