QEMU-VNC(1)
π QEMU-VNC(1) π
okay so welcome to the QEMU-VNC(1) page from the QEMU manual, bestie. this is the whole vibe, and yes, weβre keeping every single flag, default, path, and caveat because thatβs just how we do it. π«Ά
πΈ NAME πΈ
qemu-vnc β QEMU standalone VNC server. literally the little VNC server that could. π
β¨ SYNOPSIS β¨
qemu-vnc [OPTION]...
π DESCRIPTION π
qemu-vnc is a standalone VNC server that connects to a running QEMU instance via the D-Bus display interface (D-Bus display <#dbus-display>). it serves the guest display, input, audio, clipboard, and serial console chardevs over the VNC protocol, allowing VNC clients to interact with the virtual machine without QEMU itself binding a VNC socket. iconic behavior, no cap. π
π OPTIONS π
-h,--helpβ display help and exit. your βwait what does this do againβ button. π-V,--versionβ print version information and exit. lil identity check. β¨-a ADDRESS,--dbus-address=ADDRESSβ D-Bus address to connect to. when not specified,qemu-vncconnects to the session bus. default behavior stays defaulting. π¦-p FD,--dbus-p2p-fd=FDβ file descriptor of an inherited Unix socket for a peer-to-peer D-Bus connection to QEMU. this is mutually exclusive with--dbus-addressand--bus-name. pick your lane, bestie. π-n NAME,--bus-name=NAMEβ D-Bus bus name of the QEMU instance to connect to. the default isorg.qemu. when a custom--dbus-addressis given without a bus name, peer-to-peer D-Bus is used. π-W,--waitβ wait for the D-Bus bus name to appear. only for bus connections. patient queen behavior. β³--passwordβ require VNC password authentication from connecting clients. the password is set at runtime via the D-BusSetPasswordmethod (seeD-Bus VNC <>). clients will not be able to connect until a password has been set. no password, no entry, periodt. π
this option is ignored when a systemd credential password is present, since password authentication is already enabled via password-secret in that case.
-l ADDR,--vnc-addr=ADDRβ VNC listen address in the same format as the QEMU-vncoption (defaultlocalhost:0, i.e. TCP port5900). yes, the classic. π-w ADDR,--websocket=ADDRβ enable WebSocket transport on the given address.ADDRcan be a port number or anaddress:portpair. websocket era. π¦-O OBJDEF,--object=OBJDEFβ create a QEMU user-creatable object.OBJDEFuses the samekey=valuesyntax as the QEMU-objectoption. this option may be given multiple times. it is needed, for example, to create authorization objects referenced by--tls-authz. stack those objects, bestie. π§-t DIR,--tls-creds=DIRβ directory containing TLS x509 credentials (ca-cert.pem,server-cert.pem,server-key.pem). when specified, the VNC server requires TLS from connecting clients. secure the bag. π₯--tls-authz=IDβ ID of aQAuthZobject previously created with--objectfor TLS client certificate authorization. when specified, the TLS credentials are created withverify-peer=yesso connecting clients must present a valid certificate. after the TLS handshake, the client certificateDistinguished Nameis checked against the authorization object. this option requires--tls-creds. no cert, no chat. π--saslβ require that the client use SASL to authenticate with the VNC server. the exact choice of authentication method used is controlled from the system / userβs SASL configuration file for the'qemu'service. this is typically found in/etc/sasl2/qemu.conf. if running QEMU as an unprivileged user, an environment variableSASL_CONF_PATHcan be used to make it search alternate locations for the service config. while some SASL auth methods can also provide data encryption (eg GSSAPI), it is recommended that SASL always be combined with the'tls'and'x509'settings to enable use of SSL and server certificates. this ensures a data encryption preventing compromise of authentication credentials. see theVNC security <#vnc-security>section in the System Emulation Users Guide for details on using SASL authentication. auth but make it fashion. π--sasl-authz=IDβ ID of aQAuthZobject previously created with--objectfor SASL username authorization. after successful SASL authentication, the authenticated username is checked against the authorization object. if the check fails, the client is disconnected. this option requires--sasl. check the username, then yeet the connection if it fails. π-s POLICY,--share=POLICYβ set display sharing policy.POLICYis one ofallow-exclusive,force-shared, orignore.allow-exclusiveβ allows clients to ask for exclusive access. as suggested by the RFB spec this is implemented by dropping other connections. connecting multiple clients in parallel requires all clients asking for a shared session (vncviewer: -sharedswitch). this is the default. πforce-sharedβ disables exclusive client access. useful for shared desktop sessions, where you donβt want someone forgetting to specify-shareddisconnect everybody else. group project but make it VNC. π«Άignoreβ completely ignores the shared flag and allows everybody to connect unconditionally. doesnβt conform to the RFB spec but is traditional QEMU behavior. chaotic old-school energy, honestly. π
-C NAME,--vt-chardev=NAMEβ chardev type name to expose as a VNC text console. this option may be given multiple times to expose several chardevs. when not specified, the defaultsorg.qemu.console.serial.0andorg.qemu.monitor.hmp.0are used. default console besties stay winning. π¦-N,--no-vtβ do not expose any chardevs as text consoles. this overrides the default chardev list and any--vt-chardevoptions. no text console, no problem. π-k LAYOUT,--keyboard-layout=LAYOUTβ keyboard layout (e.g.en-us). passed through to the VNC server for key-code translation. your keys, translated. β¨οΈβ¨--lossyβ enable lossy compression methods (gradient,JPEG, ...). if this option is set, VNC client may receive lossy framebuffer updates depending on its encoding settings. enabling this option can save a lot of bandwidth at the expense of quality. beauty is pain, bandwidth is bandwidth. πΈ--non-adaptiveβ disable adaptive encodings. adaptive encodings are enabled by default. an adaptive encoding will try to detect frequently updated screen regions, and send updates in these regions using a lossy encoding (likeJPEG). this can be really helpful to save bandwidth when playing videos. disabling adaptive encodings restores the original static behavior of encodings likeTight. turn it off and go back to the old reliable vibe. π-T,--trace [[enable=]PATTERN][,events=FILE][,file=FILE]β specify tracing options. detective mode: activated. π[enable=]PATTERNβ immediately enable events matchingPATTERN(either event name or a globbing pattern). this option is only available if QEMU has been compiled with thesimple,logorftracetracing backend. to specify multiple events or patterns, specify the-traceoption multiple times. use-trace helpto print a list of names of trace points. trace all the things, bestie. β¨events=FILEβ immediately enable events listed inFILE. the file must contain one event name (as listed in thetrace-events-allfile) per line; globbing patterns are accepted too. this option is only available if QEMU has been compiled with thesimple,logorftracetracing backend. list βem, load βem, trace βem. π¦file=FILEβ log output traces toFILE. this option is only available if QEMU has been compiled with thesimpletracing backend. put the trace tea in this file. π΅
π¦ EXAMPLES π¦
start QEMU with the D-Bus display backend:
qemu-system-x86_64 -display dbus ...
then attach qemu-vnc:
qemu-vnc
a VNC client can now connect to localhost:5900. slay. π
to listen on a different port with TLS:
qemu-vnc --vnc-addr localhost:1 --tls-creds /etc/pki/qemu-vnc
to require TLS with client certificate authorization:
qemu-vnc --object authz-list-file,id=auth0,filename=/etc/qemu/vnc.acl,refresh=on \
--tls-creds /etc/pki/qemu-vnc --tls-authz auth0
to enable SASL authentication with TLS:
qemu-vnc --tls-creds /etc/pki/qemu-vnc --sasl
π VNC PASSWORD AUTHENTICATION π
there are two ways to enable VNC password authentication:
--passwordflag β startqemu-vncwith--passwordand then set the password at runtime using the D-BusSetPasswordmethod. clients will be rejected until a password is set. no password yet? no connection yet, bestie. π- systemd credentials β if the
CREDENTIALS_DIRECTORYenvironment variable is set (seesystemd.exec(5)) and contains a file namedvnc-password, the VNC server will use that fileβs contents as the password automatically. the--passwordflag is not needed in this case. systemd said βI got you.β π«Ά
π D-BUS INTERFACE π
qemu-vnc exposes a D-Bus interface for management and monitoring of VNC connections. see D-Bus VNC <> for the full interface reference. management era. π
π SEE ALSO π
qemu(1)D-Bus display <>D-Bus VNC <>The RFB Protocol <https://github.com/rfbproto/rfbproto>
π«Ά Copyright π«Ά
2026, The QEMU Project Developers
okay thatβs the whole page bestie β this was QEMU-VNC(1) from the QEMU manual, version 11.1.3, dated Oct 29, 2026. now go slay some VNC connections π
β¨
π¦ where this page comes from
- arch rolling: qemu-common 11.1.3-1 Β· BSD-2-Clause AND BSD-2-Clause-Patent AND BSD-3-Clause AND CC0-1.0 AND FSFAP AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-only WITH Linux-syscall-note AND GPL-2.0-only WITH Linux-syscall-note OR BSD-2-Clause AND GPL-2.0-only WITH Linux-syscall-note OR BSD-3-Clause AND GPL-2.0-or-later AND GPL-2.0-or-later OR BSD-3-Clause AND GPL-2.0-or-later WITH Linux-syscall-note AND ISC AND LGPL-2.1-only OR BSD-3-Clause AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-Public-Domain AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms