Section: (1)
Updated: 15 February 2009


privoxy - Privacy Enhancing Proxy  


privoxy [--help ] [--version ] [--no-daemon ] [--pidfile pidfile ] [--user user[.group] ] [--chroot ] [--pre-chroot-nslookup hostname ] [configfile ]



Privoxy may be invoked with the following command line options:

Print brief usage info and exit.
Print version info and exit.
Don't become a daemon, i.e. don't fork and become process group leader, don't detach from controlling tty, and do all logging there.
--pidfile pidfile
On startup, write the process ID to pidfile. Delete the pidfile on exit. Failure to create or delete the pidfile is non-fatal. If no --pidfile option is given, no PID file will be used.
--user user[.group]
After (optionally) writing the PID file, assume the user ID of user and the GID of group, or, if the optional group was not given, the default group of user. Exit if the privileges are not sufficient to do so.
Before changing to the user ID given in the --user option, chroot to that user's home directory, i.e. make the kernel pretend to the Privoxy process that the directory tree starts there. If set up carefully, this can limit the impact of possible vulnerabilities in Privoxy to the files contained in that hierarchy.
--pre-chroot-nslookup hostname
Initialize the resolver library using hostname before chroot'ing. On some systems this reduces the number of files that must be copied into the chroot tree.

If the configfile is not specified on the command line, Privoxy will look for a file named config in the current directory. If no configfile is found, Privoxy will fail to start.  


Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data, managing HTTP cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. Privoxy has a flexible configuration and can be customized to suit individual needs and tastes. Privoxy has application for both stand-alone systems and multi-user networks.

Privoxy is based on Internet Junkbuster (tm).  


Browsers can either be individually configured to use Privoxy as a HTTP proxy (recommended), or Privoxy can be combined with a packet filter to build an intercepting proxy (see config). The default setting is for localhost, on port 8118 (configurable in the main config file). To set the HTTP proxy in Netscape and Mozilla, go through: Edit; Preferences; Advanced; Proxies; Manual Proxy Configuration; View.

For Firefox, go through: Tools; Options; General; Connection Settings; Manual Proxy Configuration.

For Internet Explorer, go through: Tools; Internet Properties; Connections; LAN Settings.

The Secure (SSL) Proxy should also be set to the same values, otherwise https: URLs will not be proxied. Note: Privoxy can only proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols. HTTPS presents some limitations, and not all features will work with HTTPS connections.

For other browsers, check the documentation.  


Privoxy can be configured with the various configuration files. The default configuration files are: config, default.filter, and default.action. user.action should be used for locally defined exceptions to the default rules of default.action, and user.filter for locally defined filters. These are well commented. On Unix and Unix-like systems, these are located in /etc/privoxy/ by default.

Privoxy uses the concept of actions in order to manipulate the data stream between the browser and remote sites. There are various actions available with specific functions for such things as blocking web sites, managing cookies, etc. These actions can be invoked individually or combined, and used against individual URLs, or groups of URLs that can be defined using wildcards and regular expressions. The result is that the user has greatly enhanced control and freedom.

The actions list (ad blocks, etc) can also be configured with your web browser at (assuming the configuration allows it). Privoxy's configuration parameters can also be viewed at the same page. In addition, Privoxy can be toggled on/off. This is an internal page, and does not require Internet access.

See the User Manual for a detailed explanation of installation, general usage, all configuration options, new features and notes on upgrading.  


A brief example of what a simple default.action configuration might look like:

 # Define a few useful custom aliases for later use

 # Useful aliases that combine more than one action
 +crunch-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
 -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
 +block-as-image = +block +handle-as-image

 # Fragile sites should have the minimum changes
 fragile     = -block -deanimate-gifs -fast-redirects -filter \
               -hide-referer -prevent-cookies

 ## Turn some actions on ################################
 ## NOTE: Actions are off by default, unless explictily turned on 
 ## otherwise with the '+' operator.

{ \
+change-x-forwarded-for{block} \
+deanimate-gifs{last} \
+filter{refresh-tags} \
+filter{img-reorder} \
+filter{banners-by-size} \
+filter{webbugs} \
+filter{jumping-windows} \
+filter{ie-exploits} \
+hide-from-header{block} \
+hide-referrer{conditional-block} \
+session-cookies-only \
+set-image-blocker{pattern} \
/ # '/' Match *all* URL patterns

 # Block all URLs that match these patterns
 { +block }

 # Block, and treat these URL patterns as if they were 'images'.
 # We would expect these to be ads.
 { +block-as-image }

 # Make exceptions for these harmless ones that would be 
 # caught by our +block patterns just above.
 { -block }
  # uploads or downloads

Then for a user.action, we would put local, narrowly defined exceptions:

 # Re-define aliases as needed here

 # Useful aliases
 -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
 # Set personal exceptions to the policies in default.action #######

 # Sites where we want persistent cookies, so allow *all* cookies
 { -crunch-cookies -session-cookies-only }
 # These sites break easily. Use our "fragile" alias here.
 { fragile }

 # Replace's style sheet with one of my choosing
 { +redirect{http://localhost/css-replacements/} }

See the comments in the configuration files themselves, or the User Manual for full explanations of the above syntax, and other Privoxy configuration options.  



Various other files should be included, but may vary depending on platform and build configuration. Additional documentation should be included in the local documentation directory.  


Privoxy terminates on the SIGINT, SIGTERM and SIGABRT signals. Log rotation scripts may cause a re-opening of the logfile by sending a SIGHUP to Privoxy. Note that unlike other daemons, Privoxy does not need to be made aware of config file changes by SIGHUP -- it will detect them automatically.  


Please see the User Manual on how to contact the developers, for feature requests, reporting problems, and other questions.  


Other references and sites of interest to Privoxy users:, the Privoxy Home page., the Privoxy FAQ., the Project Page for Privoxy on SourceForge., the web-based user interface. Privoxy must be running for this to work. Shortcut: http://p.p/, to submit ``misses'' and other configuration related suggestions to the developers., an explanation how cookies are used to track web users., the original Internet Junkbuster., a popular caching proxy, which is often used together with Privoxy., Polipo is a caching proxy with advanced features like pipelining, multiplexing and caching of partial instances. In many setups it can be used as Squid replacement., Tor can help anonymize web browsing, web publishing, instant messaging, IRC, SSH, and other applications., the Privoxy developer manual.  


 Fabian Keil, lead developer
 David Schmidt, developer

 Hal Burgiss
 Mark Miller
 Gerry Murphy
 Lee Rian
 Roland Rosenfeld
 Jörg Strohmayer




Copyright (C) 2001-2009 by Privoxy Developers <>

Some source code is based on code Copyright (C) 1997 by Anonymous Coders and Junkbusters, Inc. and licensed under the GNU General Public License.  


Privoxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.

You should have received a copy of the GNU GPL along with this program; if not, write to the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA




This document was created by man2html, using the manual pages.
Time: 18:45:33 GMT, February 15, 2009