tigervncserver(1)
π tigervncserver β the TigerVNC standalone server starter π
okay bestie, welcome to the tigervncserver(1) page, from the Virtual Network Computing manual π
this is the one that gets your whole VNC desktop situation going, and I'm gonna walk you through every single bit of it, no skipping, no cap.
β¨ NAME β¨
tigervncserver β start or stop a TigerVNC standalone server π«Ά
πΈ SYNOPSIS πΈ
like, here's the shape of every way you can call her:
tigervncserver [[user@]host][:display#] [-rfbport rfbport#]
[-rfbunixpath Unixsocketpath] [-rfbunixmode permissions] [-localhost
[yes|no]] [-SecurityTypes sec-types] [-RequireUsername [yes|no]]
[-PasswordFile|-rfbauth passwd-file] [-PlainUsers user-list]
[-PAMService|-pam_service service-name] [-X509Key cert-key-file]
[-X509Cert cert-file] [-RSAKey rsa-key-file] [-fg] [-useold] [-verbose]
[-dry-run] [-geometry <width>x<height>] [-wmDecoration <width>x<height>]
[-xdisplaydefaults] [-xstartup script] [-noxstartup] [-desktop desktop-
name] [-depth depth] [-pixelformat format] [-autokill [yes|no]] [-fp
font-path] [-pidfile pid-file-path] [Xtigervnc options...] [-- X
session or command with optional options...]
tigervncserver -kill [[user@]host][:display#|:*] [-rfbport rfbport#]
[-rfbunixpath Unixsocketpath] [-dry-run] [-verbose] [-clean]
tigervncserver -list [[user@]host][:display#|:*] [-rfbport rfbport#]
[-rfbunixpath Unixsocketpath] [-cleanstale]
tigervncserver -version
three modes, bestie: start it, kill it, list it, plus a lil version check. slay.
π¦ DESCRIPTION π¦
tigervncserver is the thing you run to start a TigerVNC (Virtual Network Computing) desktop π. Under the hood it's a Perl wrapper script β not me being dramatic, that's literally what it is β and its whole job is to make starting an instance of the Xtigervnc VNC server way less painful than doing it yourself π. It runs Xtigervnc with the appropriate options, and then it starts some X applications so you actually have stuff to look at in your TigerVNC desktop β¨.
Here's the cute part: you can run tigervncserver with no options at all π. In that case it'll:
- pick the first available display number (usually
:1), - start
Xtigervncas that display, - and run a couple of basic applications to get you started π
You can also specify the display number yourself, and then it'll use that number if it's available and just exit if it's not π. Like:
tigervncserver :13
π§ user@host energy π§
Moreover (iconic word), you can hand over a username and a hostname to start the tigervncserver via SSH on the given machine, under the provided user account π, like so:
tigervncserver franz@kopernikus:13
β οΈ Heads up bestie: this requires the same version of the tigervncserver wrapper script on the remote machine as is on the local machine. No version mismatches, fr fr.
πΈ making it yours πΈ
Creating the file ~/.config/tigervnc/xstartup lets you change the applications that run at startup π«Ά β but note that this will not affect an existing desktop, so don't come for me when your already-running session doesn't budge π.
π the config priority ladder (iykyk) π
System defaults for this wrapper script live in /etc/tigervnc/vncserver-config-defaults. Those defaults can be overwritten by the user defaults given in ~/.config/tigervnc/config.pl (go read the tigervnc.conf(5x) man page for that one π). Then, command-line options overwrite the settings in both tigervnc configuration files. And finally, options from /etc/tigervnc/vncserver-config-mandatory have the highest priority, overwriting all previous settings πβ¨.
So the vibe check order is, lowkey:
/etc/tigervnc/vncserver-config-defaults~/.config/tigervnc/config.pl- command-line options
/etc/tigervnc/vncserver-config-mandatoryβ main character, always wins π
π¨ WARNING! There is nothing stopping users from constructing their own wrapper script that callsXtigervncdirectly, to bypass any options defined in the/etc/tigervnc/vncserver-config-mandatoryconfiguration file. So that "mandatory" file is mandatory-ish, and you should know that π.
okay that's the setup, bestie β more coming, don't go anywhere π
β¨ OPTIONS β¨
okay bestie, here's the tea π you can get a full list of options by handing -h to tigervncserver. and lowkey important: on top of everything listed down here, any option that doesn't get recognized just gets passed straight through to Xtigervnc β so go check the Xtigervnc(1) man page or run "Xtigervnc -help" for the deets. periodt.
:display#β tells you which X11 display theXtigervncserver should create. iconic little colon-first moment π-rfbport rfbport#β sets the TCP port whereXtigervnclistens for viewers (the VNC protocol is called RFB, aka "remote framebuffer", iykyk). default is5900plus the display numberdisplay#. wanna turn it off entirely? specify-1. π«Ά-rfbunixpath Unix socket pathβ gives a path for theXtigervncserver to listen on as a Unix domain socket. no Unix domain socket gets created if you don't pass this one. no cap.-rfbunixmode permissionsβ sets the mode of that Unix domain socket. default is0600. π-localhost [yes|no]β should the TigerVNC server only listen on localhost for incoming TigerVNC connections? super useful if you're using SSH and wanna block non-SSH connections from every other host. if you don't specify this option at all, here's the vibe: we only listen on localhost if thesec-typeslist has zeroTLS*orX509*security types, or if the list has at least one*Nonesecurity type. otherwise? we listen on all the network addresses of the machine. π-SecurityTypes sec-typesβ pick which security scheme to use for incoming connections. valid values are a comma-separated list ofNone,VncAuth,Plain,TLSNone,TLSVnc,TLSPlain,X509None,X509Vnc,X509Plain,RA2,RA2ne,RA2_256, andRA2ne_256. default isVncAuthif-localhostisn't given, andVncAuth,TLSVncif-localhost nois given. π₯-RequireUsername [yes|no]β for the RSA-AES security types (that'sRA2,RA2ne,RA2_256, andRA2ne_256), this decides whether auth happens via Unix username and password (-RequireUsername yes) or via the VNC password file (-RequireUsername no). default is authenticating through the VNC password file.-PasswordFile passwd-fileor-rfbauth passwd-fileβ points to the file holding the password used to authenticate viewers, for the security typesVncAuth,TLSVnc,X509Vnc,RA2,RA2ne,RA2_256, andRA2ne_256. default password file is~/.config/tigervnc/passwd. and heads up π for the RSA-AES security types, auth via the VNC password file only happens when-RequireUsernameisno, which is the default.-PlainUsers user-listβ a comma-separated list of usernames allowed to authenticate via any of the*Plainsecurity types (Plain,TLSPlain, etc.) or the RSA-AES security types (RA2,RA2ne, etc.) when-RequireUsernameisyes. specify*to let literally anyone authenticate with these security types. default only allows the user who started thetigervncserverwrapper script. π«‘-PAMService service-nameor-pam_service service-nameβ the PAM service name to use when authenticating users via any of the*Plainsecurity types or the RSA-AES security types when-RequireUsernameisyes. default isvncif/etc/pam.d/vncexists, andtigervncotherwise. thetigervnc-commonpackage ships the/etc/pam.d/tigervncPAM service configuration fortigervncserverto use. πΈ-X509Cert cert-pathand-X509Key key-pathβ paths to a X509 certificate in PEM format used for all X509-based security types (likeX509None,X509Vnc, etc.), plus its private key, also in PEM format. if the cert and key aren't provided through-X509Certand-X509Keyor their matching config parameters in/etc/tigervnc/vncserver-config-defaults,~/.config/tigervnc/config.pl, or/etc/tigervnc/vncserver-config-mandatory, then thetigervncserverwrapper script auto-generates a self-signed certificate. that auto-generated self-signed cert and its private key live in~/.config/tigervnc/host-SrvCert.pemand~/.config/tigervnc/host-SrvKey.pem. β¨-RSAKey rsa-key-pathβ path to an RSA key in PEM format used by all RSA-AES security types. if the RSA key isn't given via-RSAKeyor the matching config parameter in/etc/tigervnc/vncserver-config-defaults,~/.config/tigervnc/config.pl, or/etc/tigervnc/vncserver-config-mandatory, then thetigervncserverwrapper script auto-generates an RSA key. that auto-generated key gets stored in~/.config/tigervnc/host-SrvRsaKey.pem. π-fgβ runs theXtigervncserver as a foreground process. so yes, you can abort the server with CTRL-C. main character behavior tbh. π-useoldβ only spin up a new TigerVNC server if one isn't already running on your account at the requested display numberdisplay#and RFB portrfbport#. if no display number is requested, a new TigerVNC server only starts if there's no TigerVNC server running under your user account at all. either way, you get info printed about the newly started TigerVNC server or the reused TigerVNC server session. π-verboseβ turns on some debug output. she's chatty. π¬-dry-runβ doesn't actually do anything, just runs the checks to see if the requested action would even be possible. for example, it checks whether the requested display numberdisplay#is available. peak "let's just see" energy. π-geometry <width>x<height>β sets the size of the desktop being created. by default, a1920x1200desktop gets created.-wmDecoration <width>x<height>β sets the adjustment of the dimensions derived by-xdisplaydefaults, to accommodate the window decoration used by the X11 window manager. this is so the VNC desktop fully displays even when the VNC viewer isn't in full screen mode. π-xdisplaydefaultsβ lets you derive values for the above three options, meaning-geometrythrough-pixelformat, from the running X session. the derived dimensions get adjusted by the-wmDecorationoption.-xstartup scriptβ run a custom startup script instead of~/.config/tigervnc/xstartup, after launchingXtigervnc. super handy for running full-screen applications. π₯οΈ-noxstartupβ don't run the~/.config/tigervnc/xstartupscript after launchingXtigervnc. this option lets you manually start a window manager inside your TigerVNC session.-desktop desktop-nameβ every desktop has a name that the viewer might display. it defaults to"host:display# (username)"but you can change it with this option. it gets passed into theXtigervnc-sessionscript via the$VNCDESKTOPenvironment variable, which lets you run a whole different set of applications depending on the desktop's name. π-depth depthβ the pixel depth in bits of the desktop being created. default is24, other possible values are16and32. anything else is likely to cause strange behaviour by applications and may even stop the server from starting at all. > bestie do NOT freestyle this one. π-pixelformat formatβ the pixel format for the server to use (BGRnnnorRGBnnn). the default for depth16isRGB565(meaning the most significant five bits represent red, the next six green, and the least significant five represent blue), and for depth24and32it'sRGB888. π-autokill [yes|no]β-autokillis enabled by default. when it's on, the TigerVNC server automatically gets killed when theXtigervnc-sessionscript exits. in most cases this meansXtigervncterminates when the user logs out of the window manager. to turn it off, use-autokill no.-fp font-pathβ specifies a font path. otherwise, if no font path is configured, theXtigervncserver falls back to its own preferred method of font handling. π€-pidfileβ specifies the file that stores the pid of theXtigervncserver to be started.-- X sessionβ this special option controls which X session type gets started. it should match one of the files in/usr/share/xsessions. for example, if there's a file calledgnome.desktop, then-- gnomewould start this X session. β-kill [[user@]host][:display#|:*] [-rfbport rfbport#]β this kills a TigerVNC server that was previously started withtigervncserverorx0tigervncserver. it does this by killing theXtigervncprocess, whose process ID is stored in the file~/.config/tigervnc/host:rfbport#.pid. this is useful so you can write"tigervncserver -kill $DISPLAY", e.g., at the end of yourXtigervnc-sessionfile after a particular application exits. if:*is given, thentigervncservertries to kill allXtigervncprocesses with pidfiles in~/.config/tigervncon the local machine. if no display number is given, thentigervncservertries to kill theXtigervncprocesses of the user on the local machine β but only if just one such process is running and has a pidfile in~/.config/tigervnc. if a host is specified, thentigervncserveruses SSH to kill anXtigervncprocess on the remote machine. πͺ-cleanβ if given with-kill, then the logfile~/.config/tigervnc/host:rfbport#.logalso gets removed. tidy queen π§Ή-list [[user@]host][:display#|:*] [-rfbport rfbport#]β lists all running TigerVNC servers previously started withtigervncserverorx0tigervncserver. if a host is specified, thentigervncserveruses SSH to list VNC desktops on the remote machine. stale entries get marked with(stale)in the output. π-cleanstaleβ if given with-list, then stale entries get cleaned up and are not shown in the-listoutput. these are the ones resulting from missed cleanups of pidfiles in~/.config/tigervncas well as stale X11 locks and sockets in/tmpcaused byXtigervncorX0tigervncserver crashes. π§Ό
π FILES π
Okay bestie, here's where TigerVNC keeps all its lil treasures. Several TigerVNC-related files live in the ~/.config/tigervnc directory:
~/.config/tigervnc/xstartupβ a shell script that says which X applications get run when a TigerVNC desktop starts up. If it doesn't exist, the system default provided in/etc/tigervnc/vncserver-config-defaultsis used. A mandatory start script can also be given in/etc/tigervnc/vncserver-config-mandatory.~/.config/tigervnc/passwdβ the TigerVNC password file for the security typesVncAuth,TLSVnc, andX509Vnc.~/.config/tigervnc/<host>:<display#>.logβ the log file for the VNC server and the applications started byXtigervnc-session.~/.config/tigervnc/<host>:<display#>.pidβ identifies the VNC server process ID, used by the-killoption.~/.config/tigervnc/<host>-SrvCert.pemand<host>-SrvKey.pemβ the security typesX509None,X509Vnc, andX509Plainneed a certificate and the corresponding private key. If these are not provided via the-X509Certand-X509Keycommand-line options or their corresponding configuration parameters in the configuration files/etc/tigervnc/vncserver-config-defaults,~/.config/tigervnc/config.pl, or/etc/tigervnc/vncserver-config-mandatory, then thetigervncserverwrapper script auto-generates a self-signed certificate for the-X509Certand-X509Keyoptions of theXtigervncserver. The auto-generated self-signed certificate and its private key are stored in the above given two files. If the user wants their own certificate β instead of the on-demand auto-generated one β they can either specify it via thetigervncserveroptions-X509Certand-X509Keyor replace the files~/.config/tigervnc/host-SrvCert.pemand~/.config/tigervnc/host-SrvKe.pem. These files will not be overwritten once generated by thetigervncserverwrapper script.~/.config/tigervnc/<host>-SrvRsaKey.pemβ the RSA-AES security types (i.e.,RA2,RA2ne,RA2_256, andRA2ne_256) need an RSA private key. If this key is not provided via the-RSAKeycommand-line option or the corresponding parameter in the configuration files/etc/tigervnc/vncserver-config-defaults,~/.config/tigervnc/config.pl, or/etc/tigervnc/vncserver-config-mandatory, then thetigervncserverwrapper script auto-generates an RSA key for the-RSAKeyoption of theXtigervncserver. The auto-generated key is stored in the file~/.config/tigervnc/host-SrvRsaKey.pem.~/.config/tigervnc/config.plβ the user configuration file fortigervncserver. To be compatible with the upstream provided wrapper scripts, we will fall back to trying to load configuration from~/.config/tigervnc/configif~/.config/tigervnc/config.plis not present. Note that the config file useskey=valuelines as configuration syntax, while theconfig.pland thetigervncserver-config-*files in the/etc/tigervncdirectory useperl(1)syntax.
Furthermore, there are global configuration files for tigervncserver in the /etc/tigervnc directory:
/etc/tigervnc/vncserver-config-defaultsβ the global configuration file specifying the defaults fortigervncserver./etc/tigervnc/vncserver-config-mandatoryβ if this file exists and defines options to be passed toXtigervnc, they will override any of the same options defined in a user'sconfig.plfile or ones given on the command line of this wrapper script. This file offers a mechanism to establish some basic form of system-wide policy.
β οΈ WARNING! There is nothing stopping users from constructing their own wrapper script that callsXtigervncdirectly to bypass any options defined in the/etc/tigervnc/vncserver-config-mandatoryconfiguration file. π Like, the door is locked but the window is wide open, bestie.
β¨ SEE ALSO β¨
Go read these too, they're all part of the fam:
tigervnc.conf(5x)tigervncconfig(1)tigervncpasswd(1)tigervncsession(8)Xtigervnc(1)xtigervncviewer(1)x0tigervncserver(1)- http://www.tigervnc.org
π AUTHOR π
Joachim Falk, Tristan Richardson, RealVNC Ltd., and others. VNC was originally developed by the RealVNC team while at Olivetti Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were implemented by Constantin Kaplinsky. Many other people have since participated in development, testing and support. This manual is part of the TigerVNC Debian packaging project. π«Ά
And that's the whole page, bestie! This masterpiece is from TigerVNC 1.14.1, dated Nov 10th, 2024 β slay, iconic, no notes. π β¨
π¦ where this page comes from
- debian trixie: tigervnc-standalone-server 1.15.0+dfsg-2.1~deb13u1 Β· GPL-2.0-or-later
- ubuntu questing: tigervnc-standalone-server 1.15.0+dfsg-2
- ubuntu resolute: tigervnc-standalone-server 1.15.0+dfsg-2build1 Β· GPL-2.0-or-later
- ubuntu stonking: tigervnc-standalone-server 1.15.0+dfsg-2.1 Β· GPL-2.0-or-later
- Copyright (C) 2016 - 2024 Joachim.Falk@gmx.de
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms