X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fsource%2Fp-config.sgml;h=2b46e9cabac3dcbb270858edea3afb8d5f454f1b;hp=617dd0b8ed29c6d65aefb2bec1e55da921b68a1b;hb=dde30f5e8bb12c63688330c97fde75493f92c09c;hpb=e44a50f4c135a068c5b0333ad832fdfc134587bd diff --git a/doc/source/p-config.sgml b/doc/source/p-config.sgml index 617dd0b8..2b46e9ca 100644 --- a/doc/source/p-config.sgml +++ b/doc/source/p-config.sgml @@ -3,9 +3,9 @@ Purpose : Used with other docs and files only. - $Id: p-config.sgml,v 1.1.2.3 2002/05/31 02:56:25 hal9 Exp $ + $Id: p-config.sgml,v 2.75 2011/07/08 13:31:40 fabiankeil Exp $ - Copyright (C) 2001, 2002 Privoxy Developers + Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/ See LICENSE. ======================================================================== @@ -50,8 +50,8 @@ The Main Configuration File - Again, the main configuration file is named config on - Linux/Unix/BSD and OS/2, and config.txt on Windows. + By default, the main configuration file is named config, + with the exception of Windows, where it is named config.txt. Configuration lines consist of an initial keyword followed by a list of values, all separated by whitespace (any number of spaces or tabs). For example: @@ -81,7 +81,9 @@ The main config file controls all aspects of Privoxy's operation that are not location dependent (i.e. they apply universally, no matter - where you may be surfing). + where you may be surfing). Like the filter and action files, the config file is + a plain text file and can be modified with a text editor like emacs, vim or + notepad.exe. ]]> @@ -95,10 +97,10 @@ Sample Configuration File for Privoxy v&p-version; -Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org + $Id: p-config.sgml,v 2.75 2011/07/08 13:31:40 fabiankeil Exp $ -$Id: p-config.sgml,v 1.1.2.3 2002/05/31 02:56:25 hal9 Exp $ +Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/ @@ -110,8 +112,8 @@ $Id: p-config.sgml,v 1.1.2.3 2002/05/31 02:56:25 hal9 Exp $ I. INTRODUCTION # II. FORMAT OF THE CONFIGURATION FILE # # - 1. CONFIGURATION AND LOG FILE LOCATIONS # - 2. LOCAL SET-UP DOCUMENTATION # + 1. LOCAL SET-UP DOCUMENTATION # + 2. CONFIGURATION AND LOG FILE LOCATIONS # 3. DEBUGGING # 4. ACCESS CONTROL AND SECURITY # 5. FORWARDING # @@ -125,15 +127,21 @@ $Id: p-config.sgml,v 1.1.2.3 2002/05/31 02:56:25 hal9 Exp $ =============== - This file holds the Privoxy configuration. If you modify this - file, you will need to send a couple of requests to the proxy - before any changes take effect. + This file holds Privoxy's main configuration. Privoxy detects + configuration changes automatically, so you don't have to restart it + unless you want to load a different configuration file. - When starting Privoxy on Unix systems, give the name of this - file as an argument. On Windows systems, Privoxy will look for - this file with the name 'config.txt' in the same directory where - Privoxy is installed. + The configuration will be reloaded with the first request after the + change was done, this request itself will still use the old configuration, + though. In other words: it takes two requests before you see the result of + your changes. Requests that are dropped due to ACL don't trigger reloads. + + + When starting Privoxy on Unix systems, give the location of this + file as last argument. On Windows systems, Privoxy will look for + this file with the name 'config.txt' in the current working directory + of the Privoxy process. @@ -160,12 +168,13 @@ II. FORMAT OF THE CONFIGURATION FILE Thus, by placing a # at the start of an existing configuration line, you can make it a comment and it will be treated as if it weren't there. - This is called "commenting out" an option and can be useful. + This is called "commenting out" an option and can be useful. Removing + the # again is called "uncommenting". - Note that commenting out and option and leaving it at its default + Note that commenting out an option and leaving it at its default are two completely different things! Most options behave very - differently when unset. See the the "Effect if unset" explanation + differently when unset. See the "Effect if unset" explanation in each option's description for details. @@ -179,163 +188,223 @@ II. FORMAT OF THE CONFIGURATION FILE - - -Configuration and Log File Locations - - Privoxy can (and normally does) use a number of - other files for additional configuration, help and logging. - This section of the configuration file tells Privoxy - where to find those other files. - + + +Local Set-up Documentation - - The user running Privoxy, must have read - permission for all configuration files, and write permission to any files - that would be modified, such as log files and actions files. - + + If you intend to operate Privoxy for more users + than just yourself, it might be a good idea to let them know how to reach + you, what you block and why you do that, your policies, etc. + -confdir - +user-manual Specifies: - The directory where the other configuration files are located + + Location of the Privoxy User Manual. + Type of value: - Path name + A fully qualified URI Default value: - /etc/privoxy (Unix) or Privoxy installation dir (Windows) + Unset Effect if unset: - Mandatory + + http://www.privoxy.org/version/user-manual/ + will be used, where version is the Privoxy version. + Notes: + + The User Manual URI is the single best source of information on + Privoxy, and is used for help links from some + of the internal CGI pages. The manual itself is normally packaged with the + binary distributions, so you probably want to set this to a locally + installed copy. + + + Examples: + + + + The best all purpose solution is simply to put the full local + PATH to where the User Manual is + located: + + +   user-manual  /usr/share/doc/privoxy/user-manual + + + The User Manual is then available to anyone with access to + Privoxy, by following the built-in URL: + http://config.privoxy.org/user-manual/ + (or the shortcut: http://p.p/user-manual/). + + + If the documentation is not on the local system, it can be accessed + from a remote server, as: + + +   user-manual  http://example.com/privoxy/user-manual/ + + + - No trailing /, please + If set, this option should be the first option in the config + file, because it is used while the config file is being read + on start-up. + + ]]> + + - When development goes modular and multi-user, the blocker, filter, and - per-user config will be stored in subdirectories of confdir. - For now, the configuration directory structure is flat, except for - confdir/templates, where the HTML templates for CGI - output reside (e.g. Privoxy's 404 error page). + WARNING!!! - +
+ + If set, this option should be the first option in the config + file, because it is used while the config file is being read. + +
+ ]]> + +
-@@confdir .]]> +@@#user-manual http://www.privoxy.org/user-manual/]]>
-logdir +trust-info-url Specifies: - The directory where all logging takes place (i.e. where logfile and - jarfile are located) + A URL to be displayed in the error page that users will see if access to an untrusted page is denied. Type of value: - Path name + URL Default value: - /var/log/privoxy (Unix) or Privoxy installation dir (Windows) + Unset Effect if unset: - Mandatory + + No links are displayed on the "untrusted" error page. + Notes: - No trailing /, please + The value of this option only matters if the experimental trust mechanism has been + activated. (See trustfile below.) + + + If you use the trust mechanism, it is a good idea to write up some on-line + documentation about your trust policy and to specify the URL(s) here. + Use multiple times for multiple URLs. + + + The URL(s) should be added to the trustfile as well, so users don't end up + locked out from the information on why they were locked out in the first place! -@@logdir .]]> +@@#trust-info-url http://www.example.com/why_we_block.html]]> +@@#trust-info-url http://www.example.com/what_we_allow.html]]> - -actionsfile - - - - - +admin-address + Specifies: - The actions file(s) to use + An email address to reach the Privoxy administrator. Type of value: - File name, relative to confdir, without the .action suffix + Email address - Default values: + Default value: - - - standard # Internal purposes, no editing recommended - - - default # Main actions file - - - user # User customizations - - + Unset Effect if unset: - No actions are taken at all. Simple neutral proxying. + No email address is displayed on error pages and the CGI user interface. @@ -343,62 +412,48 @@ actionsfile Notes: - Multiple actionsfile lines are permitted, and are in fact recommended! - - - The default values include standard.action, which is used for internal - purposes and should be loaded, default.action, which is the - main actions file maintained by the developers, and - user.action, where you can make your personal additions. - - - Actions files are where all the per site and per URL configuration is done for - ad blocking, cookie management, privacy considerations, etc. - There is no point in using Privoxy without at - least one actions file. - + If both admin-address and proxy-info-url + are unset, the whole "Local Privoxy Support" box on all generated pages will + not be shown. +
- - -@@actionsfile standard # Internal purpose, recommended]]> -@@actionsfile default # Main actions file]]> -@@actionsfile user # User customizations]]> +@@#admin-address privoxy-admin@example.com]]> + -filterfile - +proxy-info-url + Specifies: - The filter file to use + A URL to documentation about the local Privoxy setup, + configuration or policies. Type of value: - File name, relative to confdir + URL Default value: - default.filter (Unix) or default.filter.txt (Windows) + Unset Effect if unset: - No textual content filtering takes place, i.e. all - +filter{name} - actions in the actions files are turned neutral. + No link to local documentation is displayed on error pages and the CGI user interface. @@ -406,336 +461,303 @@ actionsfile Notes: - The filter file contains content modification - rules that use regular expressions. These rules permit - powerful changes on the content of Web pages, e.g., you could disable your favorite - JavaScript annoyances, re-write the actual displayed text, or just have some - fun replacing Microsoft with MicroSuck wherever - it appears on a Web page. - - - The - +filter{name} - actions rely on the relevant filter (name) - to be defined in the filter file! - + If both admin-address and proxy-info-url + are unset, the whole "Local Privoxy Support" box on all generated pages will + not be shown. +
- A pre-defined filter file called default.filter that contains - a bunch of handy filters for common problems is included in the distribution. - See the section on the filter - action for a list. - + This URL shouldn't be blocked ;-) +
-@@filterfile default.filter]]> +@@#proxy-info-url http://www.example.com/proxy-service.html]]> + + + + -logfile + + +Configuration and Log File Locations + + + Privoxy can (and normally does) use a number of + other files for additional configuration, help and logging. + This section of the configuration file tells Privoxy + where to find those other files. + + + + The user running Privoxy, must have read + permission for all configuration files, and write permission to any files + that would be modified, such as log files and actions files. + + + + +confdir Specifies: - - The log file to use - + The directory where the other configuration files are located. Type of value: - File name, relative to logdir + Path name Default value: - logfile (Unix) or privoxy.log (Windows) + /etc/privoxy (Unix) or Privoxy installation dir (Windows) Effect if unset: - - No log file is used, all log messages go to the console (STDERR). - + Mandatory Notes: - The windows version will additionally log to the console. + No trailing /, please. + -@@logfile logfile]]> +@@confdir .]]> - -jarfile +templdir Specifies: - - The file to store intercepted cookies in - + An alternative directory where the templates are loaded from. Type of value: - File name, relative to logdir + Path name Default value: - jarfile (Unix) or privoxy.jar (Windows) + unset Effect if unset: - - Intercepted cookies are not stored at all. - + The templates are assumed to be located in confdir/template. Notes: - The jarfile may grow to ridiculous sizes over time. + Privoxy's original templates are usually + overwritten with each update. Use this option to relocate customized + templates that should be kept. As template variables might change + between updates, you shouldn't expect templates to work with + Privoxy releases other than the one + they were part of, though. -@@jarfile jarfile]]> +@@#templdir .]]> -trustfile +logdir + Specifies: - The trust file to use + The directory where all logging takes place + (i.e. where the logfile is located). Type of value: - File name, relative to confdir + Path name Default value: - Unset (commented out). When activated: trust (Unix) or trust.txt (Windows) + /var/log/privoxy (Unix) or Privoxy installation dir (Windows) Effect if unset: - - The whole trust mechanism is turned off. - + Mandatory Notes: - The trust mechanism is an experimental feature for building white-lists and should - be used with care. It is NOT recommended for the casual user. - - - If you specify a trust file, Privoxy will only allow - access to sites that are named in the trustfile. - You can also mark sites as trusted referrers (with +), with - the effect that access to untrusted sites will be granted, if a link from a - trusted referrer was used. - The link target will then be added to the trustfile. - Possible applications include limiting Internet access for children. - - - If you use + operator in the trust file, it may grow considerably over time. + No trailing /, please. -@@#trustfile trust]]> +@@logdir .]]> - - - - - - - -Local Set-up Documentation - - - If you intend to operate Privoxy for more users - than just yourself, it might be a good idea to let them know how to reach - you, what you block and why you do that, your policies, etc. - -user-manual + +actionsfile + + + + + Specifies: - Location of the Privoxy User Manual. + The actions file(s) to use Type of value: - A fully qualified URI + Complete file name, relative to confdir - Default value: + Default values: - Unset + + + match-all.action # Actions that are applied to all sites and maybe overruled later on. + + + default.action # Main actions file + + + user.action # User customizations + + Effect if unset: - http://www.privoxy.org/version/user-manual/ - will be used, where version is the Privoxy version. + No actions are taken at all. More or less neutral proxying. Notes: - - The User Manual URI is used for help links from some of the internal CGI pages. - The manual itself is normally packaged with the binary distributions, so you probably want - to set this to a locally installed copy. For multi-user setups, you could provide a copy on - a local webserver for all your users and use the corresponding URL here. - - Examples: + Multiple actionsfile lines are permitted, and are in fact recommended! - - Unix, in local filesystem: - - - user-manual  file:///usr/share/doc/privoxy-&p-version;/user-manual/ - - - Any platform, on local webserver (called local-webserver): - - - user-manual  http://local-webserver/privoxy-user-manual/ - - - - - If set, this option should be the first option in the config - file, because it is used while the config file is being read. + + The default values are default.action, which is the + main actions file maintained by the developers, and + user.action, where you can make your personal additions. + + + Actions files contain all the per site and per URL configuration for + ad blocking, cookie management, privacy considerations, etc. + There is no point in using Privoxy without at + least one actions file. - - ]]> - - - WARNING!!! + Note that since Privoxy 3.0.7, the complete filename, including the .action + extension has to be specified. The syntax change was necessary to be consistent + with the other file options and to allow previously forbidden characters. -
- - If set, this option should be the first option in the config - file, because it is used while the config file is being read. - -
- ]]> - -
+
-@@#user-manual http://www.privoxy.org/user-manual/]]> + + +@@actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.]]> +@@actionsfile default.action # Main actions file]]> + +@@actionsfile user.action # User customizations]]>
- -trust-info-url - +filterfile + Specifies: - A URL to be displayed in the error page that users will see if access to an untrusted page is denied. + The filter file(s) to use Type of value: - URL + File name, relative to confdir Default value: - Two example URL are provided + default.filter (Unix) or default.filter.txt (Windows) Effect if unset: - No links are displayed on the "untrusted" error page. + No textual content filtering takes place, i.e. all + +filter{name} + actions in the actions files are turned neutral. @@ -743,105 +765,140 @@ actionsfile Notes: - The value of this option only matters if the experimental trust mechanism has been - activated. (See trustfile above.) + Multiple filterfile lines are permitted. - If you use the trust mechanism, it is a good idea to write up some on-line - documentation about your trust policy and to specify the URL(s) here. - Use multiple times for multiple URLs. + The filter files contain content modification + rules that use regular expressions. These rules permit + powerful changes on the content of Web pages, and optionally the headers + as well, e.g., you could try to disable your favorite JavaScript annoyances, + re-write the actual displayed text, or just have some fun + playing buzzword bingo with web pages. - The URL(s) should be added to the trustfile as well, so users don't end up - locked out from the information on why they were locked out in the first place! + The + +filter{name} + actions rely on the relevant filter (name) + to be defined in a filter file! + + + A pre-defined filter file called default.filter that contains + a number of useful filters for common problems is included in the distribution. + See the section on the filter + action for a list. + + + It is recommended to place any locally adapted filters into a separate + file, such as user.filter. -@@trust-info-url http://www.example.com/why_we_block.html]]> -@@trust-info-url http://www.example.com/what_we_allow.html]]> +@@filterfile default.filter]]> +@@filterfile user.filter # User customizations]]> -admin-address +logfile Specifies: - An email address to reach the proxy administrator. + The log file to use Type of value: - Email address + File name, relative to logdir Default value: - Unset + Unset (commented out). When activated: logfile (Unix) or privoxy.log (Windows). Effect if unset: - No email address is displayed on error pages and the CGI user interface. + No logfile is written. Notes: - - If both admin-address and proxy-info-url - are unset, the whole "Local Privoxy Support" box on all generated pages will - not be shown. - + + The logfile is where all logging and error messages are written. The level + of detail and number of messages are set with the debug + option (see below). The logfile can be useful for tracking down a problem with + Privoxy (e.g., it's not blocking an ad you + think it should block) and it can help you to monitor what your browser + is doing. + + + Depending on the debug options below, the logfile may be a privacy risk + if third parties can get access to it. As most users will never look + at it, Privoxy 3.0.7 and later only log fatal + errors by default. + + + For most troubleshooting purposes, you will have to change that, + please refer to the debugging section for details. + + + Your logfile will grow indefinitely, and you will probably want to + periodically remove it. On Unix systems, you can do this with a cron job + (see man cron). For Red Hat based Linux distributions, a + logrotate script has been included. + + + Any log files must be writable by whatever user Privoxy + is being run as (on Unix, default user id is privoxy). + -@@#admin-address privoxy-admin@example.com]]> +@@logfile logfile]]> -proxy-info-url - +trustfile Specifies: - A URL to documentation about the local Privoxy setup, - configuration or policies. + The name of the trust file to use Type of value: - URL + File name, relative to confdir Default value: - Unset + Unset (commented out). When activated: trust (Unix) or trust.txt (Windows) Effect if unset: - No link to local documentation is displayed on error pages and the CGI user interface. + The entire trust mechanism is disabled. @@ -849,21 +906,53 @@ actionsfile Notes: - If both admin-address and proxy-info-url - are unset, the whole "Local Privoxy Support" box on all generated pages will - not be shown. - + The trust mechanism is an experimental feature for building white-lists and should + be used with care. It is NOT recommended for the casual user. +
- This URL shouldn't be blocked ;-) - + If you specify a trust file, Privoxy will only allow + access to sites that are specified in the trustfile. Sites can be listed + in one of two ways: + + + Prepending a ~ character limits access to this site + only (and any sub-paths within this site), e.g. + ~www.example.com allows access to + ~www.example.com/features/news.html, etc. + + + Or, you can designate sites as trusted referrers, by + prepending the name with a + character. The effect is that + access to untrusted sites will be granted -- but only if a link from this + trusted referrer was used to get there. The link target will then be added + to the trustfile so that future, direct accesses will be + granted. Sites added via this mechanism do not become trusted referrers + themselves (i.e. they are added with a ~ designation). + There is a limit of 512 such entries, after which new entries will not be + made. + + + If you use the + operator in the trust file, it may grow + considerably over time. + + + It is recommended that Privoxy be compiled with + the --disable-force, --disable-toggle and + --disable-editor options, if this feature is to be + used. + + + Possible applications include limiting Internet access for children. + + -@@#proxy-info-url http://www.example.com/proxy-service.html]]> +@@#trustfile trust]]> - + @@ -884,8 +973,7 @@ actionsfile Specifies: - Key values that determine what information gets logged to the - logfile. + Key values that determine what information gets logged. @@ -898,14 +986,14 @@ actionsfile Default value: - 12289 (i.e.: URLs plus informational and warning messages) + 0 (i.e.: only fatal errors (that cause Privoxy to exit) are logged) Effect if unset: - Nothing gets logged. + Default value is used (see above). @@ -917,19 +1005,21 @@ actionsfile - debug 1 # show each GET/POST/CONNECT request - debug 2 # show each connection status - debug 4 # show I/O status - debug 8 # show header parsing - debug 16 # log all data into the logfile - debug 32 # debug force feature - debug 64 # debug regular expression filter - debug 128 # debug fast redirects - debug 256 # debug GIF de-animation - debug 512 # Common Log Format - debug 1024 # debug kill pop-ups - debug 4096 # Startup banner and warnings. - debug 8192 # Non-fatal errors + debug 1 # Log the destination for each request &my-app; let through. See also debug 1024. + debug 2 # show each connection status + debug 4 # show I/O status + debug 8 # show header parsing + debug 16 # log all data written to the network + debug 32 # debug force feature + debug 64 # debug regular expression filters + debug 128 # debug redirects + debug 256 # debug GIF de-animation + debug 512 # Common Log Format + debug 1024 # Log the destination for requests &my-app; didn't let through, and the reason why. + debug 2048 # CGI user interface + debug 4096 # Startup banner and warnings. + debug 8192 # Non-fatal errors + debug 32768 # log all data read from the network @@ -938,27 +1028,43 @@ actionsfile A debug level of 1 is informative because it will show you each request - as it happens. 1, 4096 and 8192 are highly recommended - so that you will notice when things go wrong. The other levels are probably - only of interest if you are hunting down a specific problem. They can produce - a hell of an output (especially 16). + as it happens. 1, 1024, 4096 and 8192 are recommended + so that you will notice when things go wrong. The other levels are + probably only of interest if you are hunting down a specific problem. + They can produce a hell of an output (especially 16). - The reporting of fatal errors (i.e. ones which crash - Privoxy) is always on and cannot be disabled. + &my-app; used to ship with the debug levels recommended above enabled by + default, but due to privacy concerns 3.0.7 and later are configured to + only log fatal errors. + + + If you are used to the more verbose settings, simply enable the debug lines + below again. - If you want to use CLF (Common Log Format), you should set debug + If you want to use pure CLF (Common Log Format), you should set debug 512 ONLY and not enable anything else. + + Privoxy has a hard-coded limit for the + length of log messages. If it's reached, messages are logged truncated + and marked with ... [too long, truncated]. + + + Please don't file any support requests without trying to reproduce + the problem with increased debug level first. Once you read the log + messages, you may even be able to solve the problem on your own. + -@@debug 1 # show each GET/POST/CONNECT request]]> -@@debug 4096 # Startup banner and warnings]]> -@@debug 8192 # Errors - *we highly recommended enabling this]]> +@@#debug 1 # Log the destination for each request &my-app; let through.]]> +@@#debug 1024 # Log the destination for requests &my-app; didn't let through, and the reason why.]]> +@@#debug 4096 # Startup banner and warnings]]> +@@#debug 8192 # Non-fatal errors]]> @@ -970,7 +1076,7 @@ actionsfile Specifies: - Whether to run only one server thread + Whether to run only one server thread. @@ -999,8 +1105,8 @@ actionsfile Notes: - This option is only there for debug purposes and you should never - need to use it. It will drastically reduce performance. + This option is only there for debugging purposes. + It will drastically reduce performance. @@ -1009,6 +1115,62 @@ actionsfile @@#single-threaded]]> + +hostname + + + + Specifies: + + + The hostname shown on the CGI pages. + + + + + Type of value: + + Text + + + + Default value: + + Unset + + + + Effect if unset: + + + The hostname provided by the operating system is used. + + + + + Notes: + + + On some misconfigured systems resolving the hostname fails or + takes too much time and slows Privoxy down. Setting a fixed hostname + works around the problem. + + + In other circumstances it might be desirable to show a hostname + other than the one returned by the operating system. For example + if the system has several different hostnames and you don't want + to use the first one. + + + Note that Privoxy does not validate the specified hostname value. + + + + + +@@#hostname hostname.example.org]]> + + @@ -1032,7 +1194,7 @@ actionsfile Specifies: - The IP address and TCP port on which Privoxy will + The address and TCP port on which Privoxy will listen for client requests. @@ -1041,6 +1203,7 @@ actionsfile Type of value: [IP-Address]:Port + [Hostname]:Port @@ -1054,9 +1217,9 @@ actionsfile Effect if unset: - Bind to 127.0.0.1 (localhost), port 8118. This is suitable and recommended for - home users who run Privoxy on the same machine as - their browser. + Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable and + recommended for home users who run Privoxy on + the same machine as their browser. @@ -1072,33 +1235,92 @@ actionsfile will need to override the default. - If you leave out the IP address, Privoxy will - bind to all interfaces (addresses) on your machine and may become reachable - from the Internet. In that case, consider using access control lists (ACL's, see below), and/or - a firewall. + You can use this statement multiple times to make + Privoxy listen on more ports or more + IP addresses. Suitable if your operating system does not + support sharing IPv6 and IPv4 protocols + on the same socket. - If you open Privoxy to untrusted users, you will - also want to turn off the enable-edit-actions and - enable-remote-toggle - options! + If a hostname is used instead of an IP address, Privoxy + will try to resolve it to an IP address and if there are multiple, use the first + one returned. - - - - Example: - - Suppose you are running Privoxy on - a machine which has the address 192.168.0.1 on your local private network + If the address for the hostname isn't already known on the system + (for example because it's in /etc/hostname), this may result in DNS + traffic. + + + If the specified address isn't available on the system, or if the + hostname can't be resolved, Privoxy + will fail to start. + + + IPv6 addresses containing colons have to be quoted by brackets. + They can only be used if Privoxy has + been compiled with IPv6 support. If you aren't sure if your version + supports it, have a look at + http://config.privoxy.org/show-status. + + + Some operating systems will prefer IPv6 to IPv4 addresses even if the + system has no IPv6 connectivity which is usually not expected by the user. + Some even rely on DNS to resolve localhost which mean the "localhost" address + used may not actually be local. + + + It is therefore recommended to explicitly configure the intended IP address + instead of relying on the operating system, unless there's a strong reason not to. + + + If you leave out the address, Privoxy will bind to all + IPv4 interfaces (addresses) on your machine and may become reachable from the + Internet and/or the local network. Be aware that some GNU/Linux distributions + modify that behaviour without updating the documentation. Check for non-standard + patches if your Privoxyversion behaves differently. + + + If you configure Privoxyto be reachable from the + network, consider using access control lists + (ACL's, see below), and/or a firewall. + + + If you open Privoxy to untrusted users, you will + also want to make sure that the following actions are disabled: enable-edit-actions and + enable-remote-toggle + + + With the exception noted above, listening on multiple addresses is currently + not supported by Privoxy directly. + It can be done on most operating systems by letting a packet filter + redirect request for certain addresses to Privoxy, though. + + + + + Example: + + + Suppose you are running Privoxy on + a machine which has the address 192.168.0.1 on your local private network (192.168.0.0) and has another outside connection with a different address. You want it to serve requests from inside only: listen-address 192.168.0.1:8118 + + + + Suppose you are running Privoxy on an + IPv6-capable machine and you want it to listen on the IPv6 address + of the loopback device: + + + + listen-address [::1]:8118 @@ -1146,12 +1368,17 @@ actionsfile If set to 0, Privoxy will start in - toggled off mode, i.e. behave like a normal, content-neutral - proxy where all ad blocking, filtering, etc are disabled. See - enable-remote-toggle below. This is not really useful + toggled off mode, i.e. mostly behave like a normal, + content-neutral proxy with both ad blocking and content filtering + disabled. See enable-remote-toggle below. + The windows version will only display the toggle icon in the system tray @@ -1186,7 +1413,7 @@ actionsfile Default value: - 1 + 0 @@ -1201,18 +1428,25 @@ actionsfile Notes: - When toggled off, Privoxy acts like a normal, - content-neutral proxy, i.e. it acts as if none of the actions applied to - any URL. + When toggled off, Privoxy mostly acts like a normal, + content-neutral proxy, i.e. doesn't block ads or filter content. - For the time being, access to the toggle feature can not be + Access to the toggle feature can not be controlled separately by ACLs or HTTP authentication, so that everybody who can access Privoxy (see ACLs and listen-address above) can toggle it for all users. So this option is not recommended for multi-user environments with untrusted users. + + Note that malicious client side code (e.g Java) is also + capable of using this option. + + + As a lot of Privoxy users don't read + documentation, this feature is disabled by default. + Note that you must have compiled Privoxy with support for this feature, otherwise this option has no effect. @@ -1221,7 +1455,65 @@ actionsfile -@@enable-remote-toggle 1]]> +@@enable-remote-toggle 0]]> + + + + +enable-remote-http-toggle + + + Specifies: + + + Whether or not Privoxy recognizes special HTTP headers to change its behaviour. + + + + + Type of value: + + 0 or 1 + + + + Default value: + + 0 + + + + Effect if unset: + + + Privoxy ignores special HTTP headers. + + + + + Notes: + + + When toggled on, the client can change Privoxy's + behaviour by setting special HTTP headers. Currently the only supported + special header is X-Filter: No, to disable filtering for + the ongoing request, even if it is enabled in one of the action files. + + + This feature is disabled by default. If you are using + Privoxy in a environment with trusted clients, + you may enable this feature at your discretion. Note that malicious client + side code (e.g Java) is also capable of using this feature. + + + This option will be removed in future releases as it has been obsoleted + by the more general header taggers. + + + + + +@@enable-remote-http-toggle 0]]> @@ -1246,7 +1538,7 @@ actionsfile Default value: - 1 + 0 @@ -1261,12 +1553,22 @@ actionsfile Notes: - For the time being, access to the editor can not be + Access to the editor can not be controlled separately by ACLs or HTTP authentication, so that everybody who can access Privoxy (see ACLs and listen-address above) can - modify its configuration for all users. So this option is not - recommended for multi-user environments with untrusted users. + modify its configuration for all users. + + + This option is not recommended for environments + with untrusted users and as a lot of Privoxy + users don't read documentation, this feature is disabled by default. + + + Note that malicious client side code (e.g Java) is also + capable of using the actions editor and you shouldn't enable + this options unless you understand the consequences and are + sure your browser is configured correctly. Note that you must have compiled Privoxy with @@ -1276,9 +1578,84 @@ actionsfile -@@enable-edit-actions 1]]> +@@enable-edit-actions 0]]> + + + +enforce-blocks + + + Specifies: + + + Whether the user is allowed to ignore blocks and can go there anyway. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + Blocks are not enforced. + + + + + Notes: + + + Privoxy is mainly used to block and filter + requests as a service to the user, for example to block ads and other + junk that clogs the pipes. Privoxy's configuration + isn't perfect and sometimes innocent pages are blocked. In this situation it + makes sense to allow the user to enforce the request and have + Privoxy ignore the block. + + + In the default configuration Privoxy's + Blocked page contains a go there anyway + link to adds a special string (the force prefix) to the request URL. + If that link is used, Privoxy will + detect the force prefix, remove it again and let the request pass. + + + Of course Privoxy can also be used to enforce + a network policy. In that case the user obviously should not be able to + bypass any blocks, and that's what the enforce-blocks + option is for. If it's enabled, Privoxy hides + the go there anyway link. If the user adds the force + prefix by hand, it will not be accepted and the circumvention attempt + is logged. + + + + + Examples: + + + enforce-blocks 1 + + + + +@@enforce-blocks 0]]> + ACLs: permit-access and deny-access @@ -1298,23 +1675,41 @@ ACLs: permit-access and deny-access Type of value: - src_addr[/src_masklen] - [dst_addr[/dst_masklen]] + src_addr[:port][/src_masklen] + [dst_addr[:port][/dst_masklen]] Where src_addr and - dst_addr are IP addresses in dotted decimal notation or valid - DNS names, and src_masklen and + dst_addr are IPv4 addresses in dotted decimal notation or valid + DNS names, port is a port + number, and src_masklen and dst_masklen are subnet masks in CIDR notation, i.e. integer values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole destination part are optional. + + If your system implements + RFC 3493, then + src_addr and dst_addr can be IPv6 addresses delimeted by + brackets, port can be a number + or a service name, and + src_masklen and + dst_masklen can be a number + from 0 to 128. + Default value: Unset + + If no port is specified, + any port will match. If no src_masklen or + src_masklen is given, the complete IP + address has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6). + @@ -1338,14 +1733,14 @@ ACLs: permit-access and deny-access option. - Please see the warnings in the FAQ that this proxy is not intended to be a substitute - for a firewall or to encourage anyone to defer addressing basic security - weaknesses. + Please see the warnings in the FAQ that Privoxy + is not intended to be a substitute for a firewall or to encourage anyone + to defer addressing basic security weaknesses. Multiple ACL lines are OK. - If any ACLs are specified, then the Privoxy - talks only to IP addresses that match at least one permit-access line + If any ACLs are specified, Privoxy only talks + to IP addresses that match at least one permit-access line and don't match any subsequent deny-access line. In other words, the last match wins, with the default being deny-access. @@ -1363,9 +1758,17 @@ ACLs: permit-access and deny-access like *.org or partial domain names. If a DNS name resolves to multiple IP addresses, only the first one is used. + + Some systems allow IPv4 clients to connect to IPv6 server sockets. + Then the client's IPv4 address will be translated by the system into + IPv6 address space with special prefix ::ffff:0:0/96 (so called IPv4 + mapped IPv6 address). Privoxy can handle it + and maps such ACL addresses automatically. + Denying access to particular sites by ACL may have undesired side effects - if the site in question is hosted on a machine which also hosts other sites. + if the site in question is hosted on a machine which also hosts other sites + (most sites are). @@ -1385,7 +1788,7 @@ ACLs: permit-access and deny-access Allow any host on the same class C subnet as www.privoxy.org access to - nothing but www.example.com: + nothing but www.example.com (or other domains hosted on the same system): @@ -1394,7 +1797,8 @@ ACLs: permit-access and deny-access Allow access from any host on the 26-bit subnet 192.168.45.64 to anywhere, - with the exception that 192.168.45.73 may not access www.dirty-stuff.example.com: + with the exception that 192.168.45.73 may not access the IP address behind + www.dirty-stuff.example.com: @@ -1402,6 +1806,24 @@ ACLs: permit-access and deny-access deny-access 192.168.45.73 www.dirty-stuff.example.com + + Allow access from the IPv4 network 192.0.2.0/24 even if listening on + an IPv6 wild card address (not supported on all platforms): + + + + permit-access 192.0.2.0/24 + + + + This is equivalent to the following line even if listening on an + IPv4 address (not supported on all platforms): + + + + permit-access [::ffff:192.0.2.0]/120 + + @@ -1479,13 +1901,20 @@ ACLs: permit-access and deny-access This feature allows routing of HTTP requests through a chain of multiple proxies. - It can be used to better protect privacy and confidentiality when - accessing specific domains by routing requests to those domains - through an anonymous public proxy (see e.g. http://www.multiproxy.org/anon_list.htm) - Or to use a caching proxy to speed up browsing. Or chaining to a parent - proxy may be necessary because the machine that Privoxy - runs on has no direct Internet access. + + + Forwarding can be used to chain Privoxy with a caching proxy to speed + up browsing. Using a parent proxy may also be necessary if the machine + that Privoxy runs on has no direct Internet access. + + + Note that parent proxies can severely decrease your privacy level. + For example a parent proxy could add your IP address to the request + headers and if it's a caching proxy it may add the Etag + header to revalidation requests again, even though you configured Privoxy + to remove it. It may also ignore Privoxy's header time randomization and use the + original values which could be used by the server as cookie replacement + to track your steps between visits. @@ -1507,17 +1936,17 @@ ACLs: permit-access and deny-access Type of value: - target_domain[:port] - http_parent[/port] + target_pattern + http_parent[:port] - Where target_domain is a domain name pattern (see the - chapter on domain matching in the default.action file), - http_parent is the address of the parent HTTP proxy - as an IP addresses in dotted decimal notation or as a valid DNS name (or . to denote - no forwarding, and the optional - port parameters are TCP ports, i.e. integer - values from 1 to 64535 + where target_pattern is a URL pattern + that specifies to which requests (i.e. URLs) this forward rule shall apply. Use / to + denote all URLs. + http_parent[:port] + is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded, + optionally followed by its listening port (default: 8000). + Use a single dot (.) to denote no forwarding. @@ -1542,6 +1971,16 @@ ACLs: permit-access and deny-access If http_parent is ., then requests are not forwarded to another HTTP proxy but are made directly to the web servers. + + http_parent can be a + numerical IPv6 address (if + RFC 3493 is + implemented). To prevent clashes with the port delimiter, the whole IP + address has to be put into brackets. On the other hand a target_pattern containing an IPv6 address + has to be put into angle brackets (normal brackets are reserved for + regular expressions already). + Multiple lines are OK, they are checked in sequence, and the last match wins. @@ -1551,11 +1990,11 @@ ACLs: permit-access and deny-access Examples: - Everything goes to an example anonymizing proxy, except SSL on port 443 (which it doesn't handle): + Everything goes to an example parent proxy, except SSL on port 443 (which it doesn't handle): - forward .* anon-proxy.example.org:8080 + forward / parent-proxy.example.org:8080 forward :443 . @@ -1565,10 +2004,28 @@ ACLs: permit-access and deny-access - forward .*. caching-proxy.example-isp.net:8000 - forward .example-isp.net . + forward / caching-proxy.isp.example.net:8000 + forward .isp.example.net . + + Parent proxy specified by an IPv6 address: + + + + forward / [2001:DB8::1]:8000 + + + + Suppose your parent proxy doesn't support IPv6: + + + + forward / parent-proxy.example.org:8000 + forward ipv6-server.example.org . + forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> . + + @@ -1577,7 +2034,7 @@ ACLs: permit-access and deny-access -forward-socks4 and forward-socks4a +forward-socks4, forward-socks4a and forward-socks5 @@ -1586,7 +2043,7 @@ forward-socks4 and forward-socks4a Specifies: - Through which SOCKS proxy (and to which parent HTTP proxy) specific requests should be routed. + Through which SOCKS proxy (and optionally to which parent HTTP proxy) specific requests should be routed. @@ -1594,17 +2051,21 @@ forward-socks4 and forward-socks4a Type of value: - target_domain[:port] - socks_proxy[/port] - http_parent[/port] + target_pattern + socks_proxy[:port] + http_parent[:port] - Where target_domain is a domain name pattern (see the - chapter on domain matching in the default.action file), - http_parent and socks_proxy - are IP addresses in dotted decimal notation or valid DNS names (http_parent + where target_pattern is a + URL pattern that specifies to which + requests (i.e. URLs) this forward rule shall apply. Use / to + denote all URLs. http_parent + and socks_proxy + are IP addresses in dotted decimal notation or valid DNS names + (http_parent may be . to denote no HTTP forwarding), and the optional - port parameters are TCP ports, i.e. integer values from 1 to 64535 + port parameters are TCP ports, + i.e. integer values from 1 to 65535 @@ -1633,6 +2094,20 @@ forward-socks4 and forward-socks4a is that in the SOCKS 4A protocol, the DNS resolution of the target hostname happens on the SOCKS server, while in SOCKS 4 it happens locally. + + With forward-socks5 the DNS resolution will happen on the remote server as well. + + + socks_proxy and + http_parent can be a + numerical IPv6 address (if + RFC 3493 is + implemented). To prevent clashes with the port delimiter, the whole IP + address has to be put into brackets. On the other hand a target_pattern containing an IPv6 address + has to be put into angle brackets (normal brackets are reserved for + regular expressions already). + If http_parent is ., then requests are not forwarded to another HTTP proxy but are made (HTTP-wise) directly to the web servers, albeit through @@ -1651,7 +2126,7 @@ forward-socks4 and forward-socks4a - forward-socks4a .*. socks-gw.example.com:1080 www-cache.example-isp.net:8080 + forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080 forward .example.com . @@ -1660,9 +2135,50 @@ forward-socks4 and forward-socks4a - forward-socks4 .*. socks-gw.example.com:1080 . + forward-socks4 / socks-gw.example.com:1080 . + + + + + To chain Privoxy and Tor, both running on the same system, you would use + something like: + + + + forward-socks5 / 127.0.0.1:9050 . + + + + + The public Tor network can't be used to + reach your local network, if you need to access local servers you + therefore might want to make some exceptions: + + + + forward 192.168.*.*/ . + forward 10.*.*.*/ . + forward 127.*.*.*/ . + + + + Unencrypted connections to systems in these address ranges will + be as (un)secure as the local network is, but the alternative is that you + can't reach the local network through Privoxy + at all. Of course this may actually be desired and there is no reason + to make these exceptions if you aren't sure you need them. + + + If you also want to be able to reach servers in your local network by + using their names, you will need additional exceptions that look like + this: + + + + forward localhost/ . + @@ -1680,8 +2196,8 @@ forward-socks4 and forward-socks4a - Assume that host-a has a PPP connection to isp-a.net. And host-b has a PPP connection to - isp-b.net. Both run Privoxy. Their forwarding + Assume that host-a has a PPP connection to isp-a.example.net. And host-b has a PPP connection to + isp-b.example.org. Both run Privoxy. Their forwarding configuration can look like this: @@ -1691,8 +2207,8 @@ forward-socks4 and forward-socks4a - forward .*. . - forward .isp-b.net host-b:8118 + forward / . + forward .isp-b.example.net host-b:8118 @@ -1702,8 +2218,8 @@ forward-socks4 and forward-socks4a - forward .*. . - forward .isp-a.net host-a:8118 + forward / . + forward .isp-a.example.org host-a:8118 @@ -1715,7 +2231,7 @@ forward-socks4 and forward-socks4a If you intend to chain Privoxy and - squid locally, then chain as + squid locally, then chaining as browser -> squid -> privoxy is the recommended way. @@ -1744,9 +2260,872 @@ forward-socks4 and forward-socks4a Squid normally uses port 3128. If unsure consult http_port in squid.conf. + + You could just as well decide to only forward requests you suspect + of leading to Windows executables through a virus-scanning parent proxy, + say, on antivir.example.com, port 8010: + + + + + forward / . + forward /.*\.(exe|com|dll|zip)$ antivir.example.com:8010 + + ]]> +forwarded-connect-retries + + + Specifies: + + + How often Privoxy retries if a forwarded connection request fails. + + + + + Type of value: + + + Number of retries. + + + + + Default value: + + 0 + + + + Effect if unset: + + + Connections forwarded through other proxies are treated like direct connections and no retry attempts are made. + + + + + Notes: + + + forwarded-connect-retries is mainly interesting + for socks4a connections, where Privoxy can't detect why the connections failed. + The connection might have failed because of a DNS timeout in which case a retry makes sense, + but it might also have failed because the server doesn't exist or isn't reachable. In this + case the retry will just delay the appearance of Privoxy's error message. + + + Note that in the context of this option, forwarded connections includes all connections + that Privoxy forwards through other proxies. This option is not limited to the HTTP CONNECT method. + + + Only use this option, if you are getting lots of forwarding-related error messages + that go away when you try again manually. Start with a small value and check Privoxy's + logfile from time to time, to see how many retries are usually needed. + + + + + Examples: + + + forwarded-connect-retries 1 + + + + +@@forwarded-connect-retries 0]]> + + + + + +Miscellaneous + +accept-intercepted-requests + + + Specifies: + + + Whether intercepted requests should be treated as valid. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + Only proxy requests are accepted, intercepted requests are treated as invalid. + + + + + Notes: + + + If you don't trust your clients and want to force them + to use Privoxy, enable this + option and configure your packet filter to redirect outgoing + HTTP connections into Privoxy. + + + Make sure that Privoxy's own requests + aren't redirected as well. Additionally take care that + Privoxy can't intentionally connect + to itself, otherwise you could run into redirection loops if + Privoxy's listening port is reachable + by the outside or an attacker has access to the pages you visit. + + + + + Examples: + + + accept-intercepted-requests 1 + + + + +@@accept-intercepted-requests 0]]> + + +allow-cgi-request-crunching + + + Specifies: + + + Whether requests to Privoxy's CGI pages can be blocked or redirected. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + Privoxy ignores block and redirect actions for its CGI pages. + + + + + Notes: + + + By default Privoxy ignores block or redirect actions + for its CGI pages. Intercepting these requests can be useful in multi-user + setups to implement fine-grained access control, but it can also render the complete + web interface useless and make debugging problems painful if done without care. + + + Don't enable this option unless you're sure that you really need it. + + + + + Examples: + + + allow-cgi-request-crunching 1 + + + + +@@allow-cgi-request-crunching 0]]> + + +split-large-forms + + + Specifies: + + + Whether the CGI interface should stay compatible with broken HTTP clients. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + The CGI form generate long GET URLs. + + + + + Notes: + + + Privoxy's CGI forms can lead to + rather long URLs. This isn't a problem as far as the HTTP + standard is concerned, but it can confuse clients with arbitrary + URL length limitations. + + + Enabling split-large-forms causes Privoxy + to divide big forms into smaller ones to keep the URL length down. + It makes editing a lot less convenient and you can no longer + submit all changes at once, but at least it works around this + browser bug. + + + If you don't notice any editing problems, there is no reason + to enable this option, but if one of the submit buttons appears + to be broken, you should give it a try. + + + + + Examples: + + + split-large-forms 1 + + + + +@@split-large-forms 0]]> + + +keep-alive-timeout + + + Specifies: + + + Number of seconds after which an open connection will no longer be reused. + + + + + Type of value: + + + Time in seconds. + + + + + Default value: + + None + + + + Effect if unset: + + + Connections are not kept alive. + + + + + Notes: + + + This option allows clients to keep the connection to &my-app; + alive. If the server supports it, &my-app; will keep + the connection to the server alive as well. Under certain + circumstances this may result in speed-ups. + + + By default, &my-app; will close the connection to the server if + the client connection gets closed, or if the specified timeout + has been reached without a new request coming in. This behaviour + can be changed with the connection-sharing option. + + + This option has no effect if Privoxy + has been compiled without keep-alive support. + + + Note that a timeout of five seconds as used in the default + configuration file significantly decreases the number of + connections that will be reused. The value is used because + some browsers limit the number of connections they open to + a single host and apply the same limit to proxies. This can + result in a single website grabbing all the + connections the browser allows, which means connections to + other websites can't be opened until the connections currently + in use time out. + + + Several users have reported this as a Privoxy bug, so the + default value has been reduced. Consider increasing it to + 300 seconds or even more if you think your browser can handle + it. If your browser appears to be hanging it can't. + + + + + Examples: + + + keep-alive-timeout 300 + + + + +@@keep-alive-timeout 5]]> + + + +default-server-timeout + + + Specifies: + + + Assumed server-side keep-alive timeout if not specified by the server. + + + + + Type of value: + + + Time in seconds. + + + + + Default value: + + None + + + + Effect if unset: + + + Connections for which the server didn't specify the keep-alive + timeout are not reused. + + + + + Notes: + + + Enabling this option significantly increases the number of connections + that are reused, provided the keep-alive-timeout option + is also enabled. + + + While it also increases the number of connections problems + when &my-app; tries to reuse a connection that already has + been closed on the server side, or is closed while &my-app; + is trying to reuse it, this should only be a problem if it + happens for the first request sent by the client. If it happens + for requests on reused client connections, &my-app; will simply + close the connection and the client is supposed to retry the + request without bothering the user. + + + Enabling this option is therefore only recommended if the + connection-sharing option + is disabled. + + + It is an error to specify a value larger than the keep-alive-timeout value. + + + This option has no effect if Privoxy + has been compiled without keep-alive support. + + + + + Examples: + + + default-server-timeout 60 + + + + +@@#default-server-timeout 60]]> + + + +connection-sharing + + + Specifies: + + + Whether or not outgoing connections that have been kept alive + should be shared between different incoming connections. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + None + + + + Effect if unset: + + + Connections are not shared. + + + + + Notes: + + + This option has no effect if Privoxy + has been compiled without keep-alive support, or if it's disabled. + + + + + Notes: + + + Note that reusing connections doesn't necessary cause speedups. + There are also a few privacy implications you should be aware of. + + + If this option is effective, outgoing connections are shared between + clients (if there are more than one) and closing the browser that initiated + the outgoing connection does no longer affect the connection between &my-app; + and the server unless the client's request hasn't been completed yet. + + + If the outgoing connection is idle, it will not be closed until either + Privoxy's or the server's timeout is reached. + While it's open, the server knows that the system running &my-app; is still + there. + + + If there are more than one client (maybe even belonging to multiple users), + they will be able to reuse each others connections. This is potentially + dangerous in case of authentication schemes like NTLM where only the + connection is authenticated, instead of requiring authentication for + each request. + + + If there is only a single client, and if said client can keep connections + alive on its own, enabling this option has next to no effect. If the client + doesn't support connection keep-alive, enabling this option may make sense + as it allows &my-app; to keep outgoing connections alive even if the client + itself doesn't support it. + + + You should also be aware that enabling this option increases the likelihood + of getting the "No server or forwarder data" error message, especially if you + are using a slow connection to the Internet. + + + This option should only be used by experienced users who + understand the risks and can weight them against the benefits. + + + + + Examples: + + + connection-sharing 1 + + + + +@@#connection-sharing 1]]> + + + +socket-timeout + + + Specifies: + + + Number of seconds after which a socket times out if + no data is received. + + + + + Type of value: + + + Time in seconds. + + + + + Default value: + + None + + + + Effect if unset: + + + A default value of 300 seconds is used. + + + + + Notes: + + + The default is quite high and you probably want to reduce it. + If you aren't using an occasionally slow proxy like Tor, reducing + it to a few seconds should be fine. + + + + + Examples: + + + socket-timeout 300 + + + + +@@socket-timeout 300]]> + + + +max-client-connections + + + Specifies: + + + Maximum number of client connections that will be served. + + + + + Type of value: + + + Positive number. + + + + + Default value: + + None + + + + Effect if unset: + + + Connections are served until a resource limit is reached. + + + + + Notes: + + + &my-app; creates one thread (or process) for every incoming client + connection that isn't rejected based on the access control settings. + + + If the system is powerful enough, &my-app; can theoretically deal with + several hundred (or thousand) connections at the same time, but some + operating systems enforce resource limits by shutting down offending + processes and their default limits may be below the ones &my-app; would + require under heavy load. + + + Configuring &my-app; to enforce a connection limit below the thread + or process limit used by the operating system makes sure this doesn't + happen. Simply increasing the operating system's limit would work too, + but if &my-app; isn't the only application running on the system, + you may actually want to limit the resources used by &my-app;. + + + If &my-app; is only used by a single trusted user, limiting the + number of client connections is probably unnecessary. If there + are multiple possibly untrusted users you probably still want to + additionally use a packet filter to limit the maximal number of + incoming connections per client. Otherwise a malicious user could + intentionally create a high number of connections to prevent other + users from using &my-app;. + + + Obviously using this option only makes sense if you choose a limit + below the one enforced by the operating system. + + + + + Examples: + + + max-client-connections 256 + + + + +@@#max-client-connections 256]]> + + + +handle-as-empty-doc-returns-ok + + + Specifies: + + + The status code Privoxy returns for pages blocked with + + +handle-as-empty-document. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + Privoxy returns a status 403(forbidden) for all blocked pages. + + + + + Effect if set: + + + Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document + and a status 403(Forbidden) for all other blocked pages. + + + + + Notes: + + + This is a work-around for Firefox bug 492459: + + Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy. + + (https://bugzilla.mozilla.org/show_bug.cgi?id=492459) + As the bug has been fixed for quite some time this option should no longer + be needed and will be removed in a future release. Please speak up if you + have a reason why the option should be kept around. + + + + +@@#handle-as-empty-doc-returns-ok 1]]> + + + +enable-compression + + + Specifies: + + + Whether or not buffered content is compressed before delivery. + + + + + Type of value: + + + 0 or 1 + + + + + Default value: + + 0 + + + + Effect if unset: + + + Privoxy does not compress buffered content. + + + + + Effect if set: + + + Privoxy compresses buffered content before delivering it to the client, + provided the client supports it. + + + + + Notes: + + + This directive is only supported if Privoxy has been compiled with + FEATURE_COMPRESSION, which should not to be confused with FEATURE_ZLIB. + + + Compressing buffered content is mainly useful if Privoxy and the + client are running on different systems. If they are running on the + same system, enabling compression is likely to slow things down. + If you didn't measure otherwise, you should assume that it does + and keep this option disabled. + + + Privoxy will not compress buffered content below a certain length. + + + + +@@#enable-compression 1]]> + + + +compression-level + + + Specifies: + + + The compression level that is passed to the zlib library when compressing buffered content. + + + + + Type of value: + + + Positive number ranging from 0 to 9. + + + + + Default value: + + 1 + + + + Notes: + + + Compressing the data more takes usually longer than compressing + it less or not compressing it at all. Which level is best depends + on the connection between Privoxy and the client. If you can't + be bothered to benchmark it for yourself, you should stick with + the default and keep compression disabled. + + + If compression is disabled, the compression level is irrelevant. + + + + + Examples: + + + + # Best speed (compared to the other levels) + compression-level 1 + # Best compression + compression-level 9 + # No compression. Only useful for testing as the added header + # slightly increases the amount of data that has to be sent. + # If your benchmark shows that using this compression level + # is superior to using no compression at all, the benchmark + # is likely to be flawed. + compression-level 0 + + + + + +@@#compression-level 1]]> + + + @@ -1955,7 +3334,7 @@ forward-socks4 and forward-socks4a The hide-console option is specific to the MS-Win console version of Privoxy. If this option is used, - Privoxy will disconnect from and hide the + Privoxy will disconnect from and hide the command console. @@ -1978,14 +3357,15 @@ forward-socks4 and forward-socks4a - + + + ]]>