squid(8)

๐Ÿ’… squid(8) โ€” like, the manual, but make it make sense ๐Ÿ’…

Okay so bestie, this is squid, from the System Manager's Manual. Yes, that kind of manual. Don't panic, I got you. This is literally the high-performance proxy caching server for web clients, and it's giving main character energy in the Unix world. Let me break it down so you actually get it, fr fr.


โœจ NAME โœจ

squid โ€” HTTP web proxy caching server. That's the whole vibe. It's a proxy. It caches. It serves web. Iconic.


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

squid [-dhisrvzCFNRSVYX] [--foreground] [-l facility ] [-f config-file ]
[-[au] port ] [-k signal ] [-n service-name ] [-O command-line ]

Like, that's the whole invocation. All the flags. All the drama. We'll get to each one, don't worry.


๐ŸŒธ DESCRIPTION ๐ŸŒธ

So squid is a high-performance proxy caching server for web clients, and it supports FTP, ICAP, ICP, HTCP and HTTP data objects. Unlike those traditional caching softwares (boooring), Squid handles all requests in a single, non-blocking process. The way it justโ€ฆ does everything without blocking? Obsessed.

Squid keeps meta data and especially hot objects cached in RAM, caches DNS lookups, supports non-blocking DNS lookups, and implements negative caching of failed requests. Basically it remembers the good stuff and the bad stuff so it doesn't have to ask again. Efficient queen.

It also supports SSL, extensive access controls, and full request logging. And by using the lightweight Internet Cache Protocols ICP, HTCP or CARP, Squid caches can be arranged in a hierarchy or mesh for additional bandwidth savings. Cute little cache friend group, honestly.

Squid consists of a main server program squid, some optional programs for custom processing and authentication, and some management and client tools. When squid starts up, it spawns a configurable number of helper processes, each of which can perform parallel lookups. This reduces the amount of time the cache waits for results. Slay, parallelize, periodt.

Fun fact: Squid is derived from the ARPA-funded Harvest Project. History! We love a glow-up.

โš ๏ธ Heads up bestie: This manual page only lists the command line arguments. For details on how to configure Squid see the file /etc/squid/squid.conf.documented, the Squid wiki FAQ and examples at https://wiki.squid-cache.org/, or the configuration manual on the Squid home page http://www.squid-cache.org/Doc/config/. Don't come for me if you needed config help, this page is just the CLI tea.

๐Ÿ’– OPTIONS ๐Ÿ’–

Okay here's the part you actually came for. Every flag, every argument, no cap. I'm not skipping a single one, because missing details is not the vibe.

  • -a port โ€” Specify HTTP port number where Squid should listen for requests, in addition to any http_port specifications in squid.conf. Extra port, extra slay.
  • -C โ€” Do not catch fatal signals. Like, let it crash dramatically if it's gonna. Iconic but risky.
  • -d level โ€” Write debugging to stderr also. Debug tea, but make it visible.
  • -f file โ€” Use the given config-file instead of /etc/squid/squid.conf. If the file name starts with a ! or | then it is assumed to be an external command or command line. Can for example be used to pre-process the configuration before it is being read by Squid. To facilitate this Squid also understands the common #line notion to indicate the real source file. Fancy.
  • -F โ€” Don't serve any requests until store is rebuilt. Patience, bestie.
  • -h โ€” Print help message. The "help me help you" flag.
  • -i โ€” Install as a Windows Service (see -n option). Windows girlies, this one's for you.
  • -k reconfigure | rotate | shutdown | interrupt | kill | debug | check | parse โ€” Parse configuration file, then send signal to running copy (except -k parse) and exit. It's giving "talk to the running process" energy.
  • -l facility โ€” Use specified syslog facility. Implies -s. Syslog but make it custom.
  • -n name โ€” Specify Windows Service name to use for service operations, default is: Squid. Name your service, bestie.
  • -N โ€” No daemon mode. Stay in the foreground, main character style.
  • --foreground โ€” Parent process does not exit until its children have finished. It has no effect with -N which does not fork/exit at startup. Like, don't combine these, it's not that kind of party.
  • --kid roleID โ€” Play a given SMP kid process role, with a given ID. Do not use this option. It is meant for the master process use only. Seriously bestie, hands off. This is not for you.
  • -O options โ€” Set Windows Service Command line options in Registry. Windows registry tea.
  • -r โ€” Remove a Windows Service (see -n option). Bye bye service.
  • -R โ€” Do not set REUSEADDR on port. Reuse is cancelled, respectfully.
  • -s โ€” Enable logging to syslog. Also configurable in /etc/squid/squid.conf. Syslog moment.
  • -S โ€” Double-check swap during rebuild. Double the check, double the care.
  • -u port โ€” Specify ICP port number (default: 3130), disable with 0. ICP port, your call.
  • -v โ€” Print version and build details. The "who am I" flag.
  • -X โ€” Force full debugging. All the debug. Not chill, but sometimes necessary.
  • -Y โ€” Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload. Specific behavior, specific flags, iykyk.
  • -z โ€” Create missing swap directories and other missing cache_dir structures, then exit. All cache_dir types create the configured top-level directory if it is missing. Other actions are type-specific. For example, ufs-based storage systems create missing L1 and L2 directories while Rock creates the missing database file.
