LinuxCommandLibrary

vncviewer

View and control remote computer desktops

TLDR

Launch a VNC client which connects to a host on a given display

$ vncviewer [host]:[display_number]
copy

Launch in full-screen mode
$ vncviewer -FullScreen [host]:[display_number]
copy

Launch a VNC client with a specific screen geometry
$ vncviewer --geometry [width]x[height] [host]:[display_number]
copy

Launch a VNC client which connects to a host on a given port
$ vncviewer [host]::[port]
copy

SYNOPSIS

vncviewer [options] [host][:display]
vncviewer [options] [host][::port]
vncviewer [options] [vnc://host:port/]

PARAMETERS

host[:display] or host[::port]
    Specifies the VNC server to connect to. display is a number (e.g., :1 for port 5901), and port is the direct TCP port (e.g., 5901).

-help
    Displays a help message with available command-line options.

-version
    Prints the version of the vncviewer application.

-config file
    Loads configuration options from the specified file.

-via gateway
    Connects to the VNC server via an SSH gateway machine, enabling secure, tunneled connections.

-passwd file
    Reads the VNC password from the specified file, useful for scripting.

-fullscreen
    Starts the viewer in full-screen mode, occupying the entire display.

-ViewOnly
    Connects in view-only mode, preventing local keyboard and mouse input from affecting the remote server.

-Shared
    Allows other VNC viewers to connect to the same server display simultaneously.

-encodings enc
    Specifies the preferred encoding types for screen updates (e.g., tight, hextile, raw) to optimize performance.

-compresslevel level
    Sets the ZLib compression level (0-9) for compressed encodings.

-quality level
    Sets the JPEG quality level (0-9) for lossy encodings like Tight, balancing image quality and bandwidth.

-sendclipboard
    Enables sending the local clipboard content to the VNC server.

-acceptclipboard
    Enables receiving clipboard content from the VNC server to the local machine.

DESCRIPTION

vncviewer is the client application for the Virtual Network Computing (VNC) system, enabling users to remotely view and control a desktop environment running on a VNC server. It functions by transmitting local keyboard and mouse events to the server and receiving screen updates in return, effectively creating a virtual remote display. It's widely employed for tasks such as remote administration, technical support, and accessing graphical applications on distant machines. The viewer can connect to servers specified by hostname and display number (e.g., host:1) or by IP address and explicit port (e.g., host::5901). It supports various encoding types to optimize performance across different network conditions and offers options for secure connections via SSH tunneling.

CAVEATS

VNC itself is inherently unencrypted. For secure communication, it is highly recommended to use vncviewer with SSH tunneling (via the -via option) or a VPN. Firewall configurations on both client and server sides must allow connections on the VNC port (default 5900 + display number). Performance can vary significantly based on network speed and selected encoding methods.

KEYBOARD SHORTCUTS

A common shortcut is pressing F8 (or Ctrl+Alt+Shift+F8) during a session to bring up a menu with options like full-screen toggle, sending special key combinations (e.g., Ctrl+Alt+Del), or disconnecting.

SECURITY BEST PRACTICES

Always prioritize securing your VNC connection. Using vncviewer -via sshuser@sshserver is the most common and recommended method to encrypt VNC traffic and protect your remote sessions from eavesdropping and unauthorized access.

HISTORY

VNC (Virtual Network Computing) was originally developed at AT&T Laboratories Cambridge in the late 1990s. vncviewer is the essential client-side component of this system. Following the closure of AT&T Labs Cambridge, the core developers formed RealVNC, continuing to develop and maintain the software. Numerous open-source implementations, such as TightVNC and TurboVNC, have since emerged, each with their own vncviewer variants, all building upon the foundational RFB (Remote FrameBuffer) protocol.

SEE ALSO

vncserver(1), sshd(8), x11vnc(1), remmina(1)

Copied to clipboard