Xvnc(1)

✨ Xvnc(1) β€” the VNC server that's giving main character energy πŸ¦‹

πŸ’– NAME

Okay so Xvnc is "an X server providing VNC connectivity" 🌸. Basically it's an X server that gives you a VNC connection. Iconic, right? πŸ’…

πŸŽ€ SYNOPSIS

Xvnc   [:display] [-geometry widthxheight] [-depth depth] [-pixelformat
       rgbNNN|bgrNNN] [-udpinputport port] [-rfbport port] [-rfbwait
       time] [-nocursor] [-rfbauth passwd-file] [-httpd dir] [-httpport
       port] [-deferupdate time] [-economictranslate] [-lazytight]
       [-desktop name] [-alwaysshared] [-nevershared] [-dontdisconnect]
       [-viewonly] [-localhost] [-interface ipaddr] [-inetd]
       [-compatiblekbd] [X-options...]

🌈 DESCRIPTION

Okay so bestie, Xvnc is a VNC (Virtual Network Computing) server πŸ–₯️✨. It acts like an X server with a virtual display, and the display can be seen by a VNC viewer app, which might be running on a totally different machine. Go check out vncviewer(1) for that πŸ‘€. Xvnc is built inside the source code tree of XFree86 and shares a bunch of options with it 🧚.

Normally you don't need to start Xvnc by hand πŸ™…β€β™€οΈ. Just use the vncserver(1) wrapper script instead! It sets reasonable defaults for the Xvnc session, and it checks a bunch of error conditions too, so it's literally doing the hard work for you πŸ’œ.

⚠️ Please read the BUGS section if you plan to use VNC on an untrusted network. Seriously, don't skip it 😭.

πŸ¦‹ OPTIONS

Xvnc supports loads of standard X server options plus a number of VNC-specific ones πŸ’…. To see which standard X server options are supported, check the output of Xvnc -help and read the Xserver(1) manual page for the details πŸ“–.

The VNC-specific options are as follows 🌸:

  • -geometry widthxheight β€” Sets the desktop width and height πŸ“.
  • -depth depth β€” Sets the colour depth of the visual, in bits per pixel. It has to be somewhere between 8 and 32 🎨.
  • -pixelformat rgbNNN|bgrNNN β€” Sets the colour format for pixel representation. The viewer can convert to any other pixel format, but it's faster if the server's depth and pixel format match the equivalent values on the viewer's display 🌈.
  • -udpinputport port β€” The UDP port for keyboard and pointer data ⌨️.
  • -rfbport port β€” The TCP port for the RFB protocol πŸ”Œ. RFB is the protocol used for communication between the VNC server and its clients.
  • -rfbwait time β€” The maximum time, in milliseconds, to wait for an RFB client (a VNC viewer) ⏳.
  • -nocursor β€” Don't put up a pointer cursor on the desktop πŸ™ˆ.
  • -rfbauth passwd-file β€” Uses authentication on the RFB protocol, reading from the specified file πŸ”. The passwd-file can be created with the vncpasswd(1) utility.
  • -httpd dir β€” Serves files over HTTP from the specified directory πŸ“‚. Normally the Java viewer classes live in a directory like this.
  • -httpport port β€” The TCP port Xvnc listens on for incoming HTTP connections. This lets you reach the desktop from any Java-capable browser 🌐.
  • -deferupdate time β€” Time in milliseconds to defer screen updates (default 40) ⏱️. Deferring helps squish lots of tiny desktop changes into a few bigger updates, which saves network bandwidth πŸ’Έ.
  • -economictranslate β€” Uses a less memory-hungry pixel format translation 🧠.
  • -lazytight β€” Disables the "gradient" filter in Tight encoding (TightVNC-specific) 🎨. The gradient filter often helps improve data compression ratios, but it can slow the server down. Also, this filter is never used when a client enables JPEG compression in Tight encoding, so don't stress about it 🫢.
  • -desktop name β€” Sets the VNC desktop name ("x11" by default) 🏷️.
  • -alwaysshared β€” Always treats new clients as shared, and never disconnects an existing client when a new one connects 🀝.
  • -nevershared β€” Never treats new clients as shared, so several simultaneous client connections aren't allowed 🚫.
  • -dontdisconnect β€” Doesn't disconnect existing clients when a new non-shared connection comes in. Instead, the new connection gets refused πŸ™…β€β™€οΈ.
  • -viewonly β€” Ignores keyboard and pointer events from clients. Everyone can see the desktop, but nobody can control it πŸ‘€.
  • -localhost β€” Only allows loopback connections from localhost. This one pairs really well with SSH tunneling πŸ”’.
  • -interface ipaddr β€” Listens for client connections only on the network interface with the given ipaddr πŸ“‘.
  • -inetd β€” Xvnc gets launched by inetd. This option makes Xvnc redirect network input and output to stdin and stdout πŸ”.
  • -compatiblekbd β€” Sets the META and ALT keys to the same X modifier flag, like the original version of Xvnc by AT&T labs (TightVNC-specific) ⌨️✨.

🚨 BUGS

Okay, this section is serious, so listen up πŸ₯Ί. There are many security problems in the current Xvnc implementation. It's recommended to restrict network access to Xvnc servers from untrusted network addresses. The best way to secure an Xvnc server is probably to allow only loopback connections from the server machine (the -localhost option) and to use SSH tunneling for remote access. For details on SSH tunneling, check out <URL:http://www.cl.cam.ac.uk/Research/DTG/attarchive/vnc/sshvnc.html> πŸ”—.

🫢 SEE ALSO

vncserver(1), vncviewer(1), vncpasswd(1), vncconnect(1), sshd(1) πŸ’œ

πŸ‘‘ AUTHORS

The original VNC was developed at AT&T Laboratories Cambridge πŸ‡¬πŸ‡§. TightVNC additions were implemented by Constantin Kaplinsky, and many other people helped with development, testing and support πŸ™Œ.

Man page authors:

  • Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>
  • Tim Waugh <twaugh@redhat.com>
  • Constantin Kaplinsky <const@tightvnc.com>

Bestie, that's the whole tea β˜•οΈ. Xvnc, TightVNC, August 2006, Xvnc(1) β€” you're officially a VNC expert now πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from