X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fwebserver%2Fuser-manual%2Fconfig.html;h=d0cd99a8d254faf05d331d1a8c3729c25123fdba;hp=c51c4ea43f90b9bacfc5ea024792f7faa7fa21b7;hb=40a495e3ffe8605f990003cd4f90390298c383b7;hpb=2d6b5d2e894f920d7e376a9dc4fa436a8dbefcec diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index c51c4ea4..d0cd99a8 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -1,2939 +1,3449 @@ -
Again, the main configuration file is named config on - Linux/Unix/BSD and OS/2, and config.txt on Windows. - 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:
confdir /etc/privoxy
-Assigns the value /etc/privoxy to the option - confdir and thus indicates that the configuration - directory is named "/etc/privoxy/".
All options in the config file except for confdir and - logdir are optional. Watch out in the below description - for what happens if you leave them unset.
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).
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.
The directory where the other configuration files are located
Path name
/etc/privoxy (Unix) or Privoxy installation dir (Windows)
Mandatory
No trailing "/", please -
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). -
The directory where all logging takes place (i.e. where logfile and - jarfile are located) -
Path name
/var/log/privoxy (Unix) or Privoxy installation dir (Windows)
Mandatory
No trailing "/", please -
The actions file(s) to use -
File name, relative to confdir, without the .action suffix
standard # Internal purposes, no editing recommended - |
default # Main actions file - |
user # User customizations - |
No actions are taken at all. Simple neutral proxying. -
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. -
The filter file to use -
File name, relative to confdir
default.filter (Unix) or default.filter.txt (Windows)
No textual content filtering takes place, i.e. all - +filter{name} - actions in the actions files are turned neutral. -
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! -
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. -
The log file to use -
File name, relative to logdir
logfile (Unix) or privoxy.log (Windows)
No log file is used, all log messages go to the console (stderr). -
The windows version will additionally log to the console. -
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) but in most cases you probably will never look at it. -
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, a logrotate - script has been included. -
On SuSE Linux systems, you can place a line like "/var/log/privoxy.* - +1024k 644 nobody.nogroup" in /etc/logfiles, with - the effect that cron.daily will automatically archive, gzip, and empty the - log, when it exceeds 1M size. -
Any log files must be writable by whatever user Privoxy - is being run as (default on UNIX, user id is "privoxy"). -
The file to store intercepted cookies in -
File name, relative to logdir
jarfile (Unix) or privoxy.jar (Windows)
Intercepted cookies are not stored at all. -
The jarfile may grow to ridiculous sizes over time. -
The trust file to use -
File name, relative to confdir
Unset (commented out). When activated: trust (Unix) or trust.txt (Windows)
The whole trust mechanism is turned off. -
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. -
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. -
Location of the Privoxy User Manual. -
A fully qualified URI
Unset
http://www.privoxy.org/version/user-manual/ - will be used, where version is the Privoxy version. -
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: -
Unix, in local filesystem: -
user-manual file:///usr/share/doc/privoxy-2.9.15/user-manual/ |
Any platform, on local webserver (called "local-webserver"): -
user-manual http://local-webserver/privoxy-user-manual/ |
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. - |
A URL to be displayed in the error page that users will see if access to an untrusted page is denied. -
URL
Two example URL are provided
No links are displayed on the "untrusted" error page. -
The value of this option only matters if the experimental trust mechanism has been - activated. (See trustfile above.) -
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! -
An email address to reach the proxy administrator. -
Email address
Unset
No email address is displayed on error pages and the CGI user interface. -
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 URL to documentation about the local Privoxy setup, - configuration or policies. -
URL
Unset
No link to local documentation is displayed on error pages and the CGI user interface. -
If both admin-address and proxy-info-url - are unset, the whole "Local Privoxy Support" box on all generated pages will - not be shown. -
This URL shouldn't be blocked ;-) -
These options are mainly useful when tracing a problem. - Note that you might also want to invoke - Privoxy with the --no-daemon - command line option when debugging. -
Key values that determine what information gets logged to the - logfile. -
Integer values
12289 (i.e.: URLs plus informational and warning messages)
Nothing gets logged. -
The available debug levels are: -
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 |
To select multiple debug levels, you can either add them or use - multiple debug lines. -
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). - -
The reporting of fatal errors (i.e. ones which crash - Privoxy) is always on and cannot be disabled. -
If you want to use CLF (Common Log Format), you should set "debug - 512" ONLY and not enable anything else. -
Whether to run only one server thread -
None
Unset
Multi-threaded (or, where unavailable: forked) operation, i.e. the ability to - serve multiple requests simultaneously. -
This option is only there for debug purposes and you should never - need to use it. It will drastically reduce performance. -
This section of the config file controls the security-relevant aspects - of Privoxy's configuration. -
The IP address and TCP port on which Privoxy will - listen for client requests. -
[IP-Address]:Port
127.0.0.1:8118
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. -
You will need to configure your browser(s) to this proxy address and port. -
If you already have another service running on port 8118, or if you want to - serve requests from other machines (e.g. on your local network) as well, you - 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 "ACLs" below), or a firewall. -
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 |
Initial state of "toggle" status -
1 or 0
1
Act as if toggled on -
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 - anymore, since toggling is much easier via the web interface than via - editing the conf file. -
The windows version will only display the toggle icon in the system tray - if this option is present. -
Whether or not the web-based toggle - feature may be used -
0 or 1
1
The web-based toggle feature is disabled. -
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. -
For the time being, 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 you must have compiled Privoxy with - support for this feature, otherwise this option has no effect. -
Whether or not the web-based actions - file editor may be used -
0 or 1
1
The web-based actions file editor is disabled. -
For the time being, 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. -
Note that you must have compiled Privoxy with - support for this feature, otherwise this option has no effect. -
Who can access what. -
src_addr[/src_masklen] - [dst_addr[/dst_masklen]] -
Where src_addr and - dst_addr are IP addresses in dotted decimal notation or valid - DNS names, 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. -
Unset
Don't restrict access further than implied by listen-address -
Access controls are included at the request of ISPs and systems - administrators, and are not usually needed by individual users. - For a typical home user, it will normally suffice to ensure that - Privoxy only listens on the localhost - (127.0.0.1) or internal (home) network address by means of the - listen-address - 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. -
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 - and don't match any subsequent deny-access line. In other words, the - last match wins, with the default being deny-access. -
If Privoxy is using a forwarder (see forward below) - for a particular destination URL, the dst_addr - that is examined is the address of the forwarder and NOT the address - of the ultimate target. This is necessary because it may be impossible for the local - Privoxy to determine the IP address of the - ultimate target (that's often what gateways are used for). -
You should prefer using IP addresses over DNS names, because the address lookups take - time. All DNS names must resolve! You can not use domain patterns - like "*.org" or partial domain names. If a DNS name resolves to multiple - IP addresses, only the first one is used. -
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. -
Explicitly define the default behavior if no ACL and - listen-address are set: "localhost" - is OK. The absence of a dst_addr implies that - all destination addresses are OK: -
permit-access localhost |
Allow any host on the same class C subnet as www.privoxy.org access to - nothing but www.example.com: -
permit-access www.privoxy.org/24 www.example.com/32 |
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: -
permit-access 192.168.45.64/26 - deny-access 192.168.45.73 www.dirty-stuff.example.com |
Maximum size of the buffer for content filtering. -
Size in Kbytes
4096
Use a 4MB (4096 KB) limit. -
For content filtering, i.e. the +filter and - +deanimate-gif actions, it is necessary that - Privoxy buffers the entire document body. - This can be potentially dangerous, since a server could just keep sending - data indefinitely and wait for your RAM to exhaust -- with nasty consequences. - Hence this option. -
When a document buffer size reaches the buffer-limit, it is - flushed to the client unfiltered and no further attempt to - filter the rest of the document is made. Remember that there may be multiple threads - running, which might require up to buffer-limit Kbytes - each, unless you have enabled "single-threaded" - above. -
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.
Also specified here are SOCKS proxies. Privoxy - supports the SOCKS 4 and SOCKS 4A protocols.
To which parent HTTP proxy specific requests should be routed. -
target_domain[: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 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 -
Unset
Don't use parent HTTP proxies. -
If http_parent is ".", then requests are not - forwarded to another HTTP proxy but are made directly to the web servers. -
Multiple lines are OK, they are checked in sequence, and the last match wins. -
Everything goes to an example anonymizing proxy, except SSL on port 443 (which it doesn't handle): -
forward .* anon-proxy.example.org:8080 - forward :443 . |
Everything goes to our example ISP's caching proxy, except for requests - to that ISP's sites: -
forward .*. caching-proxy.example-isp.net:8000 - forward .example-isp.net . |
Through which SOCKS proxy (and to which parent HTTP proxy) specific requests should be routed. -
target_domain[:port] - 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 - may be "." to denote "no HTTP forwarding"), and the optional - port parameters are TCP ports, i.e. integer values from 1 to 64535 -
Unset
Don't use SOCKS proxies. -
Multiple lines are OK, they are checked in sequence, and the last match wins. -
The difference between 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. -
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 - a SOCKS proxy. -
From the company example.com, direct connections are made to all - "internal" domains, but everything outbound goes through - their ISP's proxy by way of example.com's corporate SOCKS 4A gateway to - the Internet. -
forward-socks4a .*. socks-gw.example.com:1080 www-cache.example-isp.net:8080 - forward .example.com . |
A rule that uses a SOCKS 4 gateway for all destinations but no HTTP parent looks like this: -
forward-socks4 .*. socks-gw.example.com:1080 . |
If you have links to multiple ISPs that provide various special content - only to their subscribers, you can configure multiple Privoxies - which have connections to the respective ISPs to act as forwarders to each other, so that - your users can see the internal content of all ISPs.
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 - configuration can look like this:
host-a:
forward .*. . - forward .isp-b.net host-b:8118 |
host-b:
forward .*. . - forward .isp-a.net host-a:8118 |
Now, your users can set their browser's proxy to use either - host-a or host-b and be able to browse the internal content - of both isp-a and isp-b.
If you intend to chain Privoxy and - squid locally, then chain as - browser -> squid -> privoxy is the recommended way.
Assuming that Privoxy and squid - run on the same box, your squid configuration could then look like this:
# Define Privoxy as parent proxy (without ICP) - cache_peer 127.0.0.1 parent 8118 7 no-query - - # Define ACL for protocol FTP - acl ftp proto FTP + + + + + |
You would then need to change your browser's proxy settings to squid's address and port. - Squid normally uses port 3128. If unsure consult http_port in squid.conf.
Privoxy has a number of options specific to the - Windows GUI interface:
If "activity-animation" is set to 1, the - Privoxy icon will animate when - "Privoxy" is active. To turn off, set to 0.
activity-animation 1
-
If "log-messages" is set to 1, - Privoxy will log messages to the console - window:
log-messages 1
-
- If "log-buffer-size" is set to 1, the size of the log buffer, - i.e. the amount of memory used for the log messages displayed in the - console window, will be limited to "log-max-lines" (see below).
Warning: Setting this to 0 will result in the buffer to grow infinitely and - eat up all your memory!
log-buffer-size 1
-
log-max-lines is the maximum number of lines held - in the log buffer. See above.
log-max-lines 200
-
If "log-highlight-messages" is set to 1, - Privoxy will highlight portions of the log - messages with a bold-faced font:
log-highlight-messages 1
-
The font used in the console window:
log-font-name Comic Sans MS
-
Font size used in the console window:
log-font-size 8
-
- "show-on-task-bar" controls whether or not - Privoxy will appear as a button on the Task bar - when minimized:
show-on-task-bar 0
-
If "close-button-minimizes" is set to 1, the Windows close - button will minimize Privoxy instead of closing - the program (close with the exit option on the File menu).
close-button-minimizes 1
-
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 - command console.
#hide-console
-
0
+Only proxy requests are accepted, intercepted requests are + treated as invalid.
+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.
+ +Note that intercepting encrypted connections (HTTPS) isn't + supported.
+ +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.
+accept-intercepted-requests 1
+Whether requests to Privoxy's CGI pages can be blocked or + redirected.
+0 or 1
+0
+Privoxy ignores block and + redirect actions for its CGI pages.
+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.
+allow-cgi-request-crunching 1
+Whether the CGI interface should stay compatible with broken + HTTP clients.
+0 or 1
+0
+The CGI form generate long GET URLs.
+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.
+split-large-forms 1
+Number of seconds after which an open connection will no + longer be reused.
+Time in seconds.
+None
+Connections are not kept alive.
+This option allows clients to keep the connection to + Privoxy alive. If the server + supports it, Privoxy will keep + the connection to the server alive as well. Under certain + circumstances this may result in speed-ups.
+ +By default, Privoxy 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 probably can't.
+keep-alive-timeout 300
+Whether or not pipelined requests should be served.
+0 or 1.
+None
+If Privoxy receives more than one request at once, it + terminates the client connection after serving the first + one.
+Privoxy currently doesn't + pipeline outgoing requests, thus allowing pipelining on the + client connection is not guaranteed to improve the + performance.
+ +By default Privoxy tries to + discourage clients from pipelining by discarding aggressively + pipelined requests, which forces the client to resend them + through a new connection.
+ +This option lets Privoxy + tolerate pipelining. Whether or not that improves performance + mainly depends on the client configuration.
+ +If you are seeing problems with pages not properly loading, + disabling this option could work around the problem.
+tolerate-pipelining 1
+Assumed server-side keep-alive timeout if not specified by + the server.
+Time in seconds.
+None
+Connections for which the server didn't specify the + keep-alive timeout are not reused.
+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 Privoxy tries to reuse a + connection that already has been closed on the server side, or + is closed while Privoxy 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, Privoxy 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.
+default-server-timeout 60
+Whether or not outgoing connections that have been kept + alive should be shared between different incoming + connections.
+0 or 1
+None
+Connections are not shared.
+This option has no effect if Privoxy has been compiled without + keep-alive support, or if it's disabled.
+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 Privoxy 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 Privoxy 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 + Privoxy 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.
+connection-sharing 1
+Number of seconds after which a socket times out if no data + is received.
+Time in seconds.
+None
+A default value of 300 seconds is used.
+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.
+socket-timeout 300
+Maximum number of client connections that will be + served.
+Positive number.
+128
+Connections are served until a resource limit is + reached.
+Privoxy 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, Privoxy 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 Privoxy would require + under heavy load.
+ +Configuring Privoxy 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 Privoxy isn't the only + application running on the system, you may actually want to + limit the resources used by Privoxy.
+ +If Privoxy 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 Privoxy.
+ +Obviously using this option only makes sense if you choose a + limit below the one enforced by the operating system.
+ +One most POSIX-compliant systems Privoxy can't properly deal with more than + FD_SETSIZE file descriptors at the same time and has to reject + connections if the limit is reached. This will likely change in + a future version, but currently this limit can't be increased + without recompiling Privoxy + with a different FD_SETSIZE limit.
+max-client-connections 256
+The status code Privoxy returns for pages blocked with + +handle-as-empty-document.
+0 or 1
+0
+Privoxy returns a status 403(forbidden) for all blocked + pages.
+Privoxy returns a status 200(OK) for pages blocked with + +handle-as-empty-document and a status 403(Forbidden) for all + other blocked pages.
+This directive was added as 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), + the bug has been fixed for quite some time, but this directive + is also useful to make it harder for websites to detect whether + or not resources are being blocked.
+Whether or not buffered content is compressed before + delivery.
+0 or 1
+0
+Privoxy does not compress buffered content.
+Privoxy compresses buffered content before delivering it to + the client, provided the client supports it.
+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.
+The compression level that is passed to the zlib library + when compressing buffered content.
+Positive number ranging from 0 to + 9.
+1
+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.
+
+ + # 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 + ++ |
+
The order in which client headers are sorted before + forwarding them.
+Client header names delimited by + spaces or tabs
+None
+By default Privoxy leaves + the client headers in the order they were sent by the client. + Headers are modified in-place, new headers are added at the end + of the already existing headers.
+ +The header order can be used to fingerprint client requests + independently of other headers like the User-Agent.
+ +This directive allows to sort the headers differently to + better mimic a different User-Agent. Client headers will be + emitted in the order given, headers whose name isn't explicitly + specified are added at the end.
+ +Note that sorting headers in an uncommon way will make + fingerprinting actually easier. Encrypted headers are not + affected by this directive.
+The name of a tag that will always be set for clients that + requested it through the webinterface.
+Tag name followed by a + description that will be shown in the webinterface
+None
+Warning | +
+ This is an experimental feature. The syntax is + likely to change in future versions. + |
+
Client-specific tags allow Privoxy admins to create + different profiles and let the users chose which one they want + without impacting other users.
+ +One use case is allowing users to circumvent certain blocks + without having to allow them to circumvent all blocks. This is + not possible with the enable-remote-toggle + feature because it would bluntly disable all blocks for all + users and also affect other actions like filters. It also is + set globally which renders it useless in most multi-user + setups.
+ +After a client-specific tag has been defined with the + client-specific-tag directive, action sections can be activated + based on the tag by using a CLIENT-TAG pattern. The CLIENT-TAG pattern is + evaluated at the same priority as URL patterns, as a result the + last matching pattern wins. Tags that are created based on + client or server headers are evaluated later on and can + overrule CLIENT-TAG and URL patterns!
+ +The tag is set for all requests that come from clients that + requested it to be set. Note that "clients" are differentiated + by IP address, if the IP address changes the tag has to be + requested again.
+ +Clients can request tags to be set by using the CGI + interface http://config.privoxy.org/show-client-tags. + The specific tag description is only used on the web page and + should be phrased in away that the user understand the effect + of the tag.
+
+ + # Define a couple of tags, the described effect requires action sections + # that are enabled based on CLIENT-TAG patterns. + client-specific-tag circumvent-blocks Overrule blocks but do not affect other actions + disable-content-filters Disable content-filters but do not affect other actions + ++ |
+
How long a temporarily enabled tag remains enabled.
+Time in seconds.
+60
+Warning | +
+ This is an experimental feature. The syntax is + likely to change in future versions. + |
+
In case of some tags users may not want to enable them + permanently, but only for a short amount of time, for example + to circumvent a block that is the result of an overly-broad URL + pattern.
+ +The CGI interface http://config.privoxy.org/show-client-tags therefore + provides a "enable this tag temporarily" option. If it is used, + the tag will be set until the client-tag-lifetime is over.
+
+ + # Increase the time to life for temporarily enabled tags to 3 minutes + client-tag-lifetime 180 + ++ |
+
Privoxy has a number of options + specific to the Windows GUI interface:
+ +If "activity-animation" is set to 1, the + Privoxy icon will animate when + "Privoxy" is active. To turn off, set to + 0.
+ + activity-animation 1
+
If "log-messages" is set to 1, + Privoxy copies log messages to the + console window. The log detail depends on the debug directive.
+ + log-messages 1
+
If "log-buffer-size" is set to 1, the + size of the log buffer, i.e. the amount of memory used for the log + messages displayed in the console window, will be limited to + "log-max-lines" (see below).
+ +Warning: Setting this to 0 will result in the buffer to grow + infinitely and eat up all your memory!
+ + log-buffer-size 1
+
log-max-lines is the maximum number + of lines held in the log buffer. See above.
+ + log-max-lines 200
+
If "log-highlight-messages" is set to 1, + Privoxy will highlight portions of the + log messages with a bold-faced font:
+ + log-highlight-messages 1
+
The font used in the console window:
+ + log-font-name Comic Sans
+ MS
+
Font size used in the console window:
+ + log-font-size 8
+
"show-on-task-bar" controls whether or + not Privoxy will appear as a button on + the Task bar when minimized:
+ + show-on-task-bar 0
+
If "close-button-minimizes" is set to 1, + the Windows close button will minimize Privoxy instead of closing the program (close with + the exit option on the File menu).
+ + close-button-minimizes 1
+
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 command console.
+ + #hide-console
+