โš ๏ธ Okay this is important: This option does not enable validation of any present swap structures. Its focus is on creation of missing pieces. If nothing is missing, squid -z just exits. If you suspect cache_dir corruption, you must delete the top-level cache_dir directory before running squid -z. Don't skip that step, bestie, I'm serious.

By default, squid -z runs in daemon mode (so that configuration macros and other SMP features work as expected), returning control to the caller before cache_dirs are fully initialized. If run from init scripts or daemon managers, the caller often needs to wait for the initialization to complete before proceeding further. Use --foreground option to prevent premature exits. To disable daemon mode, use -N option. The way it just forks and dips? Rude but efficient.


๐ŸŽ€ FILES ๐ŸŽ€

Squid configuration files located in /etc/squid/. Let's go through them, bestie:

  • squid.conf โ€” The main configuration file. You must initially make changes to this file for squid to work. For example, the default configuration only allows access from RFC private LAN networks. Some packaging distributions block even that. So like, actually edit this one, okay?
  • squid.conf.default โ€” Reference copy of the configuration file. Always kept up to date with the version of Squid you are using. Use this to look up the default configuration settings and syntax after upgrading. The "what was the default again?" file.
  • squid.conf.documented โ€” Reference copy of the configuration file. Always kept up to date with the version of Squid you are using. Use this to read the documentation for configuration options available in your build of Squid. The online configuration manual is also available for a full reference of options. see http://www.squid-cache.org/Doc/config/. The "read the docs" file, literally.
  • msntauth.conf โ€” The main configuration file for the Sample MSNT authenticator. Auth config, cute.
  • errorpage.css โ€” CSS Stylesheet to control the display of generated error pages. Use this to set any company branding you need, it will apply to every language Squid provides error pages for. Branding era, love that for you.

Some files also located elsewhere. Yes, they're not all in /etc/squid/, don't come for me:

  • /etc/squid/mime.conf (mime_table) โ€” MIME type mappings for FTP gatewaying. FTP gateway vibes.
  • /usr/share/squid/errors โ€” Location of Squid error pages and templates. Error page home base.

๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Squid was written over many years by a changing team of developers and maintained in turn by:

  • Duane Wessels <duane@squid-cache.org>
  • Henrik Nordstrom <hno@squid-cache.org>
  • Amos Jeffries <amosjeffries@squid-cache.org>

With contributions from many others in the Squid community. see CONTRIBUTORS for a full list of individuals who contributed code. see CREDITS for a list of major code contributing copyright holders. Team effort, we stan.


 * Copyright (C) 1996-2026 The Squid Software Foundation and
contributors
 *
 * Squid software is distributed under GPLv2+ license and includes
 * contributions from numerous individuals and organizations.
 * Please see the COPYING and CONTRIBUTORS files for details.

GPLv2+ license, bestie. Respect the license, it's literally the law.


๐Ÿ’œ QUESTIONS ๐Ÿ’œ

Questions on the usage of this program can be sent to the Squid Users mailing list <squid-users@lists.squid-cache.org>. Ask away, they're nice.


๐Ÿซถ REPORTING BUGS ๐Ÿซถ

Bug reports need to be made in English. See https://wiki.squid-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report. Like, they need the tea in English, okay?

  • Report bugs or bug fixes using https://bugs.squid-cache.org/
  • Report serious security bugs to Squid Bugs <squid-bugs@lists.squid-cache.org>
  • Report ideas for new improvements to the Squid Developers mailing list <squid-dev@lists.squid-cache.org>

Don't send your random bug to the security list, bestie. Respect the channels.


โญ SEE ALSO โญ

Go read these if you need more. The FAQ wiki is a whole vibe, ngl.


And that's the whole page, bestie. This is from the squid(8) manpage, System Manager's Manual, and if you ever need the version details, just run squid -v โ€” or like, check the footer when you man squid, because it's there. Stay slay, keep your cache warm, and remember: don't use --kid unless you're the master process. Periodt. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from