guacd(8)

πŸ“¦
version 1.6.0 Β· 3 versions
, in alpine 3.24, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05

πŸ’– guacd β€” Guacamole proxy daemon πŸ’–

okay bestie, sit down, we're learning about guacd (that's section 8 of the manual, the system-administration one, very serious, very demure) πŸŽ€


✨ SYNOPSIS ✨

guacd [-b HOST] [-l PORT] [-p PID FILE] [-L LOG LEVEL] [-C CERTIFICATE
FILE] [-K KEY FILE] [-f] [-v]

🌸 DESCRIPTION 🌸

So guacd is the Guacamole proxy daemon, and it's the whole reason the Guacamole web app and framework can do their thing. Here's the tea: JavaScript literally cannot handle binary protocols (like VNC and remote desktop) efficiently β€” it's giving not built for this 😭 β€” so the devs invented a brand new text-based protocol instead. That protocol carries a common superset of all the operations you'd need for efficient remote desktop access, but it's easy for JavaScript programs to process. Chef's kiss. πŸ‘‘

And guacd? guacd is the proxy that translates between arbitrary protocols and the Guacamole protocol. It's basically the bilingual bestie at the party who talks to everyone. πŸ¦‹


πŸ’… OPTIONS πŸ’…

  • -b HOST β€” changes the host or address that guacd listens on. New address, who dis. ✨
  • -l PORT β€” changes the port that guacd listens on. (The default is port 4822, iykyk.) πŸ“
  • -p FILE β€” makes guacd write the PID of the daemon process to the file you specify. Super useful for init scripts β€” in fact the provided init script uses it. πŸ‘‘
  • -L LEVEL β€” sets the maximum level at which guacd will log messages to syslog and, if it's running in the foreground, to the console too. Legal values are trace, debug, info, warning, and error. The default value is info. No cap. 🌈
  • -f β€” makes guacd run in the foreground instead of automatically forking into the background. Main character energy, it stays right here. πŸ’…
  • -v β€” makes guacd simply print its version information and exit. That's it, that's the whole vibe check. bye πŸ‘‹

πŸ”’ SSL/TLS OPTIONS πŸ”’

If libssl was present at the time guacd was compiled, then guacd will contain SSL/TLS support, and the connections between the web application and guacd can be encrypted β€” but only if a certificate file is given. 🀝

When you're using a chain of certificates, you must append the additional certificates to your server certificate. You can do this easily with the standard cat command. But beware, bestie, seriously: the certificate for guacd must be the first certificate in the file. First. Periodt. 🚨

Something like:

cat server.crt additional.crt > combined.crt

(okay that's the idea of it β€” the original just says you can do this easily with the standard cat command, and the guacd cert goes first πŸ’–)

  • -C CERTIFICATE FILE β€” enables SSL/TLS using the given certificate file. Future connections to this instance of guacd will require SSL/TLS enabled in the client (that's the web application). If this option is not given, communication with guacd must be unencrypted. πŸ™ˆ
  • -K KEY FILE β€” enables SSL/TLS using the given private key file. Future connections to this instance of guacd will require SSL/TLS enabled in the client (the web application). If this option is not given, communication with guacd must be unencrypted. 🫢

πŸ‘€ SEE ALSO πŸ‘€


version 1.6.0 Β· 1 Jun 2017

and that's the whole page, bestie β€” slay, go configure your proxy πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