250bf050d7419c08822dc1a8a80105ba96be350e
[privoxy.git] / doc / source / faq.sgml
1 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
2 <!entity % dummy "IGNORE">
3 <!entity supported SYSTEM "supported.sgml">
4 <!entity newfeatures SYSTEM "newfeatures.sgml">
5 <!entity p-intro SYSTEM "privoxy.sgml">
6 <!entity seealso SYSTEM "seealso.sgml">
7 <!entity contacting SYSTEM "contacting.sgml">
8 <!entity history SYSTEM "history.sgml">
9 <!entity copyright SYSTEM "copyright.sgml">
10 <!entity license SYSTEM "license.sgml">
11 <!entity p-version "3.0.25">
12 <!entity p-status "UNRELEASED">
13 <!entity % p-not-stable "INCLUDE">
14 <!entity % p-stable "IGNORE">
15 <!entity % p-text "IGNORE">        <!-- define we are not a text only doc -->
16 <!entity % p-doc "INCLUDE">        <!-- and we are a formal doc           -->
17 <!entity % p-supp-userman "INCLUDE"> <!-- Include all from supported.sgml -->
18 <!entity  my-copy "&copy;">          <!-- kludge for docbook2man          -->
19 <!entity % p-newstuff "INCLUDE">      <!-- exclude stuff from devel versions -->
20 <!entity % seealso-extra "INCLUDE"> <!-- extra stuff from seealso.sgml    -->
21 <!entity  my-app "<application>Privoxy</application>">
22 ]>
23 <!--
24  File        :  $Source: /cvsroot/ijbswa/current/doc/source/faq.sgml,v $
25
26  Purpose     :  FAQ
27                 This file belongs into
28                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
29
30  $Id: faq.sgml,v 2.123 2016/05/22 12:42:11 fabiankeil Exp $
31
32  Copyright (C) 2001-2014 Privoxy Developers https://www.privoxy.org/
33  See LICENSE.
34
35  Based partially on the Internet Junkbuster FAQ originally written by and
36  Copyright (C) 1997 Anonymous Coders and Junkbusters Corporation.
37  http://www.junkbusters.com/
38
39  <Qandaset defaultlabel='qanda'>
40   <QandAEntry>
41    <question>
42     <para>
43      How are you?
44     </para>
45    </question>
46    <answer>
47     <para>
48      Fine.
49     </para>
50    </answer>
51   </QandAEntry>
52  </QandASet>
53
54  ========================================================================
55  NOTE: Please read developer-manual/documentation.html before touching
56  this file!
57
58  Please we keep the info in this file as version independent as possible
59  so we only have to maintain one FAQ. Where significant changes are
60  made to Privoxy configuration, please note the change in such a way that
61  it makes sense to both users of older and newer versions.
62  ========================================================================
63
64
65 -->
66
67
68 <article id="index" class="faq">
69 <artheader>
70 <title>Privoxy Frequently Asked Questions</title>
71
72 <pubdate>
73  <subscript>
74 <!-- Completely the wrong markup, but very little is allowed  -->
75 <!-- in this part of an article. FIXME -->
76  <link linkend="copyright">Copyright</link> &my-copy; 2001-2014 by
77  <ulink url="https://www.privoxy.org/">Privoxy Developers</ulink>
78  </subscript>
79 </pubdate>
80
81 <pubdate>$Id: faq.sgml,v 2.123 2016/05/22 12:42:11 fabiankeil Exp $</pubdate>
82
83 <!--
84
85 Note: this should generate a separate page, and a live link to it.
86 But it doesn't for some mysterious reason. Please leave commented
87 unless it can be fixed proper. For the time being, the copyright
88 statement will be in copyright.smgl.
89
90 Hal.
91
92 <legalnotice id="legalnotice">
93  <para>
94   text goes here ........
95  </para>
96 </legalnotice>
97
98 -->
99
100 <!--
101 <authorgroup>
102  <author>
103   <affiliation>
104    <orgname>By: Privoxy Developers</orgname>
105    </affiliation>
106  </author>
107 </authorgroup>
108 -->
109 <abstract>
110 <![%dummy;[
111 <para>
112  <comment>
113   This is here to keep vim syntax file from breaking :/
114   If I knew enough to fix it, I would.
115   PLEASE DO NOT REMOVE! HB: hal@foobox.net
116  </comment>
117 </para>
118 ]]>
119  <para>
120  This FAQ gives quick answers to frequently asked questions about
121  <ulink url="https://www.privoxy.org/">Privoxy</ulink>.
122  It is not a substitute for the
123  <ulink url="../user-manual/index.html"><citetitle>Privoxy User Manual</citetitle></ulink>.
124 <!--
125  This works, at least in some situtations:
126  Test: <ulink url="privoxy-user-manual.pdf"><citetitle>User Manual</citetitle></ulink>.
127 -->
128  </para>
129
130 <!-- Include privoxy.sgml boilerplate: -->
131  <para>What is Privoxy?</para> &p-intro;
132 <!-- end boilerplate -->
133
134  <para>
135   Please note that this document is a work in progress. This copy represents
136   the state at the release of version &p-version;.
137   You can find the latest version of the document at <ulink
138   url="https://www.privoxy.org/faq/">https://www.privoxy.org/faq/</ulink>.
139   Please see the <link linkend="contact">Contact section</link> if you want to
140   contact the developers.
141  </para>
142
143 </abstract>
144 </artheader>
145
146
147 <!--   ~~~~~       New section      ~~~~~     -->
148
149 <sect1 id="general"><title>General Information</title>
150 <sect2 renderas="sect3" id="who-uses"><title>Who should give &my-app; a try?</title>
151  <para>
152   Anyone who is interested in security, privacy, or in
153   finer-grained control over their web and Internet experience.
154  </para>
155 </sect2>
156
157 <sect2 renderas="sect3" id="bestchoice"><title>Is Privoxy the best choice for
158 me?</title>
159  <para>
160   &my-app; is certainly a good choice, especially for those who want more
161   control and security. Those with the willingness to read the documentation
162   and the ability to fine-tune their installation will benefit the most.
163  </para>
164  <para>
165   One of <application>Privoxy's</application>
166   strengths is that it is highly configurable giving you the ability to
167   completely personalize your installation. Being familiar with, or at least
168   having an interest in learning about <ulink
169   url="http://en.wikipedia.org/wiki/Http">HTTP</ulink> and other networking
170   protocols, <ulink url="http://en.wikipedia.org/wiki/Html">HTML</ulink>, and
171   <ulink url="http://en.wikipedia.org/wiki/Regular_expressions"><quote>Regular
172   Expressions</quote></ulink>
173   will be a big plus and will help you get the most out of &my-app;.
174   A new installation just includes a very basic configuration. The user
175   should take this as a starting point only, and enhance it as he or she
176   sees fit. In fact, the user is encouraged, and expected to, fine-tune the
177   configuration.
178  </para>
179  <para>
180   Much of <application>Privoxy's</application> configuration can be done
181   with a <ulink url="http://en.wikipedia.org/wiki/Web_browser">Web browser</ulink>.
182   But there are areas where configuration is done using a
183   <ulink url="http://en.wikipedia.org/wiki/Text_editors">text editor</ulink>
184   to edit configuration files. Also note that the web-based action editor
185   doesn't use authentication and should only be enabled in environments
186   where all clients with access to &my-app; listening port can be trusted.
187   </para>
188 </sect2>
189
190 <sect2 renderas="sect3" id="proxymoron"><title>What is a <quote>proxy</quote>? How does
191 Privoxy work? </title>
192  <para>
193   A <ulink url="http://en.wikipedia.org/wiki/Proxy_server">web proxy</ulink>
194   is a service, based on a software such as &my-app;, that clients
195   (i.e. browsers) can use instead of connecting to web servers directly.
196   The clients then ask the proxy to request objects (web pages, images, movies etc)
197   on their behalf and to forward the data to the clients.
198   It is a <quote>go-between</quote>. For details, see
199   <ulink url="http://en.wikipedia.org/wiki/Proxy_server">Wikipedia's proxy definition</ulink>.
200  </para>
201  <para>
202   There are many reasons to use web proxies, such as security (firewalling),
203   efficiency (caching) and others, and there are any number of proxies
204   to accommodate those needs.
205  </para>
206  <para>
207   &my-app; is a proxy that is primarily focused on
208   privacy enhancement, ad and junk elimination and freeing the user from
209   restrictions placed on his activities. Sitting between your browser(s) and the Internet,
210   it is in a perfect position to filter outbound personal information that your
211   browser is leaking, as well as inbound junk. It uses a variety of techniques to do
212   this, all of which are under your complete control via the various configuration
213   files and options. Being a proxy also makes it easier to share
214   configurations among multiple browsers and/or users.
215  </para>
216 </sect2>
217
218 <sect2 renderas="sect3" id="otherstuff">
219 <title>Does Privoxy do anything more than ad blocking?</title>
220  <para>
221   Yes, ad blocking is but one possible use. There are many, many ways &my-app;
222   can be used to sanitize and customize web browsing.
223 </para>
224 </sect2>
225
226 <sect2 renderas="sect3" id="newjb"><title>What is this new version of
227 <quote><citetitle>Junkbuster</citetitle></quote>?</title>
228
229 <!-- Include history.sgml -->
230  &history;
231 <!-- end -->
232
233 </sect2>
234
235
236 <sect2 renderas="sect3" id="whyprivoxy">
237 <title>Why <quote>Privoxy</quote>? Why change the name from
238 Junkbuster at all?</title>
239 <para>
240  Though outdated, Junkbusters Corporation continued to offer their original
241  version of the <application>Internet Junkbuster</application> for a while,
242  so publishing our <application> Junkbuster</application>-derived software
243  under the same name would have led to confusion.
244 </para>
245 <para>
246  There were also potential legal reasons not to use the
247  <application>Junkbuster</application> name, as it was (and maybe still is)
248  a registered trademark of Junkbusters Corporation.
249  There were, however, no objections from Junkbusters Corporation to the
250  <application>Privoxy</application> project itself, and they, in fact,
251  shared our ideals and goals.
252 </para>
253 <para>
254  The Privoxy developers also believed that there were so many improvements
255  over the original code, that it was time to make a clean break from the past
256  and make a name in their own right.
257 </para>
258 <para>
259  <application>Privoxy</application> is the
260  <quote><emphasis>Privacy Enhancing Proxy</emphasis></quote>. Also, its content
261  modification and junk suppression gives <emphasis>you</emphasis>, the user, more
262  control, more freedom, and allows you to browse your personal and
263  <quote><emphasis>private</emphasis> edition</quote> of the web.
264 </para>
265 </sect2>
266
267 <sect2 renderas="sect3" id="differs"><title>How does Privoxy differ
268 from the old Junkbuster?</title>
269 <para>
270  <application>Privoxy</application> picks up where
271  <application>Junkbuster</application> left off.
272  <application>Privoxy</application> still blocks ads and banners,
273  still manages <ulink
274  url="http://en.wikipedia.org/wiki/Browser_cookie">cookies</ulink>, and still
275  helps protect your privacy. But, most of these features have been enhanced,
276  and many new ones have been added, all in the same vein.
277  </para>
278 <para>
279  <application>Privoxy</application>'s new features include:
280 </para>
281
282 <!-- Include newfeatures.sgml: -->
283  &newfeatures;
284 <!-- end include -->
285
286 </sect2>
287
288 <sect2 renderas="sect3" id="whatsanad">
289 <title>How does Privoxy know what is an ad, and what is not?</title>
290 <para>
291  <application>Privoxy</application>'s approach to blocking ads is twofold:
292 </para>
293 <para>
294  First, there are certain patterns in the <emphasis>locations</emphasis> (URLs)
295  of banner images. This applies to both the path (you wouldn't guess how many
296  web sites serve their banners from a directory called <quote>banners</quote>!)
297  and the host (blocking the big banner hosting services like doublecklick.net
298  already helps a lot). <application>Privoxy</application> takes advantage of this
299  fact by using <ulink url="../user-manual/actions-file.html#AF-PATTERNS">URL
300  patterns</ulink> to sort out and block the requests for things that sound
301  like they would be ads or banners.
302 </para>
303 <para>
304  Second, banners tend to come in certain <emphasis>sizes</emphasis>. But you
305  can't tell the size of an image by its URL without downloading it, and if you
306  do, it's too late to save bandwidth. Therefore, <application>Privoxy</application>
307  also inspects the HTML sources of web pages while they are loaded, and replaces
308  references to images with standard banner sizes by dummy references, so that
309  your browser doesn't request them anymore in the first place.
310 </para>
311 <para>
312  Both of this involves a certain amount of guesswork and is, of course, freely
313  and readily configurable.
314 </para>
315 </sect2>
316
317 <sect2 renderas="sect3" id="mistakes">
318 <title>Can Privoxy make mistakes?
319 This does not sound very scientific.</title>
320 <para>
321  Actually, it's a black art ;-) And yes, it is always possible to have a broad
322  rule accidentally block or change something by mistake. You will almost surely
323  run into such situations at some point. It is tricky writing rules to
324  cover every conceivable possibility, and not occasionally get false positives.
325 </para>
326
327 <para>
328  But this should not be a big concern since the
329  <application>Privoxy</application> configuration is very flexible, and
330  includes tools to help identify these types of situations so they can be
331  addressed as needed, allowing you to customize your installation.
332  (<link linkend="badsite">See the Troubleshooting section below</link>.)
333 </para>
334
335 </sect2>
336
337 <sect2 renderas="sect3" id="configornot">
338 <title>Will I have to configure Privoxy
339  before I can use it?</title>
340 <para>
341  That depends on your expectations.
342  The default installation should give you a good starting
343  point, and block <emphasis>most</emphasis> ads and unwanted content,
344  but many of the more advanced features are off by default, and require
345  you to activate them.
346 </para>
347 <para>
348  You do have to set up your browser to use
349  <application>Privoxy</application> (see the <link
350  linkend="firststep">Installation section below</link>).
351 </para>
352 <para>
353  And you will certainly run into situations where there are false positives,
354  or ads not being blocked that you may not want to see. In these cases, you
355  would certainly benefit by customizing <application>Privoxy's</application>
356  configuration to more closely match your individual situation. And we
357  encourage you to do this. This is where the real power of
358  <application>Privoxy</application> lies!
359 </para>
360
361 </sect2>
362
363 <sect2 renderas="sect3" id="lan">
364 <title>Can Privoxy run as a server on a network?</title>
365  <para>
366   Yes, &my-app; runs as a server already, and can easily be configured to
367   <quote>serve</quote> more than one client. See <link linkend="lanconfig">
368   How can I set up Privoxy to act as a proxy for my LAN</link> below.
369 </para>
370 </sect2>
371
372 <sect2 renderas="sect3" id="browsers2"><title>My browser does the same things as
373 Privoxy. Why should I use Privoxy at all?</title>
374  <para>
375   Modern browsers do indeed have <emphasis>some</emphasis> of the same
376   functionality as <application>Privoxy</application>. Maybe this is
377   adequate for you. But <application>Privoxy</application> is very
378   versatile and powerful, and can probably do a number of things
379   your browser just can't.
380  </para>
381  <para>
382   In addition, a proxy is good choice if you use multiple browsers, or
383   have a LAN with multiple computers since &my-app; can run as a server
384   application. This way all the configuration is in one place, and you don't
385   have to maintain a similar configuration for possibly many browsers or
386   users.
387  </para>
388  <para>
389   Note, however, that it's recommended to leverage both your browser's
390   and <application>Privoxy's</application> privacy enhancing features
391   at the same time. While your browser probably lacks some features
392   &my-app; offers, it should also be able to do some things more
393   reliably, for example restricting and suppressing JavaScript.
394  </para>
395 </sect2>
396
397 <sect2 renderas="sect3" id="whytrust"><title>Why should I trust Privoxy?</title>
398  <para>
399   The most important reason is because you have access to
400   <emphasis>everything</emphasis>, and you can control everything. You can
401   check every line of every configuration file yourself. You can check every
402   last bit of source code should you desire. And even if you can't read code,
403   there should be some comfort in knowing that <!-- thousands of -->other people can,
404   and do read it. You can build the software from scratch, if you want,
405   so that you know the executable is clean, and that it is
406   <emphasis>yours</emphasis>. In fact, we encourage this level of scrutiny. It
407   is one reason we use &my-app; ourselves.
408  </para>
409 </sect2>
410
411 <sect2 renderas="sect3" id="license"><title>Is there is a license or fee? What about a
412 warranty? Registration?</title>
413  <para>
414   <application>Privoxy</application> is free software and licensed under the <ulink
415   url="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License (GPL) version 2</ulink>.
416   It is free to use, copy, modify or distribute as you wish under the terms of this
417   license.  Please see the <link linkend="copyright">Copyright</link> section for more
418   information on the license and copyright. Or the <filename>LICENSE</filename> file
419   that should be included.
420  </para>
421  <para>
422   There is <emphasis>no warranty</emphasis> of any kind, expressed, implied or otherwise.
423   That is something that would cost real money ;-) There is no registration either.
424  </para>
425
426 </sect2>
427
428 <sect2 renderas="sect3" id="spyware">
429 <title>Can Privoxy remove spyware? Adware? Viruses?</title>
430 <para>
431  No, at least not reliably enough to trust it. &my-app; is not designed to be
432  a malware removal tool and the default configuration doesn't even try to
433  filter out any malware.
434 </para>
435 <para>
436  &my-app; could help prevent contact from (known) sites that use such
437  tactics with appropriate configuration rules, and thus could conceivably
438  prevent contamination from such sites. However, keeping such a configuration
439  up to date would require a lot of time and effort that would be better spend
440  on keeping your software itself up to date so it doesn't have known
441  vulnerabilities.
442 </para>
443 </sect2>
444
445
446 <sect2 renderas="sect3" id="otherads">
447 <title>Can I use Privoxy with other ad-blocking software?</title>
448 <para>
449  &my-app; should work fine with other proxies and other software in general.
450 </para>
451 <para>
452  But it is probably not necessary to use &my-app; in conjunction with other
453  ad-blocking products, and this could conceivably cause undesirable results.
454  It might be better to choose one software or the other and work a little to
455  tweak its configuration to your liking.
456 </para>
457 <para>
458  Note that this is an advice specific to ad blocking.
459 </para>
460 </sect2>
461
462 <sect2 renderas="sect3" id="help-the-developers"><title>I would like to help you, what can I do?</title>
463
464 <sect3 renderas="sect4" id="participate"><title>Would you like to participate?</title>
465 <para>
466    Well, we <emphasis>always</emphasis> need help. There is something for
467    everybody who wants to help us. We welcome new developers, packagers,
468    testers, documentation writers or really anyone with a desire to help in
469    any way. You <emphasis>DO NOT</emphasis> need to be a
470    <quote>programmer</quote>. There are many other tasks available. In fact,
471    the programmers often can't spend as much time programming because of some
472    of the other, more mundane things that need to be done, like checking the
473    Tracker feedback sections or responding to user questions on the mailing
474    lists.
475  </para>
476  <para>
477   So first thing, subscribe to the <ulink
478    url="https://lists.privoxy.org/mailman/listinfo/privoxy-users">Privoxy Users</ulink>
479   or the <ulink url="https://lists.privoxy.org/mailman/listinfo/privoxy-devel">Privoxy
480   Developers</ulink> mailing list, join the discussion, help out other users, provide general
481   feedback or report problems you noticed.
482  </para>
483  <para>
484   If you intend to help out with the trackers, you also might want to <ulink
485    url="https://sourceforge.net/user/registration">get an account on SourceForge.net</ulink>
486    so we don't confuse you with the other name-less users.
487  </para>
488  <para>
489    We also have a <ulink
490    url="../developer-manual/index.html">Developer's Manual</ulink>.
491    While it is partly out of date, it's still worth reading.
492 </para>
493 <para>
494    Our <ulink url="http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup">TODO list</ulink>
495    may be of interest to you as well.
496    Please let us know if you want to work on one of the items listed.
497 </para>
498 </sect3>
499
500 <sect3 renderas="sect4" id="donate"><title>Would you like to donate?</title>
501 <para>
502  Donations are welcome. Our
503  <ulink url="http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup">TODO list</ulink>
504  is rather long and being able to pay one (or more) developers to work on Privoxy
505  would make a huge difference, even if it was only for a couple of weeks. Donations may
506  also be used for Privoxy-related travel expenses (for example to attend conferences),
507  for hardware used for Privoxy development and for hosting expenses etc.
508 </para>
509
510 <para>
511  <application>Privoxy</application> is an associated
512  project of <ulink url="http://www.spi-inc.org/">Software
513  in the Public Interest (SPI)</ulink>, which allows us to receive
514  tax-deductible donations in the United States. If you want to donate through
515  SPI, please use <ulink url="http://www.spi-inc.org/donations">SPI's donation page</ulink>
516  to see what the options are.
517 </para>
518
519 <para>
520  You can also donate to Privoxy using a bank account or a "Paypal" address:
521 </para>
522 <literallayout>
523  Name on account: <ulink url="https://www.zwiebelfreunde.de/">Zwiebelfreunde e.V.</ulink>
524  IBAN: DE95430609671126825604
525  BIC: GENODEM1GLS
526  Bank: GLS Bank
527 </literallayout>
528 <literallayout>
529  "Paypal" address: privoxy@zwiebelfreunde.de
530 </literallayout>
531 <para>
532  Donations made through Zwiebelfreunde e.V. are tax-deductible in Germany
533  and other countries that recognize German charitable clubs. Feel free to
534  use the Subject field to provide a name to be credited and a list of TODO
535  list items you are interested in the most. For example: Max Mustermann: #16, #1, #14.
536 </para>
537
538 <para>
539  Note that donations made through Zwiebelfreunde e.V. currently can't be checked
540  automatically so you may not get credited right away. The credits currently
541  reflect donations received before 2016-01-14.
542 </para>
543
544 <para>
545  If you have any questions regarding donations please mail to either the
546  public user mailing list or, if it's a private matter, to
547  <ulink url="mailto:fk@fabiankeil.de">Fabian Keil</ulink> (Privoxy's SPI liaison)
548  directly.
549 </sect3>
550
551 </sect2>
552
553 </sect1>
554
555
556 <!--   ~~~~~       New section      ~~~~~     -->
557
558 <sect1  id="installation"><title>Installation</title>
559
560 <sect2 renderas="sect3" id="whichbrowsers">
561 <title>Which browsers are supported by Privoxy?</title>
562 <para>
563  Any browser that can be configured to use a proxy, which
564  should be virtually all browsers, including
565  <application>Firefox</application>, <application>Internet
566  Explorer</application>, <application>Opera</application>, and
567  <application>Safari</application> among others.
568  Direct browser support is not an absolute requirement since
569  <application>Privoxy</application> runs as a separate application and talks
570  to the browser in the standardized HTTP protocol, just like a web server
571  does.
572 </para>
573 </sect2>
574
575 <sect2 renderas="sect3" id="whichos">
576 <title>Which operating systems are supported?</title>
577 <!--
578 Include supported.sgml here:
579 -->
580 &supported;
581 </sect2>
582
583 <sect2 renderas="sect3" id="email-client">
584 <title>Can I use Privoxy with my email client?</title>
585 <para>
586  As long as there is some way to set a HTTP proxy for the client, then yes,
587  any application can be used, whether it is strictly speaking a
588  <quote>browser</quote> or not. Though this may not be the best approach for
589  dealing with some of the common abuses of HTML in email. See <link
590  linkend="outlook">How can I configure <application>Privoxy</application>
591  with <application>Outlook</application>?</link> below for more on
592  this.
593 </para>
594 <para>
595  Be aware that HTML email presents a number of unique security and privacy
596  related issues, that can require advanced skills to overcome. The developers
597  recommend using email clients that can be configured to convert HTML to plain
598  text for these reasons.
599 </para>
600 </sect2>
601
602 <!-- Nobody is going to still be doing this!
603 <sect2 renderas="sect3" id="newinstall"><title>Can I install
604  Privoxy over Junkbuster?</title>
605  <para>
606    We recommend you un-install <application>Junkbuster</application>
607    first to minimize conflicts and confusion. You may want to
608    save your old configuration files for future reference. The configuration
609    files and syntax have substantially changed, so you will need to manually
610    port your old patterns. See the <ulink url="../user-manual/upgradersnote.html">note
611    to upgraders</ulink> and <ulink url="../user-manual/installation.html">installation
612    chapter</ulink> in the <ulink url="../user-manual/index.html">User Manual</ulink>
613    for details.
614  </para>
615  <para>
616   Note: Some installers may automatically un-install
617   <application>Junkbuster</application>, if present!
618  </para>
619
620 </sect2>
621 -->
622
623 <sect2 renderas="sect3" id="firststep">
624 <title>I just installed Privoxy. Is there anything
625 special I have to do now?</title>
626
627 <para>
628  All browsers should be told to use <application>Privoxy</application>
629  as a proxy by specifying the correct proxy address and port number
630  in the appropriate configuration area for the browser. It's possible
631  to combine &my-app; with a packet filter to intercept HTTP requests
632  even if the client isn't explicitly configured to use &my-app;,
633  but where possible, configuring the client is recommended. See
634  <ulink url="../user-manual/startup.html">the User Manual for more
635  details</ulink>. You should also flush your browser's memory and disk
636  cache to get rid of any cached junk items, and remove any stored
637  <ulink url="http://en.wikipedia.org/wiki/Browser_cookie">cookies</ulink>.
638
639 </para>
640
641 </sect2>
642
643 <sect2 renderas="sect3" id="localhost"><title>What is the proxy address of Privoxy?</title>
644  <para>
645   If you set up the <application>Privoxy</application> to run on
646   the computer you browse from (rather than your ISP's server or some
647   networked computer on a LAN), the proxy will be on <literal>127.0.0.1</literal>
648   (sometimes referred to as <quote>localhost</quote>,
649   which is the special name used by every computer on the Internet to refer
650   to itself) and the port will be 8118 (unless you used the <ulink
651   url="../user-manual/config.html#LISTEN-ADDRESS">listen-address</ulink>
652   config option to tell <application>Privoxy</application> to run on
653   a different port).
654  </para>
655  <para>
656   When configuring your browser's proxy settings you typically enter
657   the word <quote>localhost</quote> or the IP address <quote>127.0.0.1</quote>
658   in the boxes next to <quote>HTTP</quote> and <quote>Secure</quote> (HTTPS) and
659   then the number <quote>8118</quote> for <quote>port</quote>.
660   This tells your browser to send all web requests to <application>Privoxy</application>
661   instead of directly to the Internet.
662  </para>
663  <para>
664   <application>Privoxy</application> can also be used to proxy for
665   a Local Area Network. In this case, your would enter either the IP
666   address of the LAN host where <application>Privoxy</application>
667   is running, or the equivalent hostname, e.g. <literal>192.168.1.1</literal>.
668   Port assignment would be same as above. Note that
669   <application>Privoxy</application> doesn't listen on any LAN interfaces by
670   default.
671  </para>
672  <para>
673   <application>Privoxy</application> does not currently handle
674   any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.
675  </para>
676 </sect2>
677
678 <sect2 renderas="sect3" id="nothing">
679 <title>I just installed Privoxy, and nothing is happening.
680 All the ads are there. What's wrong?</title>
681
682 <para>
683  Did you configure your browser to use <application>Privoxy</application>
684  as a proxy? It does not sound like it. See above. You might also try flushing
685  the browser's caches to force a full re-reading of pages. You can verify
686  that <application>Privoxy</application> is running, and your browser
687  is correctly configured by entering the special URL:
688  <ulink url="http://p.p/">http://p.p/</ulink>.
689  <!-- Use http://p.p/ instead of http://config.privoxy.org/ here because
690       of potential redirect caching problem (see next Q). -->
691  This should take you to a page titled <quote>This is Privoxy..</quote> with
692  access to <application>Privoxy's</application> internal configuration.
693  If you see this, then you are good to go. If you receive a page saying
694  <quote>Privoxy is not running</quote>, then the browser is not set up to use
695  your <application>Privoxy</application> installation.
696  If you receive anything else (probably nothing at all), it could either
697  be that the browser is not set up correctly, or that
698  <application>Privoxy</application> is not running at all. Check the <ulink
699  url="../user-manual/config.html#LOGFILE">log file</ulink>. For instructions
700  on starting <application>Privoxy</application> and browser configuration,
701  see the <ulink url="https://www.privoxy.org/user-manual/startup.html">chapter
702  on starting <application>Privoxy</application></ulink> in the
703  <ulink url="https://www.privoxy.org/user-manual/">User Manual</ulink>.
704 </para>
705
706 </sect2>
707
708 <sect2 renderas="sect3" id="notused">
709 <title>I get a <quote>Privoxy is not being used</quote> dummy page although
710 Privoxy is running and being used.</title>
711
712 <para>
713  First, make sure that Privoxy is <emphasis>really</emphasis> running and
714  being used by visiting <ulink url="http://p.p/">http://p.p/</ulink>. You
715  should see the <application>Privoxy</application> main page. If not, see
716  the <ulink url="https://www.privoxy.org/user-manual/startup.html">chapter
717  on starting <application>Privoxy</application></ulink> in the
718  <ulink url="https://www.privoxy.org/user-manual/">User Manual</ulink>.
719 </para>
720
721 <para>
722  Now if <ulink url="http://p.p/">http://p.p/</ulink> works for you, but
723  other parts of <application>Privoxy</application>'s web interface show
724  the dummy page, your browser has cached a redirection it encountered before
725  <application>Privoxy</application> was being used. You need to clear your
726  browser's cache. Note that shift-reloading the dummy page won't help, since
727  that'll only refresh the dummy page, not the redirection that lead you there.
728 </para>
729
730 <para>
731  The procedure for clearing the cache varies from browser to browser. For
732  example, <application>Mozilla/Netscape</application> users would click
733  <guibutton>Edit</guibutton> --> <guibutton>Preferences</guibutton> -->
734  <guibutton>Advanced</guibutton> --> <guibutton>Cache</guibutton> and
735  then click both <quote><guibutton>Clear Memory Cache</guibutton></quote>
736  and <quote><guibutton>Clear Disk Cache</guibutton></quote>.
737  In some <application>Firefox</application> versions it's
738  <guibutton>Tools</guibutton> --> <guibutton>Options</guibutton> -->
739  <guibutton>Privacy</guibutton> --> <guibutton>Cache</guibutton> and
740  then click <quote><guibutton>Clear Cache Now</guibutton></quote>.
741  <!-- In my Firefox versions it's the Netscape way. fk 2007-11-19-->
742 </para>
743 </sect2>
744
745 </sect1>
746
747
748 <!--   ~~~~~       New section      ~~~~~     -->
749
750 <sect1 id="configuration"><title>Configuration</title>
751 <sect2 renderas="sect3" id="actionsfile">
752 <title>What exactly is an <quote>actions</quote> file?</title>
753
754 <para>
755  &my-app; utilizes the concept of <quote>
756  <ulink url="../user-manual/actions-file.html#ACTIONS">actions</ulink></quote>
757  that are used to manipulate and control web page data.
758  <ulink url="../user-manual/actions-file.html">Actions files</ulink>
759  are where these <ulink url="../user-manual/actions-file.html#ACTIONS">actions</ulink>
760  that <application>Privoxy</application> could take while processing a certain
761  request, are configured. Typically, you would define a set of default actions
762  that apply globally to all URLs, then add exceptions to these defaults where needed.
763  There is a wide array of actions available that give the user a high degree
764  of control and flexibility on how to process each and every web page.
765 </para>
766
767 <para>
768  Actions can be defined on a <ulink
769  url="../user-manual/actions-file.html#AF-PATTERNS">URL pattern</ulink> basis, i.e.
770  for single URLs, whole web sites, groups or parts thereof etc. Actions can also be
771  grouped together and then applied to requests matching one or more patterns.
772  There are many possible actions that might apply to any given site. As an example,
773  if you are blocking <ulink url="http://en.wikipedia.org/wiki/Browser_cookie">cookies</ulink>
774  as one of your default actions, but need to accept cookies from a given site,
775  you would need to define an exception for this site in one of your actions
776  files, preferably in <filename>user.action</filename>.
777 </para>
778
779 </sect2>
780
781 <sect2 renderas="sect3" id="actionss">
782 <title>The <quote>actions</quote> concept confuses me. Please list
783 some of these <quote>actions</quote>.</title>
784 <para>
785  For a comprehensive discussion of the actions concept, please refer
786  to the <ulink url="../user-manual/actions-file.html">actions file
787  chapter</ulink> in the <ulink url="../user-manual/index.html">User
788  Manual</ulink>. It includes a <ulink
789  url="../user-manual/actions-file.html#ACTIONS">list of all actions</ulink>
790  and an <ulink url="../user-manual/actions-file.html#ACT-EXAMPLES">actions
791  file tutorial</ulink> to get you started.
792 </para>
793 </sect2>
794
795
796 <sect2 renderas="sect3" id="actconfig">
797 <title>How are actions files configured? What is the easiest
798 way to do this?</title>
799
800 <para>
801  Actions files are just text files in a special syntax and can be edited
802  with a text editor. But probably the easiest way is to access
803  <application>Privoxy</application>'s user interface with your web browser
804  at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
805  (Shortcut: <ulink url="http://p.p/">http://p.p/</ulink>) and then select
806  <quote><ulink url="http://config.privoxy.org/show-status">View &
807  change the current configuration</ulink></quote> from the menu. Note
808  that this feature must be explicitly enabled in the main config file
809  (see <ulink
810  url="../user-manual/config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</ulink>).
811 </para>
812 </sect2>
813
814
815 <sect2 renderas="sect3">
816 <title>There are several different <quote>actions</quote> files. What are
817 the differences?</title>
818 <para>
819  Please have a look at the <ulink url="../user-manual/actions-file.html">the actions chapter</ulink>
820  in the <ulink url="../user-manual/index.html">User Manual</ulink> for a detailed explanation.
821 </para>
822
823 </sect2>
824
825 <sect2 renderas="sect3" id="getupdates"><title>Where can I get updated Actions Files?</title>
826  <para>
827   Based on your feedback and the continuing development, updates of
828   <filename>default.action</filename> will be
829   made available from time to time on the <ulink
830   url="https://sourceforge.net/project/showfiles.php?group_id=11118">files section</ulink> of
831   our <ulink url="https://sourceforge.net/projects/ijbswa/">project page</ulink>.
832  </para>
833
834  <para>
835   If you wish to receive an email notification whenever we release updates of
836   <application>Privoxy</application> or the actions file, <ulink
837   url="https://lists.privoxy.org/mailman/listinfo/privoxy-announce">subscribe
838   to our announce mailing list</ulink>, privoxy-announce@lists.privoxy.org.
839  </para>
840
841 </sect2>
842
843 <sect2 renderas="sect3" id="newconfig"><title>Can I use my old config files?</title>
844  <para>
845   The syntax and purpose of configuration files has remained roughly the
846   same throughout the 3.x series, but backwards compatibility is not guaranteed.
847   Also each release contains updated, <quote>improved</quote> versions and it is
848   therefore strongly recommended to install the newer configuration files
849   and merge back your modifications.
850  </para>
851 </sect2>
852
853 <sect2 renderas="sect3" id="difficult">
854 <title>Why is the configuration so complicated?</title>
855  <para>
856   <quote>Complicated</quote> is in the eye of the beholder.
857  </para>
858  <para>
859   Privoxy is currently mainly written by and for people who are already
860   familiar with the underlying concepts like regular expressions, HTTP and HTML,
861   or are willing to become familiar with them to be able to get the most
862   out of a powerful and flexible tool such as Privoxy.
863  </para>
864  <para>
865   While everybody is expected to be able to get a Privoxy default installation
866   up and running, fine-tuning requires a certain amount of background
867   information and Privoxy's documentation mainly concentrates on the
868   Privoxy-specific parts while only providing references to the rest.
869  </para>
870  <para>
871   If you or anyone you know has the skills, time and energy to
872   reduce the barrier of entry, please <link linkend="participate">get involved</link>.
873  </para>
874 </sect2>
875
876 <sect2 renderas="sect3" id="yahoo"><title>How can I make my Yahoo/Hotmail/Gmail account work?</title>
877  <para>
878   The default configuration shouldn't impact the usability of any of these services.
879   It may, however, make all <ulink
880  url="http://en.wikipedia.org/wiki/Browser_cookie">cookies</ulink>
881   temporary, so that your browser will forget your
882   login credentials in between browser sessions. If you would like not to have to log
883   in manually each time you access those websites, simply turn off all cookie handling
884   for them in the <filename>user.action</filename> file. An example for yahoo might
885   look like:
886  </para>
887  <para>
888   <screen># Allow all cookies for Yahoo login:
889 #
890 { -<ulink url="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</ulink> -<ulink url="../user-manual/actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</ulink> -<ulink url="../user-manual/actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</ulink> }
891 .login.yahoo.com</screen>
892  </para>
893  <para>
894   These kinds of sites are often quite complex and heavy with
895   <ulink url="http://en.wikipedia.org/wiki/Javascript">Javascript</ulink> and
896   thus <quote>fragile</quote>. So if <emphasis>still</emphasis> a problem,
897   we have an <ulink
898   url="../user-manual/actions-file.html#ALIASES">alias</ulink> just for such
899   sticky situations:
900  </para>
901  <para>
902   <screen># Gmail is a _fragile_ site:
903 #
904 { <literal>fragile</literal> }
905  # Gmail is ...
906  mail.google.com</screen>
907  </para>
908  <para>
909   Be sure to flush your browser's caches whenever making these kinds of
910   changes, just to make sure the changes <quote>take</quote>.
911  </para>
912  <para>
913   Make sure the domain, host and path are appropriate as well. Your browser can
914   tell you where you are specifically and you should use that information for
915   your configuration settings. Note that above it is not referenced as
916   <literal>gmail.com</literal>, which is a valid domain name.
917  </para>
918
919 </sect2>
920
921 <sect2 renderas="sect3" id="configfiles"> <title>What's the difference between the
922 <quote>Cautious</quote>, <quote>Medium</quote> and <quote>Advanced</quote> defaults?</title>
923  <para>
924   Configuring <application>Privoxy</application> is not entirely trivial. To
925   help you get started, we provide you with three different default action
926   <quote>profiles</quote> in the web based actions file editor at <ulink
927   url="http://config.privoxy.org/show-status">http://config.privoxy.org/show-status</ulink>.
928   See the <ulink url="../user-manual/actions-file.html"><citetitle>User
929   Manual</citetitle></ulink> for a list of actions, and how the default
930   profiles are set.
931  </para>
932
933 <para>
934  Where the defaults are likely to break some sites, exceptions for
935  known popular <quote>problem</quote> sites are included, but in
936  general, the more aggressive your default settings are, the more exceptions
937  you will have to make later. New users are best to start off in
938  <quote>Cautious</quote> setting. This is safest and will have the fewest
939  problems. See the <ulink
940  url="../user-manual/index.html"><citetitle>User Manual</citetitle></ulink>
941  for a more detailed discussion.
942 </para>
943
944 <para>
945  It should be noted that the <quote>Advanced</quote> profile (formerly known
946  as the <quote>Adventuresome</quote> profile) is more
947  aggressive, and will make use of some of
948  <application>Privoxy's</application> advanced features. Use at your own risk!
949 </para>
950
951 </sect2>
952
953 <sect2 renderas="sect3" id="browseconfig"> <title>Why can I change the configuration
954 with a browser? Does that not raise security issues?</title>
955  <para>
956   It may seem strange that regular users can edit the config files with their
957   browsers, although the whole <filename>/etc/privoxy</filename> hierarchy
958   belongs to the user <quote>privoxy</quote>, with only 644 permissions.
959  </para>
960  <para>
961   When you use the browser-based editor, <application>Privoxy</application>
962   itself is writing to the config files.  Because
963   <application>Privoxy</application> is running as the user <quote>privoxy</quote>,
964   it can update its own config files.
965  </para>
966  <para>
967   If you run <application>Privoxy</application> for multiple untrusted users (e.g. in
968   a LAN) or aren't entirely in control of your own browser, you will probably want
969   to make sure that the web-based editor and remote toggle features are
970   <quote>off</quote> by setting <quote><literal><ulink
971   url="../user-manual/config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</ulink>
972   0</literal></quote> and <quote><literal><ulink
973   url="../user-manual/config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</ulink>
974   0</literal></quote> in the <ulink url="../user-manual/config.html">main configuration file</ulink>.
975  </para>
976  <para>
977   As of &my-app; 3.0.7 these options are disabled by default.
978  </para>
979 </sect2>
980
981
982 <sect2 renderas="sect3" id="filterfile">
983 <title>What is the <filename>default.filter</filename> file? What is a <quote>filter</quote>?</title>
984 <para>
985  The <ulink url="../user-manual/filter-file.html"><filename>default.filter</filename></ulink>
986  file is where <emphasis>filters</emphasis> as supplied by the developers are defined.
987  Filters are a special subset of actions that can be used to modify or
988  remove web page content or headers on the fly. Content filters can
989  be applied to <emphasis>anything</emphasis> in the page source,
990  header filters can be applied to either server or client headers.
991  Regular expressions are used to accomplish this.
992 </para>
993 <para>
994  There are a number of pre-defined filters to deal with common annoyances. The
995  filters are only defined here, to invoke them, you need to use the
996  <ulink
997  url="../user-manual/actions-file.html#FILTER"><literal>filter</literal>
998  action</ulink> in one of the actions files. Content filtering is automatically
999  disabled for inappropriate MIME types, but if you know better than Privoxy
1000  what should or should not be filtered you can filter any content you like.
1001 </para>
1002 <para>
1003  Filters should
1004  <emphasis>not</emphasis> be confused with <ulink
1005  url="../user-manual/actions-file.html#BLOCK"><literal>blocks</literal></ulink>, which
1006  is a completely different action, and is more typically used to block ads and
1007  unwanted sites.
1008 </para>
1009
1010 <para>
1011  If you are familiar with regular expressions, and HTML, you can look at
1012  the provided <filename>default.filter</filename> with a text editor and define
1013  your own filters.  This is potentially a very powerful feature, but
1014  requires some expertise in both regular expressions and HTML/HTTP.
1015  <![%p-newstuff;[ You should
1016  place any modifications to the default filters, or any new ones you create
1017  in a separate file, such as <filename>user.filter</filename>, so they won't
1018  be overwritten during upgrades.
1019  The ability to define multiple filter files
1020  in <filename>config</filename> is a new feature as of v. 3.0.5.]]>
1021 </para>
1022
1023 <para>
1024  There is no GUI editor option for this part of the configuration,
1025  but you can disable/enable the various pre-defined filters of the included
1026  <filename>default.filter</filename> file with the <ulink
1027  url="http://config.privoxy.org/show-status">web-based actions file editor</ulink>.
1028  Note that the custom actions editor must be explicitly enabled in
1029  the main config file (see <ulink
1030  url="../user-manual/config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</ulink>).
1031 </para>
1032
1033 <para>
1034  If you intend to develop your own filters, you might want to have a look at
1035  <ulink
1036  url="https://www.fabiankeil.de/sourcecode/pft/">Privoxy-Filter-Test</ulink>.
1037 </para>
1038
1039 </sect2>
1040
1041 <sect2 renderas="sect3" id="lanconfig">
1042 <title>How can I set up Privoxy to act as a proxy for my
1043  LAN?</title>
1044 <para>
1045  By default, <application>Privoxy</application> only responds to requests
1046  from <literal>127.0.0.1</literal> (localhost). To have it act as a server for
1047  a network, this needs to be changed in the <ulink
1048  url="../user-manual/config.html">main configuration file</ulink>. Look for
1049  the <literal><ulink
1050  url="../user-manual/config.html#LISTEN-ADDRESS">listen-address</ulink></literal>
1051  option, which may be commented out with a <quote>#</quote> symbol. Make sure
1052  it is uncommented, and assign it the address of the LAN gateway interface,
1053  and port number to use. Assuming your LAN address is 192.168.1.1 and you
1054  wish to run <application>Privoxy</application> on port 8118, this line
1055  should look like:
1056 </para>
1057
1058 <para>
1059  <screen>
1060   listen-address  192.168.1.1:8118</screen>
1061 </para>
1062
1063 <para>
1064  Save the file, and restart <application>Privoxy</application>. Configure
1065  all browsers on the network then to use this address and port number.
1066 </para>
1067
1068 <para>
1069  Alternately, you can have <application>Privoxy</application> listen on
1070  all available interfaces:
1071 </para>
1072
1073 <para>
1074  <screen>
1075   listen-address    :8118</screen>
1076 </para>
1077
1078 <para>
1079  And then use <application>Privoxy's</application>
1080  <ulink
1081  url="../user-manual/config.html#PERMIT-ACCESS">permit-access</ulink>
1082  feature to limit connections. A firewall in this situation is recommended
1083  as well.
1084 </para>
1085
1086 <para>
1087  The above steps should be the same for any TCP network, regardless of
1088  operating system.
1089 </para>
1090
1091 <para>
1092  If you run <application>Privoxy</application> on a LAN with untrusted users,
1093  we recommend that you double-check the <ulink
1094  url="../user-manual/config.html#ACCESS-CONTROL">access control and security</ulink>
1095  options!
1096 </para>
1097
1098 </sect2>
1099
1100
1101 <sect2 renderas="sect3" id="noseeum">
1102 <title>Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</title>
1103 <para>
1104  The replacement for blocked images can be controlled with the <ulink
1105  url="../user-manual/actions-file.html#SET-IMAGE-BLOCKER"><literal>set-image-blocker</literal>
1106  action</ulink>. You have the choice of a checkerboard pattern, a transparent 1x1 GIF
1107  image (aka <quote>blank</quote>), or a redirect to a custom image of your choice.
1108  Note that this choice only has effect for images which are blocked as images, i.e.
1109  whose URLs match both a <literal><ulink
1110  url="../user-manual/actions-file.html#HANDLE-AS-IMAGE">handle-as-image</ulink></literal>
1111  <emphasis>and</emphasis> <literal><ulink
1112  url="../user-manual/actions-file.html#BLOCK">block</ulink></literal> action.
1113 </para>
1114 <para>
1115  If you want to see nothing, then change the <ulink
1116  url="../user-manual/actions-file.html#SET-IMAGE-BLOCKER"><literal>set-image-blocker</literal>
1117  action</ulink> to <quote>blank</quote>. This can be done by editing the
1118  <filename>user.action</filename> file, or through the <ulink
1119  url="http://config.privoxy.org/show-status">web-based actions file editor</ulink>.
1120 </para>
1121
1122 </sect2>
1123
1124 <sect2 renderas="sect3" id="whyseeum">
1125 <title>Why would anybody want to see a checkerboard pattern?</title>
1126 <para>
1127  Remember that <link linkend="whatsanad">telling which image is an ad and which
1128  isn't</link>, is an educated guess. While we hope that the standard configuration
1129  is rather smart, it will make occasional mistakes. The checkerboard image is visually
1130  decent, and it shows you where images have been blocked, which can be very
1131  helpful in case some navigation aid or otherwise innocent image was
1132  erroneously blocked. It is recommended for new users so they can
1133  <quote>see</quote> what is happening. Some people might also enjoy seeing how
1134  many banners they <emphasis>don't</emphasis> have to see.
1135 </para>
1136
1137 </sect2>
1138
1139 <sect2 renderas="sect3" id="blockedbytext">
1140 <title>I see some images being replaced with text
1141 instead of the checkerboard image. Why and how do I get rid of this?</title>
1142 <para>
1143  This happens when the banners are not embedded in the HTML code of the
1144  page itself, but in separate HTML (sub)documents that are loaded into (i)frames
1145  or (i)layers, and these external HTML documents are blocked. Being non-images
1146  they get replaced by a substitute HTML page rather than a substitute image,
1147  which wouldn't work out technically, since the browser expects and accepts
1148  only HTML when it has requested an HTML document.
1149 </para>
1150 <para>
1151  The substitute page adapts to the available space and shows itself as a
1152  miniature two-liner if loaded into small frames, or full-blown with a
1153  large red "BLOCKED" banner if space allows.
1154 </para>
1155 <para>
1156  If you prefer the banners to be blocked by images, you must see to it that
1157  the HTML documents in which they are embedded are not blocked. Clicking
1158  the <quote>See why</quote> link offered in the substitute page will show
1159  you which rule blocked the page. After changing the rule and un-blocking
1160  the HTML documents, the browser will try to load the actual banner images
1161  and the usual image blocking will (hopefully!) kick in.
1162 </para>
1163 </sect2>
1164
1165
1166 <sect2 renderas="sect3" id="srvany">
1167 <title>Can Privoxy run as a service
1168 on Win2K/NT/XP?</title>
1169 <para>
1170 <![%p-newstuff;[
1171  Yes. Version 3.0.5 introduces full <application>Windows</application> service
1172  functionality. See <ulink url="../user-manual/installation.html#installation-pack-win">
1173  the <citetitle>User Manual</citetitle></ulink> for details on how to install and configure
1174  <application>Privoxy</application> as a service.
1175 </para>
1176 <para>
1177  Earlier ]]>3.x versions could run as a system service using <command>srvany.exe</command>.
1178  See the discussion at <ulink
1179  url="https://sourceforge.net/tracker/?func=detail&#38;atid=361118&#38;aid=485617&#38;group_id=11118">https://sourceforge.net/tracker/?func=detail&#38;atid=361118&#38;aid=485617&#38;group_id=11118</ulink>,
1180  for details, and a sample configuration.
1181 </para>
1182 </sect2>
1183
1184
1185 <sect2 renderas="sect3" id="otherproxy">
1186 <title>How can I make Privoxy work with other proxies?</title>
1187 <para>
1188  This can be done and is often useful to combine the benefits of
1189  <application>Privoxy</application> with those of a another proxy,
1190  for example to cache content.
1191  See the <ulink
1192  url="../user-manual/config.html#FORWARDING">forwarding chapter</ulink>
1193  in the <ulink url="../user-manual/index.html">User Manual</ulink> which
1194  describes how to do this. If you intend to use Privoxy with Tor,
1195  please also have a look at
1196  <link linkend="TOR">How do I use Privoxy together with Tor</link>.
1197 </para>
1198 </sect2>
1199
1200 <sect2 renderas="sect3" id="port-80">
1201 <title>Can I just set Privoxy to use port 80
1202 and thus avoid individual browser configuration?</title>
1203
1204 <para>
1205  No, its more complicated than that. This only works with special kinds
1206  of proxies known as <quote>intercepting</quote> proxies
1207  (<link linkend="INTERCEPTING">see below</link>).
1208 </para>
1209
1210 </sect2>
1211
1212 <sect2 renderas="sect3" id="transparent">
1213 <title>Can Privoxy run as a <quote>transparent
1214 </quote> proxy?</title>
1215 <para>
1216  The whole idea of Privoxy is to modify client requests
1217  and server responses in all sorts of ways and therefore
1218  it's not a transparent proxy as described in
1219  <ulink url="http://tools.ietf.org/html/rfc2616">RFC 2616</ulink>.
1220 </para>
1221 <para>
1222  However, some people say <quote>transparent proxy</quote> when they
1223  mean <quote>intercepting proxy</quote>. If you are one of them,
1224  please read the <link linkend="INTERCEPTING">next entry</link>.
1225 </para>
1226
1227 </sect2>
1228
1229 <sect2 renderas="sect3" id="intercepting">
1230 <title>Can Privoxy run as a <quote>intercepting</quote> proxy?</title>
1231 <para>
1232  <application>Privoxy</application> can't intercept traffic itself,
1233   but it can handle requests that where intercepted and redirected
1234   with a packet filter (like <application>PF</application> or
1235   <application>iptables</application>), as long as the <literal>Host</literal>
1236   header is present.
1237   </para>
1238 <para>
1239   As the <literal>Host</literal> header is required by HTTP/1.1 and as most
1240   web sites rely on it anyway, this limitation shouldn't be a problem.
1241 </para>
1242 <para>
1243   Please refer to your packet filter's documentation to learn how to
1244   intercept and redirect traffic into <application>Privoxy</application>.
1245   Afterward you just have to configure <application>Privoxy</application> to
1246   <ulink url="../user-manual/config.html#ACCEPT-INTERCEPTED-REQUESTS">accept
1247   intercepted requests</ulink>.
1248 </para>
1249
1250 </sect2>
1251
1252 <sect2 renderas="sect3" id="outlook">
1253 <title>How can I configure Privoxy for use with Outlook?</title>
1254 <para>
1255  Versions of <application>Outlook</application> prior to Office 2007, use
1256  <application>Internet Explorer</application> components to both render HTML,
1257  and fetch any HTTP requests that may be embedded in an HTML email. So however
1258  you have <application>Privoxy</application> configured to work with IE, this
1259  configuration should automatically be shared, at least with older version of
1260  Internet Explorer.
1261 </para>
1262 <para>
1263  Starting with Office 2007, Microsoft is instead using the MS-Word rendering
1264  engine with Outlook. It is unknown whether this can be configured to use a
1265  proxy.
1266  <!-- FIXME HB 2009-02-15 -->
1267 </para>
1268 </sect2>
1269
1270 <sect2 renderas="sect3" id="outlook-more">
1271 <title>How can I have separate rules just for HTML mail?</title>
1272 <para>
1273  The short answer is, you can't. <application>Privoxy</application> has no way
1274  of knowing which particular application makes a request, so there is no way to
1275  distinguish between web pages and HTML mail.
1276  <application>Privoxy</application> just blindly proxies all requests. In the
1277  case of <application>Outlook Express</application> (see above), OE uses
1278  IE anyway, and there is no way for <application>Privoxy</application> to ever
1279  be able to distinguish between them (nor could any other proxy type application for
1280  that matter).
1281 </para>
1282 <para>
1283  For a good discussion of some of the issues involved (including privacy and
1284  security issues), see
1285  <ulink url="https://sourceforge.net/tracker/?func=detail&#38;atid=211118&#38;aid=629518&#38;group_id=11118">https://sourceforge.net/tracker/?func=detail&#38;atid=211118&#38;aid=629518&#38;group_id=11118</ulink>.
1286 </para>
1287 </sect2>
1288
1289 <sect2 renderas="sect3" id="sneaky-cookies">
1290 <title>I sometimes notice cookies sneaking through. How?</title>
1291 <para>
1292  <ulink
1293  url="http://en.wikipedia.org/wiki/Browser_cookie">Cookies</ulink> can be
1294  set in several ways. The classic method is via the
1295  <literal>Set-Cookie</literal> HTTP header. This is straightforward, and an
1296  easy one to manipulate, such as the &my-app; concept of
1297  <ulink url="../user-manual/actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</ulink>.
1298  There is also the possibility of using
1299   <ulink url="http://en.wikipedia.org/wiki/Javascript">Javascript</ulink> to
1300  set cookies (&my-app; calls these <literal>content-cookies</literal>). This
1301  is trickier because the syntax can vary widely, and thus requires a certain
1302  amount of guesswork. It is not realistic to catch all of these short of
1303  disabling Javascript, which would break many sites. And lastly, if the
1304  cookies are embedded in a HTTPS/SSL secure session via Javascript, they are beyond
1305  <application>Privoxy's</application> reach.
1306 </para>
1307 <para>
1308  All in all, &my-app; can help manage cookies in general, can help minimize
1309  the loss of privacy posed by cookies, but can't realistically stop all
1310  cookies.
1311 </para>
1312 </sect2>
1313
1314 <sect2 renderas="sect3" id="evil-cookies">
1315 <title>Are all cookies bad? Why?</title>
1316 <para>
1317  No, in fact there are many beneficial uses of
1318  <ulink
1319  url="http://en.wikipedia.org/wiki/Browser_cookie">cookies</ulink>. Cookies are just a
1320  method that browsers can use to store data between pages, or between browser
1321  sessions. Sometimes there is a good reason for this, and the user's life is a
1322  bit easier as a result. But there is a long history of some websites taking
1323  advantage of this layer of trust, and using the data they glean from you and
1324  your browsing habits for their own purposes, and maybe to your potential
1325  detriment. Such sites are using you and storing their data on your system.
1326  That is why the privacy conscious watch from whom those cookies come, and why
1327  they really <emphasis>need</emphasis> to be there.
1328 </para>
1329 <para>
1330   See the
1331    <ulink url="http://en.wikipedia.org/wiki/Browser_cookie">Wikipedia cookie
1332   definition</ulink> for more.
1333 </para>
1334 </sect2>
1335
1336 <sect2 renderas="sect3" id="allow-cookies">
1337 <title>How can I allow permanent cookies for my trusted sites?</title>
1338
1339 <para>
1340   There are several actions that relate to cookies. The default behavior is to
1341   allow only <quote>session cookies</quote>, which means the cookies only last
1342   for the current browser session. This eliminates most kinds of abuse related
1343   to cookies. But there may be cases where you want cookies to last.
1344 </para>
1345 <para>
1346   To disable all cookie actions, so that cookies are allowed unrestricted,
1347   both in and out, for <literal>example.com</literal>:
1348 </para>
1349 <para>
1350  <screen>
1351  { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
1352   .example.com</screen>
1353 </para>
1354 <para>
1355  Place the above in <filename>user.action</filename>. Note that some of these may
1356  be off by default anyway, so this might be redundant, but there is no harm
1357  being explicit in what you want to happen. <filename>user.action</filename>
1358  includes an alias for this situation, called
1359  <literal>allow-all-cookies</literal>.
1360 </para>
1361 </sect2>
1362
1363 <sect2 renderas="sect3" id="multiples">
1364 <title>Can I have separate configurations for different users?</title>
1365 <para>
1366  Each instance of <application>Privoxy</application> has its own
1367  configuration, including such attributes as the TCP port that it listens on.
1368  What you can do is run multiple instances of <application>Privoxy</application>, each with
1369  a unique
1370  <ulink url="../user-manual/config.html#LISTEN-ADDRESS">listen-address</ulink>
1371  configuration setting, and configuration path, and then
1372  each of these can have their own configurations. Think of it as per-port
1373  configuration.
1374 </para>
1375 <para>
1376  Simple enough for a few users, but for large installations, consider having
1377  groups of users that might share like configurations.
1378 </para>
1379 </sect2>
1380
1381 <sect2 renderas="sect3" id="whitelists">
1382 <title>Can I set-up Privoxy as a whitelist of
1383 <quote>good</quote> sites?</title>
1384 <para>
1385  Sure. There are a couple of things you can do for simple white-listing.
1386  Here's one real easy one:
1387 </para>
1388  <screen>
1389  ############################################################
1390  # Blacklist
1391  ############################################################
1392  { <ulink url="../user-manual/actions-file.html#BLOCK">+block</ulink> }
1393  / # Block *all* URLs
1394
1395  ############################################################
1396  # Whitelist
1397  ############################################################
1398  { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> }
1399   kids.example.com
1400   toys.example.com
1401   games.example.com</screen>
1402 <para>
1403  This allows access to only those three sites by first blocking all URLs, and
1404  then subsequently allowing three specific exceptions.
1405 </para>
1406 <para>
1407  Another approach is <application>Privoxy's</application>
1408  <literal>trustfile</literal> concept, which incorporates the notion of
1409  <quote>trusted referrers</quote>. See the <ulink
1410  url="../user-manual/config.html#TRUSTFILE">Trust documentation</ulink>
1411  for details.
1412 </para>
1413 <para>
1414  These are fairly simple approaches and are not completely foolproof. There
1415  are various other configuration options that should be disabled (described
1416  elsewhere here and in <ulink url="../user-manual/">the User Manual</ulink>)
1417  so that users can't modify their own configuration and easily circumvent the
1418  whitelist.
1419 </para>
1420 </sect2>
1421
1422 <sect2 renderas="sect3" id="no-adblock">
1423 <title>How can I turn off ad-blocking?</title>
1424 <para>
1425  Ad blocking is achieved through a complex application of various &my-app;
1426  <ulink url="../user-manual/actions-file.html">actions</ulink>. These
1427  actions are deployed against simple images, banners, flash animations,
1428  text pages, JavaScript, pop-ups and pop-unders, etc., so its not as simple as
1429  just turning one or two actions off. The various actions that make up
1430  &my-app; ad blocking are hard-coded into the default configuration files. It
1431  has been assumed that everyone using &my-app; is interested in this
1432  particular feature.
1433  </para>
1434  <para>
1435  If you want to do without this, there are several approaches you can take:
1436  You can manually undo the many block rules in
1437  <filename>default.action</filename>. Or even easier, just create your own
1438  <filename>default.action</filename> file from scratch without the many ad
1439  blocking rules, and corresponding exceptions. Or lastly, if you are not
1440  concerned about the additional blocks that are done for privacy reasons, you
1441  can very easily over-ride <emphasis>all</emphasis> blocking with the
1442  following very simple rule in your <filename>user.action</filename>:
1443  </para>
1444  <para>
1445  <screen>
1446  # Unblock everybody, everywhere
1447  { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> }
1448  / # UN-Block *all* URLs</screen>
1449 </para>
1450 <para>
1451  Or even a more comprehensive reversing of various ad related actions:
1452 </para>
1453 <para>
1454  <screen>
1455  # Unblock everybody, everywhere, and turn off appropriate filtering, etc
1456  { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> \
1457   <ulink url="../user-manual/actions-file.html#FILTER-BANNERS-BY-SIZE">-filter{banners-by-size}</ulink> \
1458   <ulink url="../user-manual/actions-file.html#FILTER-BANNERS-BY-LINK">-filter{banners-by-link}</ulink> \
1459   <literal>allow-popups</literal> \
1460  }
1461  / # UN-Block *all* URLs and allow ads</screen>
1462 </para>
1463 <para>
1464  This last <quote>action</quote> in this compound statement,
1465  <literal>allow-popups</literal>, is an <ulink
1466  url="../user-manual/actions-file.html#ALIASES">alias</ulink> that disables
1467  various pop-up blocking features.
1468 </para>
1469 </sect2>
1470
1471 <sect2 renderas="sect3" id="templates">
1472 <title>How can I have custom template pages, like the
1473 <emphasis>BLOCKED</emphasis> page?</title>
1474 <para>
1475  &my-app; <quote>templates</quote> are specialized text files utilized by
1476  &my-app; for various purposes and can easily be modified using any text
1477  editor. All the template pages are installed in a sub-directory appropriately
1478  named: <filename>templates</filename>.  Knowing something about HTML syntax
1479  will of course be helpful.
1480 </para>
1481 <para>
1482  Be forewarned that the default templates are subject to being overwritten
1483  during upgrades. You can, however, create completely new templates,
1484  place them in another directory and specify the alternate path in the main
1485  <filename>config</filename>. For details, have a look at the <ulink
1486  url="../user-manual/config.html#templdir">templdir</ulink> option.
1487 </para>
1488 </sect2>
1489
1490 <sect2 renderas="sect3" id="blockall">
1491 <title>How can I remove the <quote>Go There Anyway</quote> link from
1492 the <emphasis>BLOCKED</emphasis> page?</title>
1493 <para>
1494  There is more than one way to do it (although Perl is not involved).
1495 </para>
1496 <para>
1497  Editing the BLOCKED template page (see above) may dissuade some users, but
1498  this method is easily circumvented. Where you need this level of control, you
1499  might want to build &my-app; from source, and disable various features that are
1500  available as compile-time options. You should
1501  <command>configure</command> the sources as follows:
1502 </para>
1503 <para>
1504  <screen>
1505  ./configure  --disable-toggle  --disable-editor  --disable-force</screen>
1506 </para>
1507 <para>
1508  This will create an executable with hard-coded security features so that
1509  &my-app; does not allow easy bypassing of blocked sites, or changing the
1510  current configuration via any connected user's web browser.
1511 </para>
1512 <para>
1513  Finally, all of these features can also be toggled on/off via options in
1514  <application>Privoxy's</application> main  <ulink
1515  url="../user-manual/config.html#ACCESS-CONTROL">config</ulink> file which
1516  means you don't have to recompile anything.
1517 </para>
1518 </sect2>
1519
1520 </sect1>
1521
1522 <!--  ~  End section  ~  -->
1523
1524
1525 <!--   ~~~~~       New section      ~~~~~     -->
1526
1527 <sect1 id="misc"><title>Miscellaneous</title>
1528
1529 <sect2 renderas="sect3" id="slowsme">
1530 <title>How much does Privoxy slow my browsing down? This
1531 has to add extra time to browsing.</title>
1532 <para>
1533  How much of an impact depends on many things, including the CPU of the host
1534  system, how aggressive the configuration is, which specific actions are being triggered,
1535  the size of the page, the bandwidth of the connection, etc.
1536 </para>
1537 <para>
1538  Overall, it should not slow you down any in real terms, and may actually help
1539  speed things up since ads, banners and other junk are not typically being
1540  retrieved and displayed. The actual processing time required by
1541  <application>Privoxy</application> itself for each page, is relatively small
1542  in the overall scheme of things, and happens very quickly. This is typically
1543  more than offset by time saved not downloading and rendering ad images and
1544  other junk content (if ad blocking is being used).
1545 </para>
1546
1547 <para>
1548  <quote>Filtering</quote> content via the <literal><ulink
1549  url="../user-manual/actions-file.html#FILTER">filter</ulink></literal> or
1550  <literal><ulink
1551  url="../user-manual/actions-file.html#DEANIMATE-GIFS">deanimate-gifs</ulink></literal>
1552  actions may cause a perceived slowdown, since the entire document
1553  needs to be buffered before displaying. And on very large documents,
1554  filtering may have some measurable impact. How much depends on the page size,
1555  the actual definition of the filter(s), etc. See below. Most other actions
1556  have little to no impact on speed.
1557 </para>
1558 <para>
1559  Also, when filtering is enabled but zlib support isn't available, compression
1560  is often disabled (see <ulink
1561  url="../user-manual/actions-file.html#PREVENT-COMPRESSION">prevent-compression</ulink>).
1562  This can have an impact on speed as well, although it's probably smaller than
1563  you might think. Again, the page size, etc. will determine how much of an impact.
1564 </para>
1565
1566 </sect2>
1567
1568
1569 <sect2 renderas="sect3" id="loadingtimes"><title>I notice considerable
1570 delays in page requests. What's wrong?</title>
1571 <para>
1572  If you use any <literal><ulink
1573  url="../user-manual/actions-file.html#FILTER">filter</ulink></literal> action,
1574  such as filtering banners by size, web-bugs etc, or the <literal><ulink
1575  url="../user-manual/actions-file.html#DEANIMATE-GIFS">deanimate-gifs</ulink></literal>
1576  action, the entire document must be loaded into memory in order for the filtering
1577  mechanism to work, and nothing is sent to the browser during this time.
1578 </para>
1579 <para>
1580  The loading time typically does not really change much in real numbers, but
1581  the feeling is different, because most browsers are able to start rendering
1582  incomplete content, giving the user a feeling of "it works". This effect is
1583  more noticeable on slower dialup connections. Extremely large documents
1584  may have some impact on the time to load the page where there is filtering
1585  being done. But overall, the difference should be very minimal. If there is a
1586  big impact, then probably some other situation is contributing (like
1587  anti-virus software).
1588  </para>
1589 <para>
1590  Filtering is automatically disabled for inappropriate MIME types. But note
1591  that if the web server mis-reports the MIME type, then content that should
1592  not be filtered, could be. <application>Privoxy</application> only knows how
1593  to differentiate filterable content because of the MIME type as reported by
1594  the server, or because of some configuration setting that enables/disables
1595  filtering.
1596 </para>
1597 </sect2>
1598
1599 <sect2 renderas="sect3" id="configurl"><title>What are "http://config.privoxy.org/" and
1600 "http://p.p/"?</title>
1601 <para>
1602  <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink> is the
1603  address of <application>Privoxy</application>'s built-in user interface, and
1604  <ulink url="http://p.p/">http://p.p/</ulink> is a shortcut for it.
1605 </para>
1606 <para>
1607  Since <application>Privoxy</application> sits between your web browser and the Internet,
1608  it can simply intercept requests for these addresses and answer them with its built-in
1609  <quote>web server</quote>.
1610 </para>
1611 <para>
1612  This also makes for a good test for your browser configuration: If entering the
1613  URL <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
1614  takes you to a page saying <quote>This is Privoxy ...</quote>, everything is OK.
1615  If you get a page saying <quote>Privoxy is not working</quote> instead, then
1616  your browser didn't use <application>Privoxy</application> for the request,
1617  hence it could not be intercepted, and you have accessed the <emphasis>real</emphasis>
1618  web site at config.privoxy.org.
1619 </para>
1620 <para>
1621  Note that config.privoxy.org resolves to a public IP address.
1622  If you use config.privoxy.org as ping or traceroute target you will
1623  reach the system on the Internet (Privoxy can't intercept ICMP requests).
1624  If you want to ping the system Privoxy runs on,
1625  you should use its IP address or local DNS name (if it has got one).
1626 </para>
1627
1628 </sect2>
1629
1630 <!--
1631  out of date 09/02/06 HB
1632 <sect2 renderas="sect3" id="blocklist"><title>Do you still maintain the blocklists?</title>
1633  <para>
1634   No. The patterns for blocking now reside (among other things) in the <ulink
1635   url="../user-manual/actions-file.html">actions files</ulink>, which are
1636   actively maintained instead. See next question ...
1637 </para>
1638 </sect2>
1639 -->
1640 <sect2 renderas="sect3" id="newads"><title>How can I submit new ads, or report
1641 problems?</title>
1642 <para>
1643 Please see the <link linkend="contact">Contact section</link> for
1644 various ways to interact with the developers.
1645 </para>
1646
1647 </sect2>
1648
1649 <sect2 renderas="sect3" id="newads2"><title>If I do submit missed ads, will
1650 they be included in future updates?</title>
1651 <para>
1652  Whether such submissions are eventually included in the
1653  <filename>default.action</filename> configuration file depends on how
1654  significant the issue is. We of course want to address any potential
1655  problem with major, high-profile sites such as <citetitle>Google</citetitle>,
1656  <citetitle>Yahoo</citetitle>, etc. Any site with global or regional reach,
1657  has a good chance of being a candidate. But at the other end of the spectrum
1658  are any number of smaller, low-profile sites such as for local clubs or
1659  schools. Since their reach and impact are much less, they are best handled by
1660  inclusion in the user's <filename>user.action</filename>, and thus would be
1661  unlikely to be included.
1662 </para>
1663
1664 </sect2>
1665
1666
1667 <sect2 renderas="sect3" id="noonecares"><title>Why doesn't anyone answer my support
1668 request?</title>
1669 <para>
1670 Rest assured that it has been read and considered. Why it is not answered,
1671 could be for various reasons, including no one has a good answer for it, no
1672 one has had time to yet investigate it thoroughly, it has been reported
1673 numerous times already, or because not enough information was provided to help
1674 us help you. Your efforts are not wasted, and we do appreciate them.
1675 </para>
1676
1677 </sect2>
1678
1679
1680 <sect2 renderas="sect3" id="ip"><title>How can I hide my IP address?</title>
1681 <para>
1682  If you run both the browser and &my-app; locally, you cannot hide your IP
1683  address with <application>Privoxy</application> or ultimately any other
1684  software alone. The server needs to know your IP address so that it knows
1685  where to send the responses back.
1686 </para>
1687 <para>
1688  There are many publicly usable "anonymous" proxies out there, which
1689  provide a further level of indirection between you and the web server.
1690 </para>
1691 <para>
1692  However, these proxies are called "anonymous" because you don't need
1693  to authenticate, not because they would offer any real anonymity.
1694  Most of them will log your IP address and make it available to the
1695  authorities in case you violate the law of the country they run in. In fact
1696  you can't even rule out that some of them only exist to *collect* information
1697  on (those suspicious) people with a more than average preference for privacy.
1698 </para>
1699 <para>
1700  If you want to hide your IP address from most adversaries,
1701  you should consider chaining <application>Privoxy</application>
1702  with <ulink url="https://www.torproject.org/">Tor</ulink>.
1703  The configuration details can be found in
1704  <ulink url="#TOR">How do I use <application>Privoxy</application> together
1705  with <application>Tor</application> section</ulink>
1706  just below.
1707 </para>
1708 </sect2>
1709
1710 <sect2 renderas="sect3" id="anonforsure">
1711 <title>Can Privoxy guarantee I am anonymous?</title>
1712 <para>
1713  No. Your chances of remaining anonymous are improved, but unless you
1714  <ulink url="#TOR">chain <application>Privoxy</application> with <application>Tor</application></ulink>
1715  or a similar proxy and know what you're doing when it comes to configuring
1716  the rest of your system, you should assume that everything you do
1717  on the Web can be traced back to you.
1718 </para>
1719 <para>
1720  <application>Privoxy</application> can remove various information about you,
1721  and allows <emphasis>you</emphasis> more freedom to decide which sites
1722  you can trust, and what details you want to reveal. But it neither
1723  hides your IP address, nor can it guarantee that the rest of the system
1724  behaves correctly. There are several possibilities how a web sites can find
1725  out who you are, even if you are using a strict <application>Privoxy</application>
1726  configuration and chained it with <application>Tor</application>.
1727 </para>
1728 <para>
1729  Most of <application>Privoxy's</application> privacy-enhancing features can be easily subverted
1730  by an insecure browser configuration, therefore you should use a browser that can
1731  be configured to only execute code from trusted sites, and be careful which sites you trust.
1732  For example there is no point in having <application>Privoxy</application>
1733  modify the User-Agent header, if websites can get all the information they want
1734  through JavaScript, ActiveX, Flash, Java etc.
1735 </para>
1736 <para>
1737  A few browsers disclose the user's email address in certain situations, such
1738  as when transferring a file by FTP. <application>Privoxy</application>
1739  does not filter FTP. If you need this feature, or are concerned about the
1740  mail handler of your browser disclosing your email address, you might
1741  consider products such as <application>NSClean</application>.
1742 </para>
1743 <para>
1744  Browsers available only as binaries could use non-standard headers to give
1745  out any information they can have access to: see the manufacturer's license
1746  agreement. It's impossible to anticipate and prevent every breach of privacy
1747  that might occur. The professionally paranoid prefer browsers available as
1748  source code, because anticipating their behavior is easier. Trust the source,
1749  Luke!
1750 </para>
1751
1752 </sect2>
1753
1754 <sect2 renderas="sect3" id="proxytest">
1755 <title>A test site says I am not using a Proxy.</title>
1756 <para>
1757  Good! Actually, they are probably testing for some other kinds of proxies.
1758  Hiding yourself completely would require additional steps.
1759 </para>
1760 </sect2>
1761
1762 <sect2 renderas="sect3" id="tor"><title>How do I use Privoxy
1763  together with Tor?</title>
1764 <para>
1765  Before you configure <application>Privoxy</application> to use
1766  <ulink url="https://www.torproject.org/">Tor</ulink>,
1767  please follow the <citetitle>User Manual</citetitle> chapters
1768  <ulink url="../user-manual/installation.html">2. Installation</ulink> and
1769  <ulink url="../user-manual/startup.html">5. Startup</ulink> to make sure
1770  <application>Privoxy</application> itself is setup correctly.
1771 </para>
1772 <para>
1773  If it is, refer to <ulink url="https://www.torproject.org/documentation.html">Tor's
1774  extensive documentation</ulink> to learn how to install <application>Tor</application>,
1775  and make sure <application>Tor</application>'s logfile says that
1776  <quote>Tor has successfully opened a circuit</quote> and it
1777  <quote>looks like client functionality is working</quote>.
1778 </para>
1779 <para>
1780  If either <application>Tor</application> or <application>Privoxy</application>
1781  isn't working, their combination most likely will neither. Testing them on their
1782  own will also help you to direct problem reports to the right audience.
1783  If <application>Privoxy</application> isn't working, don't bother the
1784  <application>Tor</application> developers. If <application>Tor</application>
1785  isn't working, don't send bug reports to the <application>Privoxy</application> Team.
1786 </para>
1787 <para>
1788  If you verified that <application>Privoxy</application> and <application>Tor</application>
1789  are working, it is time to connect them. As far as <application>Privoxy</application>
1790  is concerned, <application>Tor</application> is just another proxy that can be reached
1791  by socks4, socks4a and socks5. Most likely you are interested in <application>Tor</application>
1792  to increase your anonymity level, therefore you should use socks5, to make sure DNS
1793  requests are done through <application>Tor</application> and thus invisible to your
1794  local network. Using socks4a would work too, but with socks5 you get more precise error
1795  messages.
1796 </para>
1797
1798 <para>
1799  <application>Privoxy's</application>
1800  <ulink url="../user-manual/config.html">main configuration file</ulink>
1801  is already prepared for <application>Tor</application>, if you are using a
1802  default <application>Tor</application> configuration and run it on the same
1803  system as &my-app;, you just have to edit the
1804  <ulink url="../user-manual/config.html#FORWARDING">forwarding section</ulink>
1805  and uncomment the line:
1806 </para>
1807 <para>
1808  <screen>
1809 #        forward-socks5t             /     127.0.0.1:9050 .
1810  </screen>
1811 </para>
1812 <para>
1813  Note that if you got Tor through one of the bundles, you may
1814  have to change the port from 9050 to 9150 (or even another one).
1815  For details, please check the documentation on the
1816  <ulink url="https://torproject.org/">Tor website</ulink>.
1817 </para>
1818
1819 <para>
1820  This is enough to reach the Internet, but additionally you might want to
1821  uncomment the following forward rules, to make sure your local network is still
1822  reachable through Privoxy:
1823 </para>
1824 <para>
1825  <screen>
1826 #        forward         192.168.*.*/     .
1827 #        forward            10.*.*.*/     .
1828 #        forward           127.*.*.*/     .
1829  </screen>
1830 </para>
1831 <para>
1832  Unencrypted connections to systems in these address ranges will
1833  be as (un)secure as the local network is, but the alternative is
1834  that your browser can't reach the network at all. Then again,
1835  that may actually be desired and if you don't know for sure
1836  that your browser has to be able to reach the local network,
1837  there's no reason to allow it.
1838 </para>
1839 <para>
1840  If you want your browser to be able to reach servers in your local
1841  network by using their names, you will need additional exceptions
1842  that look like this:
1843 </para>
1844 <para>
1845  <screen>
1846 #        forward           localhost/     .
1847  </screen>
1848 </para>
1849 <para>
1850  Save the modified configuration file and open
1851  <ulink url="http://config.privoxy.org/show-status">http://config.privoxy.org/show-status</ulink>
1852  in your browser, confirm that <application>Privoxy</application> has reloaded its configuration
1853  and that there are no other forward lines, unless you know that you need them. If everything looks good,
1854  refer to
1855  <ulink url="https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#IsMyConnectionPrivate">Tor
1856  Faq 4.2</ulink> to learn how to verify that you are really using <application>Tor</application>.
1857 </para>
1858 <para>
1859  Afterward, please take the time to at least skim through the rest
1860  of <application>Tor's</application> documentation. Make sure you understand
1861  what <application>Tor</application> does, why it is no replacement for
1862  application level security, and why you probably don't want to
1863  use it for unencrypted logins.
1864 </para>
1865 </sect2>
1866
1867 <sect2 renderas="sect3" id="sitebreak">
1868 <title>Might some things break because header information or
1869 content is being altered?</title>
1870
1871 <para>
1872  Definitely. It is common for sites to use browser type, browser version,
1873  HTTP header content, and various other techniques in order to dynamically
1874  decide what to display and how to display it. What you see, and what I see,
1875  might be very different. There are many, many ways that this can be handled,
1876  so having hard and fast rules, is tricky.
1877 </para>
1878
1879 <para>
1880  The <quote>User-Agent</quote> is sometimes used in this way to identify
1881  the browser, and adjust content accordingly.
1882 </para>
1883
1884 <para>
1885  Also, different browsers use different encodings of non-English
1886  characters, certain web servers convert pages on-the-fly according to the
1887  User Agent header. Giving a <quote>User Agent</quote> with the wrong
1888  operating system or browser manufacturer causes some sites in these languages
1889  to be garbled; Surfers to Eastern European sites should change it to
1890  something closer. And then some page access counters work by looking at the
1891  <quote>Referer</quote> header; they may fail or break if unavailable. The
1892  weather maps of Intellicast have been blocked by their server when no
1893  <quote>Referer</quote> or cookie is provided, is another example. (But you
1894  can forge both headers without giving information away). There are
1895  many other ways things can go wrong when trying to fool a web server. The
1896  results of which could inadvertently cause pages to load incorrectly,
1897  partially, or even not at all. And there may be no obvious clues as to just
1898  what went wrong, or why. Nowhere will there be a message that says
1899  <quote><emphasis>Turn off <literal>fast-redirects</literal> or else!</emphasis>
1900  </quote>
1901 </para>
1902
1903 <para>
1904  Similar thoughts apply to modifying JavaScript, and, to a lesser degree,
1905  HTML elements.
1906 </para>
1907
1908 <para>
1909  If you have problems with a site, you will have to adjust your configuration
1910  accordingly. Cookies are probably the most likely adjustment that may
1911  be required, but by no means the only one.
1912 </para>
1913
1914 </sect2>
1915
1916
1917 <sect2 renderas="sect3" id="caching">
1918 <title>Can Privoxy act as a <quote>caching</quote> proxy to
1919 speed up web browsing?</title>
1920 <para>
1921  No, it does not have this ability at all. You want something like
1922  <ulink url="http://www.squid-cache.org/">Squid</ulink> or
1923  <ulink url="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</ulink> for this.
1924  And, yes, before you ask, <application>Privoxy</application> can co-exist
1925  with other kinds of proxies like <application>Squid</application>.
1926  See the <ulink url="../user-manual/config.html#FORWARDING">forwarding
1927  chapter</ulink> in the <ulink url="../user-manual/index.html">user
1928  manual</ulink> for details.
1929 </para>
1930 </sect2>
1931
1932 <sect2 renderas="sect3" id="firewall">
1933 <title>What about as a firewall? Can Privoxy protect me?</title>
1934 <para>
1935  Not in the way you mean, or in the way some firewall vendors claim they can.
1936  <application>Privoxy</application> can help protect your privacy, but can't
1937  protect your system from intrusion attempts. It is, of course, perfectly possible
1938  to use <emphasis>both</emphasis>.
1939 </para>
1940 </sect2>
1941
1942 <sect2 renderas="sect3" id="wasted">
1943 <title>I have large empty spaces / a checkerboard pattern now where
1944 ads used to be. Why?</title>
1945 <para>
1946  It is technically possible to eliminate banners and ads in a way that frees
1947  their allocated page space. This could easily be done by blocking with
1948  <application>Privoxy's</application> filters,
1949  and eliminating the <emphasis>entire</emphasis> image references from the
1950  HTML page source.
1951 </para>
1952 <para>
1953  But, this would consume considerably more CPU resources (IOW, slow things
1954  down), would likely destroy the layout of some web pages which rely on the
1955  banners utilizing a certain amount of page space, and might fail in other
1956  cases, where the screen space is reserved (e.g. by HTML tables for instance).
1957  Also, making ads and banners disappear without any trace complicates
1958  troubleshooting, and would sooner or later be problematic.
1959 </para>
1960 <para>
1961  The better alternative is to instead let them stay, and block the resulting
1962  requests for the banners themselves as is now the case. This leaves either
1963  empty space, or the familiar checkerboard pattern.
1964 </para>
1965 <para>
1966  So the developers won't support this in the default configuration, but you
1967  can of course define appropriate filters yourself to achieve this.
1968 </para>
1969 </sect2>
1970
1971 <sect2 renderas="sect3" id="ssl">
1972 <title>How can Privoxy filter Secure (HTTPS) URLs?</title>
1973 <para>
1974  Since secure HTTP connections are encrypted SSL sessions between your browser
1975  and the secure site, and are meant to be reliably <emphasis>secure</emphasis>,
1976  there is little that <application>Privoxy</application> can do but hand the raw
1977  gibberish data though from one end to the other unprocessed.
1978 </para>
1979 <para>
1980  The only exception to this is blocking by host patterns, as the client needs
1981  to tell <application>Privoxy</application> the name of the remote server,
1982  so that <application>Privoxy</application> can establish the connection.
1983  If that name matches a host-only pattern, the connection will be blocked.
1984 </para>
1985 <para>
1986  As far as ad blocking is concerned, this is less of a restriction than it may
1987  seem, since ad sources are often identifiable by the host name, and often
1988  the banners to be placed in an encrypted page come unencrypted nonetheless
1989  for efficiency reasons, which exposes them to the full power of
1990  <application>Privoxy</application>'s ad blocking.
1991 </para>
1992 <para>
1993  <quote>Content cookies</quote> (those that are embedded in the actual HTML or
1994  JS page content, see <literal><ulink
1995  url="../user-manual/actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</ulink></literal>),
1996  in an SSL transaction will be impossible to block under these conditions.
1997  Fortunately, this does not seem to be a very common scenario since most
1998  cookies come by traditional means.
1999 </para>
2000
2001 </sect2>
2002
2003 <sect2 renderas="sect3" id="secure">
2004 <title>Privoxy runs as a <quote>server</quote>. How
2005 secure is it? Do I need to take any special precautions?</title>
2006 <para>
2007  On Unix-like systems, <application>Privoxy</application> can run as a non-privileged
2008  user, which is how we recommend it be run. Also, by default
2009  <application>Privoxy</application> listens to requests from <quote>localhost</quote>
2010  only.
2011 </para>
2012 <para>
2013  The server aspect of <application>Privoxy</application> is not itself directly
2014  exposed to the Internet in this configuration. If you want to have
2015  <application>Privoxy</application> serve as a LAN proxy, this will have to
2016  be opened up to allow for LAN requests. In this case, we'd recommend
2017  you specify only the LAN gateway address, e.g. 192.168.1.1, in the main
2018  <application>Privoxy</application> configuration file and check all <ulink
2019  url="../user-manual/config.html#ACCESS-CONTROL">access control and security
2020  options</ulink>. All LAN hosts can then use this as their proxy address
2021  in the browser proxy configuration, but <application>Privoxy</application>
2022  will not listen on any external interfaces. ACLs can be defined in addition,
2023  and using a firewall is always good too. Better safe than sorry.
2024 </para>
2025
2026 </sect2>
2027
2028 <sect2 renderas="sect3" id="turnoff">
2029 <title>Can I temporarily disable Privoxy?</title>
2030 <para>
2031  &my-app; doesn't have a transparent proxy mode,
2032  but you can toggle off blocking and content filtering.
2033 </para>
2034 <para>
2035  The easiest way to do that is to point your browser
2036  to the remote toggle URL: <ulink
2037  url="http://config.privoxy.org/toggle">http://config.privoxy.org/toggle</ulink>.
2038 </para>
2039 <para>
2040  See the <ulink url="../user-manual/appendix.html#BOOKMARKLETS">Bookmarklets section</ulink>
2041  of the <citetitle>User Manual</citetitle> for an easy way to access this
2042  feature. Note that this is a feature that may need to be enabled in the main
2043  <filename>config</filename> file.
2044 </para>
2045 </sect2>
2046
2047
2048 <sect2 renderas="sect3" id="reallyoff">
2049 <title>When <quote>disabled</quote> is Privoxy totally
2050 out of the picture?</title>
2051 <para>
2052  No, this just means all optional filtering and actions are disabled.
2053  <application>Privoxy</application> is still acting as a proxy, but just
2054  doing less of the things that <application>Privoxy</application> would
2055  normally be expected to do. It is still a <quote>middle-man</quote> in
2056  the interaction between your browser and web sites. See below to bypass
2057  the proxy.
2058 </para>
2059 </sect2>
2060
2061 <sect2 renderas="sect3" id="turnoff2">
2062 <title>How can I tell Privoxy to totally ignore certain sites?</title>
2063 <para>
2064  Bypassing a proxy, or proxying based on arbitrary criteria, is purely a browser
2065  configuration issue, not a &my-app; issue. Modern browsers typically do have
2066  settings for not proxying certain sites. Check your browser's help files.
2067 </para>
2068 </sect2>
2069
2070
2071 <sect2 renderas="sect3" id="crunch">
2072 <title>My logs show Privoxy <quote>crunches</quote>
2073 ads, but also its own internal CGI pages. What is a <quote>crunch</quote>?</title>
2074 <para>
2075  A <quote>crunch</quote> simply means <application>Privoxy</application> intercepted
2076  <emphasis>something</emphasis>, nothing more. Often this is indeed ads or
2077  banners, but <application>Privoxy</application> uses the same mechanism for
2078  trapping requests for its own internal pages. For instance, a request for
2079  <application>Privoxy's</application> configuration page at: <ulink
2080  url="http://config.privoxy.org">http://config.privoxy.org</ulink>, is
2081  intercepted (i.e. it does not go out to the 'net), and the familiar CGI
2082  configuration is returned to the browser, and the log consequently will show
2083  a <quote>crunch</quote>.
2084 </para>
2085 <para>
2086  Since version 3.0.7, Privoxy will also log the crunch reason.
2087  If you are using an older version you might want to upgrade.
2088 </para>
2089 </sect2>
2090
2091 <sect2 renderas="sect3" id="downloads">
2092 <title>Can Privoxy affect files that I download
2093 from a webserver? FTP server?</title>
2094 <para>
2095  From the webserver's perspective, there is no difference between
2096  viewing a document (i.e. a page), and downloading a file. The same is true of
2097  <application>Privoxy</application>. If there is a match for a <literal><ulink
2098  url="../user-manual/actions-file.html#BLOCK">block</ulink></literal> pattern,
2099  it will still be blocked, and of course this is obvious.
2100  </para>
2101  <para>
2102  Filtering is potentially more of a concern since the results are not always
2103  so obvious, and the effects of filtering are there whether the file is simply
2104  viewed, or downloaded. And potentially whether the content is some obnoxious
2105  advertisement, or Mr. Jimmy's latest/greatest source code jewel. Of course,
2106  one of these presumably is <quote>bad</quote> content that we don't want, and
2107  the other is <quote>good</quote> content that we do want.
2108  <application>Privoxy</application> is blind to the differences, and can only
2109  distinguish <quote>good from bad</quote> by the configuration parameters
2110  <emphasis>we</emphasis> give it.
2111 </para>
2112 <para>
2113  <application>Privoxy</application> knows the differences in files according
2114  to the <quote>Content Type</quote> as reported by the webserver. If this is
2115  reported accurately (e.g. <quote>application/zip</quote> for a zip archive),
2116  then <application>Privoxy</application> knows to ignore these where
2117  appropriate. <application>Privoxy</application> potentially can filter HTML
2118  as well as plain text documents, subject to configuration parameters of
2119  course. Also, documents that are of an unknown type (generally assumed to be
2120  <quote>text/plain</quote>) can be filtered, as will those that might be
2121  incorrectly reported by the webserver. If such a file is a downloaded file
2122  that is intended to be saved to disk, then any content that might have been
2123  altered by filtering, will be saved too, for these (probably rare) cases.
2124 </para>
2125 <para>
2126  Note that versions later than 3.0.2 do NOT filter document types reported as
2127  <quote>text/plain</quote>. Prior to this, <application>Privoxy</application>
2128  did filter this document type.
2129 </para>
2130 <para>
2131  In short, filtering is <quote>ON</quote> if a) the content type as reported
2132  by the webserver is appropriate <emphasis>and</emphasis> b) the configuration
2133  allows it (or at least does not disallow it). That's it. There is no magic
2134  cookie anywhere to say this is <quote>good</quote> and this is
2135  <quote>bad</quote>. It's the configuration that lets it all happen or not.
2136 </para>
2137 <para>
2138  If you download text files, you probably do not want these to be filtered,
2139  particularly if the content is source code, or other critical content. Source
2140  code sometimes might be mistaken for Javascript (i.e. the kind that might
2141  open a pop-up window). It is recommended to turn off filtering for download
2142  sites (particularly if the content may be plain text files and you are using
2143  version 3.0.2 or earlier) in your <filename>user.action</filename> file. And
2144  also, for any site or page where making <emphasis>any</emphasis> changes at
2145  all to the content is to be avoided.
2146 </para>
2147 <para>
2148  <application>Privoxy</application> does not do FTP at all, only HTTP
2149  and HTTPS (SSL) protocols.
2150 </para>
2151 </sect2>
2152
2153 <sect2 renderas="sect3" id="downloads2">
2154 <title>I just downloaded a Perl script, and Privoxy
2155 altered it! Yikes, what is wrong!</title>
2156 <para>
2157  Please read above.
2158 </para>
2159 </sect2>
2160
2161 <sect2 renderas="sect3" id="hostsfile">
2162 <title>Should I continue to use a <quote>HOSTS</quote> file for ad-blocking?</title>
2163 <para>
2164  One time-tested technique to defeat common ads is to trick the local DNS
2165  system by giving a phony IP address for the ad generator in the local
2166  <filename>HOSTS</filename> file, typically using <literal>127.0.0.1</literal>, aka
2167  <literal>localhost</literal>. This effectively blocks the ad.
2168 </para>
2169 <para>
2170  There is no reason to use this technique in conjunction with
2171  <application>Privoxy</application>. <application>Privoxy</application>
2172  does essentially the same thing, much more elegantly and with much more
2173  flexibility. A large <filename>HOSTS</filename> file, in fact, not only
2174  duplicates effort, but may get in the way and seriously slow down your system.
2175  It is recommended to remove such entries from your <filename>HOSTS</filename> file. If you think
2176  your hosts list is neglected by <application>Privoxy's </application>
2177  configuration, consider adding your list to your <filename>user.action</filename> file:
2178 </para>
2179 <para>
2180  <screen>
2181   { +block }
2182    www.ad.example1.com
2183    ad.example2.com
2184    ads.galore.example.com
2185    etc.example.com</screen>
2186 </para>
2187 </sect2>
2188
2189 <sect2 renderas="sect3" id="seealso">
2190 <title>Where can I find more information about Privoxy
2191 and related issues?</title>
2192 <!-- Include seealso.sgml boilerplate: -->
2193  &seealso;
2194 <!-- end boilerplate -->
2195
2196 <!--
2197 <para>
2198  Please see the
2199  <ulink url="../user-manual/seealso.html">user-manual</ulink> for
2200  others references.
2201 </para>
2202 -->
2203 </sect2>
2204
2205 <sect2 renderas="sect3" id="microsuck">
2206 <title>I've noticed that Privoxy changes <quote>Microsoft</quote> to
2207 <quote>MicroSuck</quote>! Why are you manipulating my browsing?</title>
2208
2209 <para>
2210  We're not. The text substitutions that you are seeing are disabled
2211  in the default configuration as shipped. You have either manually
2212  activated the <quote><literal>fun</literal></quote> filter which
2213  is clearly labeled <quote>Text replacements for subversive browsing
2214  fun!</quote> or you are using an older Privoxy version and have implicitly
2215  activated it by choosing the <quote>Advanced</quote> profile in the
2216  web-based editor. Please upgrade.
2217 </para>
2218 </sect2>
2219
2220 <sect2 renderas="sect3" id="valid">
2221 <title>Does Privoxy produce <quote>valid</quote> HTML (or XHTML)?</title>
2222
2223 <para>
2224  Privoxy generates HTML in both its own <quote>templates</quote>, and possibly
2225  whenever there are text substitutions via a &my-app; filter. While this
2226  should always conform to the HTML 4.01 specifications, it has not been
2227  validated against this or any other standard.
2228 </para>
2229 </sect2>
2230
2231 <sect2 renderas="sect3" id="surprise-privoxy">
2232 <title>How did you manage to get Privoxy on my computer without my consent?</title>
2233
2234 <para>
2235  We didn't. We make Privoxy available for download, but we don't go
2236  around installing it on other people's systems behind their back.
2237  If you discover Privoxy running on your system and are sure you didn't
2238  install it yourself, somebody else did. You may not even be running
2239  the real Privoxy, but maybe something else that only pretends to be
2240  Privoxy, or maybe something that is based on the real Privoxy,
2241  but has been modified.
2242 </para>
2243 <para>
2244  Lately there have been reports of problems with some kind of
2245  "parental control" software based on Privoxy that came preinstalled on
2246  certain <ulink url="https://sourceforge.net/p/ijbswa/bugs/813/">ASUS Netbooks</ulink>.
2247  The problems described are inconsistent with the behaviour of official
2248  Privoxy versions, which suggests that the preinstalled software may
2249  contain vendor modifications that we don't know about and thus can't debug.
2250 </para>
2251 <para>
2252  Privoxy's <link linkend="copyright">license</link> allows vendor
2253  modifications, but the vendor has to comply with the license,
2254  which involves informing the user about the changes and to make
2255  the changes available under the same license as Privoxy itself.
2256 </para>
2257 <para>
2258  If you are having trouble with a modified Privoxy version,
2259  please try to talk to whoever made the modifications before
2260  reporting the problem to us. Please also try to convince
2261  whoever made the modifications to talk to us.  If you think
2262  somebody gave you a modified Privoxy version without complying
2263  to the license, please let us know.
2264 </para>
2265 </sect2>
2266
2267
2268 </sect1>
2269
2270
2271 <!--   ~~~~~       New section      ~~~~~     -->
2272
2273 <sect1 id="trouble">
2274 <title>Troubleshooting</title>
2275
2276 <sect2 renderas="sect3" id="refused">
2277 <title>I cannot connect to any websites. Or, I am getting
2278 <quote>connection refused</quote> message with every web page. Why?</title>
2279 <para>
2280  There are several possibilities:
2281 </para>
2282 <para>
2283 <itemizedlist>
2284 <listitem><para>
2285 <application>Privoxy</application> is not running. Solution: verify
2286  that &my-app; is installed correctly, has not crashed, and is indeed running.
2287  Turn on <application>Privoxy's</application> logging, and look at the logs to see what they say.
2288 </para></listitem>
2289  <listitem><para>Or your browser is configured for a different port than what
2290  <application>Privoxy</application> is using. Solution: verify that &my-app;
2291  and your browser are set to the same port (<literal>listen-address</literal>).
2292 </para></listitem>
2293  <listitem><para>Or if using a forwarding rule, you have a configuration problem or a
2294  problem with a host in the forwarding chain. Solution: temporarily alter your
2295  configuration and take the forwarders out of the equation.
2296 </para></listitem>
2297  <listitem><para>
2298   Or you have a firewall that is interfering and blocking you. Solution:
2299   try disabling or removing the firewall as a simple test.
2300  </para></listitem>
2301 </itemizedlist>
2302 </para>
2303
2304 </sect2>
2305
2306 <!--   ~~~~~       New section      ~~~~~     -->
2307 <sect2 renderas="sect3" id="error503">
2308 <title>Why am I getting a 503 Error (WSAECONNREFUSED) on every page?</title>
2309  <para>
2310   More than likely this is a problem with your TCP/IP networking. ZoneAlarm has
2311   been reported to cause this symptom -- even if not running! The solution is
2312   to either fight the ZA configuration, or uninstall ZoneAlarm, and then find
2313   something better behaved in its place. Other personal firewall type products
2314   may cause similar type problems if not configured correctly.
2315  </para>
2316 </sect2>
2317
2318 <sect2 renderas="sect3" id="flushit">
2319 <title>I just added a new rule, but the steenkin ad is
2320 still getting through. How?</title>
2321 <para>
2322  If the ad had been displayed before you added its URL, it will probably be
2323  held in the browser's cache for some time, so it will be displayed without
2324  the need for any request to the server, and <application>Privoxy</application>
2325  will not be involved. Flush the browser's caches, and then try again.
2326 </para>
2327
2328 <para>
2329  If this doesn't help, you probably have an error in the rule you
2330  applied. Try pasting the full URL of the offending ad into <ulink
2331  url="http://config.privoxy.org/show-url-info">http://config.privoxy.org/show-url-info</ulink>
2332  and see if it really matches your new rule. Blocking ads is like blocking
2333  spam: a lot of tinkering is required to stay ahead of the game. And
2334  remember you need to block the URL of the ad in question, which may be
2335  entirely different from the site URL itself. Most ads are hosted on different
2336  servers than the main site itself. If you right-click on the ad, you should
2337  be able to get all the relevant information you need. Alternately, you can
2338  find the correct URL by looking at <application>Privoxy's</application> logs
2339  (you may need to enable logging in the main config file if its disabled).
2340 </para>
2341 <para>
2342  Below is a slightly modified real-life log snippet that originates with one
2343  requested URL: <literal>www.example.com</literal> (name of site was changed
2344  for this example, the number of requests is real). You can see in this the
2345  complexity of what goes into making up this one <quote>page</quote>. There
2346  are eight different domains involved here, with thirty two separate URLs
2347  requested in all, making up all manner of images, Shockwave Flash,
2348  JavaScript, CSS stylesheets, scripts, and other related content. Some of this
2349  content is obviously <quote>good</quote> or <quote>bad</quote>, but not all.
2350  Many of the more questionable looking requests, are going to outside domains
2351  that seem to be identifying themselves with suspicious looking names, making
2352  our job a little easier. &my-app; has <quote>crunched</quote> (meaning caught
2353  and BLOCKED) quite a few items in this example, but perhaps missed a few as well.
2354 </para>
2355 <para>
2356 <screen>
2357 <![CDATA[
2358 Request: www.example.com/
2359 Request: www.example.com/favicon.ico
2360 Request: img.example.com/main.css
2361 Request: img.example.com/sr.js
2362 Request: example.betamarker.com/example.html
2363 Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
2364 Request: img.example.com/pb.png
2365 Request: www.google-analytics.com/urchin.js crunch! (Blocked)
2366 Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
2367 Request: img.example.com/p.gif
2368 Request: www.popuptraffic.com/assign.php?l=example&mode=behind crunch! (Blocked)
2369 Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&tmpl=PBa.tmpl crunch! (Blocked)
2370 Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
2371 Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
2372 Request: www.adtrak.net/adx.js crunch! (Blocked)
2373 Request: img.example.com/hbg.gif
2374 Request: img.example.com/example.jpg
2375 Request: img.example.com/mt.png
2376 Request: img.example.com/mm.png
2377 Request: img.example.com/mb.png
2378 Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&tmpl=Ua.tmp crunch! (Blocked)
2379 Request: www.example.com/tracker.js
2380 Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
2381 Request: www.adtrak.net/adjs.php?n=020548130&what=zone:61 crunch! (Blocked)
2382 Request: www.adtrak.net/adjs.php?n=463594413&what=zone:58&source=Ua crunch! (Blocked)
2383 Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
2384 Request: mmm.elitemediagroup.net/install.php?allowpop=no&popupmincook=0&allowsp2=1 crunch! (Blocked)
2385 Request: www.example.com/tracker.js?screen=1400x1050&win=962x693
2386 Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=61 crunch! (Blocked)
2387 Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&si
2388 Request: 66.70.21.80/img/pixel.gif
2389 Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=58&source=Ua&block=86400 crunch! (Blocked)
2390 Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
2391 ]]>
2392 </screen>
2393 </para>
2394 <para>
2395  Despite 12 out of 32 requests being blocked, the page looked, and seemed to
2396  behave perfectly <quote>normal</quote> (minus some ads, of course).
2397 </para>
2398
2399 </sect2>
2400
2401 <sect2 renderas="sect3" id="badsite">
2402 <title>One of my favorite sites does not work with Privoxy.
2403 What can I do?</title>
2404
2405 <para>
2406  First verify that it is indeed a <application>Privoxy</application> problem,
2407  by toggling off <application>Privoxy</application> through <ulink
2408  url="http://config.privoxy.org/toggle">http://config.privoxy.org/toggle</ulink>
2409  (the toggle feature may need to be enabled in the main
2410  <filename>config</filename>),
2411  and then shift-reloading the problem page (i.e. holding down the shift key
2412  while clicking reload. Alternatively, flush your browser's disk and memory
2413  caches).
2414 </para>
2415
2416 <para>
2417  If the problem went away, we know we have a configuration related problem.
2418  Now go to <ulink
2419  url="http://config.privoxy.org/show-url-info">http://config.privoxy.org/show-url-info</ulink>
2420  and paste the full URL of the page in question into the prompt. See which
2421  actions are being applied to the URL, and which matches in which actions
2422  files are responsible for that. It might be helpful also to look at your logs
2423  for this site too, to see what else might be happening (note: logging may need
2424  to be enabled in the main config file). Many sites are
2425  complex and require a number of related pages to help present their content.
2426  Look at what else might be used by the page in question, and what of that
2427  might be <emphasis>required</emphasis>.
2428  Now, armed with this information, go to
2429  <ulink
2430  url="http://config.privoxy.org/show-status">http://config.privoxy.org/show-status</ulink>
2431  and select the appropriate actions files for editing. </para>
2432 <para>
2433  You can now either look for a section which disables the actions that
2434  you suspect to cause the problem and add a pattern for your site there,
2435  or make up a completely new section for your site. In any case, the recommended
2436  way is to disable only the prime suspect, reload the problem page, and only
2437  if the problem persists, disable more and more actions until you have
2438  identified the culprit. You may or may not want to turn the other actions
2439  on again. Remember to flush your browser's caches in between any such changes!
2440 </para>
2441 <para>
2442  Alternately, if you are comfortable with a text editor, you can accomplish
2443  the same thing by editing the appropriate actions file. Probably the easiest
2444  way to deal with such problems when editing by hand is to add your
2445  site to a <literal>{ fragile }</literal> section in <filename>user.action</filename>,
2446  which is an alias that turns off most <quote>dangerous</quote>
2447  actions, but is also likely to turn off more actions then needed, and thus lower
2448  your privacy and protection more than necessary,
2449 </para>
2450 <para>
2451  Troubleshooting actions is discussed in more detail in the <ulink
2452  url="../user-manual/appendix.html#ACTIONSANAT">User Manual appendix,
2453  Troubleshooting: the Anatomy of an Action</ulink>.
2454  There is also an <ulink
2455  url="../user-manual/actions-file.html#ACT-EXAMPLES">actions tutorial</ulink>
2456  with general configuration information and examples.
2457 </para>
2458 <para>
2459  As a last resort, you can always see if your browser has a setting that will
2460  bypass the proxy setting for selective sites. Modern browsers can do this.
2461 </para>
2462
2463 </sect2>
2464
2465
2466 <!--   ~~~~~       New section      ~~~~~     -->
2467 <sect2 id="dun" renderas="sect3">
2468 <title>After installing Privoxy, I have to log in
2469 every time I start IE. What gives?</title>
2470
2471 <para>
2472  This is a quirk that affects the installation of
2473  <application>Privoxy</application>, in conjunction with Internet Explorer and
2474  Internet Connection Sharing on Windows 2000 and Windows XP. The symptoms may
2475  appear to be corrupted or invalid DUN settings, or passwords.
2476 </para>
2477
2478 <para>
2479  When setting up an NT based Windows system with
2480  <application>Privoxy</application> you may find that things do not seem to be
2481  doing what you expect. When you set your system up you will probably have set
2482  up Internet Connection Sharing (ICS) with Dial up Networking (DUN) when
2483  logged in with administrator privileges. You will probably have made this DUN
2484  connection available to other accounts that you may have set-up on your
2485  system. E.g. Mum or Dad sets up the system and makes accounts suitably
2486  configured for the kids.
2487 </para>
2488
2489 <para>
2490  When setting up <application>Privoxy</application> in this environment you
2491  will have to alter the proxy set-up of Internet Explorer (IE) for the
2492  specific DUN connection on which you wish to use
2493  <application>Privoxy</application>. When you do this the ICS DUN set-up
2494  becomes user specific. In this instance you will see no difference if you
2495  change the DUN connection under the account used to set-up the connection.
2496  However when you do this from another user you will notice that the DUN
2497  connection changes to make available to "Me only". You will also find that
2498  you have to store the password under each different user!
2499 </para>
2500
2501 <para>
2502  The reason for this is that each user's set-up for IE is user specific. Each
2503  set-up DUN connection and each LAN connection in IE store the settings for
2504  each user individually. As such this enforces individual configurations
2505  rather than common ones. Hence the first time you use a DUN connection after
2506  re-booting your system it may not perform as you expect, and prompt you for
2507  the password. Just set and save the password again and all should be OK.
2508 </para>
2509
2510 <para>
2511 [Thanks to Ray Griffith for this submission.]
2512 </para>
2513 </sect2>
2514
2515
2516 <!--   ~~~~~       New section      ~~~~~     -->
2517 <sect2 id="ftp" renderas="sect3">
2518 <title>I cannot connect to any FTP sites. Privoxy
2519  is blocking me.</title>
2520  <para>
2521   <application>Privoxy</application> cannot act as a proxy for FTP traffic,
2522   so do not configure your browser to use <application>Privoxy</application>
2523   as an FTP proxy. The same is true for <emphasis>any protocol other than HTTP
2524   or HTTPS (SSL)</emphasis>.
2525  </para>
2526  <para>
2527   Most browsers understand FTP as well as HTTP. If you connect to a site, with
2528   a URL like <literal>ftp://ftp.example.com</literal>, your browser is making
2529   an FTP connection, and not a HTTP connection. So while your browser may
2530   speak FTP, <application>Privoxy</application> does not, and cannot proxy
2531   such traffic.
2532  </para>
2533  <para>
2534   To complicate matters, some systems may have a generic <quote>proxy</quote>
2535   setting, which will enable various protocols, including
2536   <emphasis>both</emphasis> HTTP and FTP proxying! So it is possible to
2537   accidentally enable FTP proxying in these cases. And of course, if this
2538   happens, <application>Privoxy</application> will indeed cause problems since
2539   it does not know FTP. <![%p-newstuff;[Newer version will give a sane error
2540   message if a FTP connection is attempted.]]> Just disable the FTP setting
2541   and all will be well again.
2542  </para>
2543  <para>
2544   Will <application>Privoxy</application> ever proxy FTP traffic? Unlikely.
2545   There just is not much reason, and the work to make this happen is more than
2546   it may seem.
2547  </para>
2548 </sect2>
2549
2550 <!--   ~~~~~       New section      ~~~~~     -->
2551 <sect2 id="macosxie" renderas="sect3">
2552 <title>In Mac OS X, I can't configure Microsoft Internet Explorer to use
2553  Privoxy as the HTTP proxy.</title>
2554  <para>
2555   Microsoft Internet Explorer (in versions like 5.1) respects system-wide
2556   network settings.  In order to change the HTTP proxy, open System
2557   Preferences, and click on the Network icon.  In the settings pane that
2558   comes up, click on the Proxies tab.  Ensure the "Web Proxy (HTTP)" checkbox
2559   is checked and enter <literal>127.0.0.1</literal> in the entry field.
2560   Enter <literal>8118</literal> in the Port field.  The next time you start
2561   IE, it should reflect these values.
2562  </para>
2563 </sect2>
2564
2565 <!--   ~~~~~       New section      ~~~~~     -->
2566 <sect2 renderas="sect3" id="macosxuninstall">
2567 <title>In Mac OS X, I dragged the Privoxy folder to the trash in order to
2568  uninstall it. Now the finder tells me I don't have sufficient privileges to
2569  empty the trash.</title>
2570  <para>
2571  Note: This ONLY applies to privoxy 3.0.6 and earlier.
2572  </para>
2573  <para>
2574   Just dragging the <application>Privoxy</application> folder to the trash is
2575   not enough to delete it. <application>Privoxy</application> supplies an
2576   <application>uninstall.command</application> file that takes care of
2577   these details. Open the trash, drag the <application>uninstall.command</application>
2578   file out of the trash and double-click on it. You will be prompted for
2579   confirmation and the administration password.
2580  </para>
2581  <para>
2582   The trash may still appear full after this command; emptying the trash
2583   from the desktop should make it appear empty again.
2584  </para>
2585 </sect2>
2586
2587 <!--   ~~~~~       New section      ~~~~~     -->
2588 <sect2 renderas="sect3" id="macosximages">
2589 <title>In Mac OS X Panther (10.3), images often fail to load and/or I
2590  experience random delays in page loading. I'm using
2591  <literal>localhost</literal> as my browser's proxy setting.</title>
2592  <para>
2593   We believe this is due to an IPv6-related bug in Mac OS X, but don't fully
2594   understand the issue yet. In any case, changing the proxy setting to
2595   <literal>127.0.0.1</literal> instead of <literal>localhost</literal>
2596   works around the problem.
2597  </para>
2598 </sect2>
2599
2600 <!--   ~~~~~       New section      ~~~~~     -->
2601 <sect2 renderas="sect3" id="macosxaccountdeletion">
2602 <title>I just upgraded to Mac OS X 10.9 (Mavericks) and now &my-app; has stopped
2603  working.</title>
2604  <para>
2605   The upgrade process to Mac OS X Mavericks (10.9) from an earlier version of OS
2606   X deletes all user accounts that are either not part of OS X itself or are
2607   not interactive user accounts (ones you log in with). Since, for the sake of
2608   security, &my-app; runs as a non-privileged user that is created by its
2609   installer (_privoxy), it can no longer start up once that account gets deleted.
2610   The solution is to perform a complete uninstall using the supplied
2611   <application>uninstall.command</application> script (either back up your
2612   configuration files or select to not have the uninstaller remove them when it
2613   prompts you) and then reinstall &my-app; using the installer package and merge
2614   in your configuration.
2615  </para>
2616 </sect2>
2617
2618 <sect2 renderas="sect3" id="nohostname">
2619 <title>My logs show many <quote>Unable to get my own hostname</quote> lines.
2620 Why?</title>
2621 <para>
2622  <application>Privoxy</application> tries to get the hostname of the system
2623  its running on from the IP address of the system interface it is bound to
2624  (from the <filename>config</filename> file
2625  <emphasis>listen-address</emphasis> setting). If the system cannot supply
2626  this information, <application>Privoxy</application> logs this condition.
2627 </para>
2628 <para>
2629  Typically, this would be considered a minor system configuration error. It is
2630  not a fatal error to <application>Privoxy</application> however, but may
2631  result in a much slower response from <application>Privoxy</application> on
2632  some platforms due to DNS timeouts.
2633 </para>
2634 <para>
2635  This can be caused by a problem with the local <filename>hosts</filename>
2636  file. If this file has been changed from the original, try reverting it to
2637  see if that helps. Make sure whatever name(s) are used for the local system,
2638  that they resolve both ways.
2639 </para>
2640 <para>
2641  You should also be able to work around the problem with the
2642  <ulink url="../user-manual/config.html#HOSTNAME">hostname option</ulink>.
2643 </para>
2644 </sect2>
2645
2646 <sect2 renderas="sect3" id="inuse">
2647 <title>When I try to launch Privoxy, I get an
2648 error message <quote>port 8118 is already in use</quote> (or similar wording).
2649 Why?</title>
2650 <para>
2651  Port 8118 is <application>Privoxy's</application> default TCP
2652  <quote>listening</quote> port. Typically this message would mean that there
2653  is already one instance of <application>Privoxy</application> running, and
2654  your system is actually trying to start a second
2655  <application>Privoxy</application> on the same port, which will not work.
2656  (You can have multiple instances but they must be assigned different ports.)
2657  How and why this might happen varies from platform to platform, but you need
2658  to check your installation and start-up procedures.
2659 </para>
2660 </sect2>
2661
2662 <sect2 renderas="sect3" id="demoronizer">
2663 <title>
2664  Pages with UTF-8 fonts are garbled.
2665 </title>
2666 <para>
2667  This may be the result of an overly aggressive filter. The filters that
2668  are enabled in the default configuration aren't expected to cause problems
2669  like this. If you enabled the <quote>demoronizer</quote> filter, please
2670  try temporarily disabling it.
2671 </para>
2672 <para>
2673  If that doesn't help, temporarily disable all filters to see if another
2674  filter could be the culprit. If the problem disappears, enable the filters
2675  one by one, until the problem reappears and the offending filter is found.
2676 </para>
2677 <para>
2678  Once the problem-causing filter is known, it can be fixed or disabled.
2679 </para>
2680 <para>
2681  Upgrading <application>Privoxy</application>, or going to the most recent
2682  <filename>default.action</filename> file available from <ulink
2683  url="https://sourceforge.net/project/showfiles.php?group_id=11118">SourceForge</ulink>
2684  might be worth a try, too.
2685 </para>
2686 </sect2>
2687
2688 <sect2 renderas="sect3" id="demoronizer2">
2689 <title>
2690  Why are binary files (such as images) corrupted when Privoxy
2691  is used?
2692 </title>
2693 <para>
2694  This may also be caused by an (<link linkend="DEMORONIZER">overly aggressive
2695  filter</link> in conjunction with a web server that is misreporting the content
2696  type. By default binary files are exempted from
2697  <application>Privoxy's</application> filtering
2698  (unless the web server by mistake says the file is something else).
2699 </para>
2700 </sect2>
2701
2702 <sect2 renderas="sect3" id="demoronizer3">
2703 <title>
2704  What is the <quote>demoronizer</quote> and why is it there?
2705 </title>
2706 <para>
2707  The original demoronizer was a Perl script that cleaned up HTML pages which
2708  were created with certain Microsoft products. MS has used proprietary extensions
2709  to standardized font encodings (ISO 8859-1), which has caused problems for pages
2710  that are viewed with non-Microsoft products (and are expecting to see a
2711  standard set of fonts). The demoronizer corrected these errors so the pages
2712  displayed correctly. <application>Privoxy</application> borrowed from this
2713  script, introducing a filter based on the original demoronizer, which in turn could
2714  correct these errors on the fly.
2715 </para>
2716 <para>
2717  But this is only needed in some situations, and will cause serious problems in some
2718  other situations.
2719 </para>
2720 <para>
2721  If you are using Microsoft products, you do not need it. If you need to view
2722  pages with UTF-8 characters (such as Cyrillic or Chinese), then it will
2723  cause corruption of the fonts, and thus <emphasis>should not be on</emphasis>.
2724 </para>
2725 <para>
2726  On the other hand, if you use non-Microsoft products, and you occasionally
2727  notice weird characters on pages, you might want to try it.
2728 </para>
2729 </sect2>
2730
2731 <sect2 renderas="sect3" id="windowopen">
2732 <title>
2733  Why do I keep seeing <quote>PrivoxyWindowOpen()</quote> in raw source code?
2734 </title>
2735 <para>
2736  <application>Privoxy</application> is attempting to disable malicious
2737   <ulink url="http://en.wikipedia.org/wiki/Javascript">Javascript</ulink>
2738   in this case, with the <literal>unsolicited-popups</literal>
2739  filter. <application>Privoxy</application> cannot tell very well
2740  <quote>good</quote> code snippets from <quote>bad</quote> code snippets.
2741 </para>
2742 <para>
2743  If you see this in HTML source, and the page displays without problems, then
2744  this is good, and likely some pop-up window was disabled. If you see this
2745  where it is causing a problem, such as a downloaded program source code file,
2746  then you should set an exception for this site or page such that the
2747  integrity of the page stays in tact by disabling all filtering.
2748 </para>
2749 </sect2>
2750
2751 <sect2 renderas="sect3" id="dnserrors">
2752 <title>
2753  I am getting too many DNS errors like <quote>404 No Such Domain</quote>. Why
2754  can't Privoxy do this better?
2755 </title>
2756 <para>
2757  There are potentially several factors here. First of all, the DNS resolution
2758  is done by the underlying operating system -- not
2759  <application>Privoxy</application> itself. <application>Privoxy</application>
2760  merely initiates the process and hands it off, and then later reports
2761  whatever the outcome was and tries to give a coherent message if there seems
2762  to be a problem. In some cases, this might otherwise be mitigated by the
2763  browser itself which might try some work-arounds and alternate approaches (e.g
2764  adding <quote>www.</quote> to the URL).
2765 </para>
2766 <para>
2767  In other cases, if <application>Privoxy</application> is being chained
2768  with another proxy, this could complicate the issue, and cause undue
2769  delays and timeouts. In the case of a <quote>socks4a</quote> proxy, the socks
2770  server handles all the DNS.  <application>Privoxy</application> would just be
2771  the <quote>messenger</quote> which is reporting whatever problem occurred
2772  downstream, and not the root cause of the error.
2773 </para>
2774 <![%p-newstuff;[
2775 <para>
2776  In any case, versions newer than 3.0.3 include various improvements to help
2777  <application>Privoxy</application> better handle these cases.
2778 </para>]]>
2779 </sect2>
2780
2781 <sect2 renderas="sect3" id="allcpu">
2782 <title>
2783  At one site Privoxy just hangs, and starts taking
2784  all CPU. Why is this?
2785 </title>
2786 <para>
2787  This is probably a manifestation of the <quote>100% cpu</quote> problem that
2788  occurs on pages containing many (thousands upon thousands) of blank lines. The blank lines
2789  are in the raw HTML source of the page, and the browser just ignores them. But the
2790  pattern matching in <application>Privoxy's</application> page filtering
2791  mechanism is trying to match against absurdly long strings and this becomes
2792  very CPU-intensive, taking a long, long time to complete.
2793 </para>
2794 <para>
2795  Until a better solution comes along, disable filtering on these pages,
2796  particularly the <literal>js-annoyances</literal> and
2797  <literal>unsolicited-popups</literal> filters. If you run into this problem
2798  with a recent &my-app; version, please send a problem report.
2799 </para>
2800 </sect2>
2801
2802 <sect2 renderas="sect3" id="slowcrawl">
2803 <title>I just installed Privoxy, and all my
2804 browsing has slowed to a crawl. What gives? </title>
2805 <para>
2806  This should not happen, and for the overwhelming number of users world-wide,
2807  it does not happen. I would suspect some inadvertent interaction of software
2808  components such as anti-virus software, spyware protectors, personal
2809  firewalls or similar components. Try disabling (or uninstalling) these one
2810  at a time and see if that helps. Either way, if you are using a
2811  recent &my-app; version, please report the problem.
2812 </para>
2813 </sect2>
2814
2815 <sect2 renderas="sect3" id="preventcomp">
2816 <title>Why do my filters work on some sites but not on others? </title>
2817 <para>
2818  It's probably due to compression. It is a common practice for web servers to
2819  send their content <quote>compressed</quote> in order to speed things up, and
2820  then let the browser <quote>uncompress</quote> them. When compiled with zlib support
2821  &my-app; can decompress content before filtering, otherwise you may want to enable
2822 <ulink
2823  url="../user-manual/actions-file.html#PREVENT-COMPRESSION">prevent-compression</ulink>.
2824 </para>
2825 <para>
2826  As of &my-app; 3.0.9, zlib support is enabled in the default builds.
2827 </para>
2828 </sect2>
2829
2830
2831 <sect2 renderas="sect3" id="ssl-warnings">
2832 <title>On some HTTPS sites my browser warns me about unauthenticated content,
2833  the URL bar doesn't get highlighted and the lock symbol appears to be broken.
2834  What's going on?</title>
2835 <para>
2836  Probably the browser is requesting ads through HTTPS and &my-app;
2837  is blocking the requests. Privoxy's error messages are delivered
2838  unencrypted and while it's obvious for the browser that the HTTPS
2839  request is already blocked by the proxy, some warn about unauthenticated
2840  content anyway.
2841 </para>
2842 <para>
2843  To work around the problem you can redirect those requests to an invalid
2844  local address instead of blocking them. While the redirects aren't
2845  encrypted either, many browsers don't care. They simply follow the
2846  redirect, fail to reach a server and display an error message instead
2847  of the ad.
2848 </para>
2849 <para>
2850  To do that, enable logging to figure out which requests get blocked by
2851  &my-app; and add the hosts (no path patterns) to a section like this:
2852 </para>
2853 <para>
2854 <screen>
2855 <![CDATA[
2856 {+redirect{http://127.0.0.1:0/} -block -limit-connect}
2857 .ivwbox.de:443/
2858 ]]>
2859 </screen>
2860 </para>
2861 <para>
2862  Additionally you have to configure your browser to contact
2863  <quote>127.0.0.1:0</quote> directly (instead of through &my-app;).
2864 </para>
2865 <para>
2866  To add a proxy exception in <application>Mozilla Firefox</application>
2867  open the <quote>Preferences</quote>, click the <quote>Settings</quote>
2868  button located on the <quote>Network</quote> tab in the <quote>Advanced</quote>
2869  section, and add <quote>127.0.0.1:0</quote> in the <quote>No Proxy for:</quote>
2870  field.
2871 </para>
2872 </sect2>
2873
2874
2875 <sect2 renderas="sect3" id="se-linux">
2876 <title>I get selinux error messages. How can I fix this?</title>
2877 <para>
2878  Please report the problem to the creator of your selinux policies.
2879 </para>
2880 <para>
2881  The problem is that some selinux policy writers aren't familiar
2882  with the application they are trying to <quote>secure</quote> and
2883  thus create policies that make no sense.
2884 </para>
2885 <para>
2886  In <application>Privoxy's</application> case the problem usually
2887  is that the policy only allows outgoing connections for certain
2888  destination ports (e.g. 80 and 443). While this may cover the
2889  standard ports, websites occasionally use other ports as well.
2890  This isn't a security problem and therefore <application>Privoxy's</application>
2891  default configuration doesn't block these requests.
2892 </para>
2893 <para>
2894  If you really want to block these ports (and don't be able
2895  to load websites that don't use standard ports), you should
2896  configure Privoxy to block these ports as well, so it doesn't
2897  trigger the selinux warnings.
2898 </para>
2899 </sect2>
2900
2901
2902 <sect2 renderas="sect3" id="gentoo-ricers">
2903 <title>I compiled &my-app; with Gentoo's portage and it appears to be very slow. Why?</title>
2904 <para>
2905  Probably you unintentionally compiled &my-app; without threading support
2906  in which case requests have to be serialized and only one can be served
2907  at the same time.
2908 </para>
2909 <para>
2910  Check your <quote>USE</quote> flags and make sure they include
2911  <quote>threads</quote>. If they don't, add the flag and rebuild &my-app;.
2912 </para>
2913 <para>
2914  If you compiled &my-app; with threading support (on POSIX-based systems),
2915  the <quote>Conditional #defines</quote> section on <ulink
2916  url="http://config.privoxy.org/show-status">http://config.privoxy.org/show-status</ulink>
2917  will list <quote>FEATURE_PTHREAD</quote> as <quote>enabled</quote>.
2918 </para>
2919 </sect2>
2920
2921 <sect2 renderas="sect3" id="tainted-sockets">
2922 <title>What are tainted sockets and how do I prevent them?</title>
2923 <para>
2924  &my-app; marks sockets as tainted when it can't use them to
2925  serve additional requests.
2926  This does not necessarily mean that something went wrong and
2927  information about tainted sockets is only logged if connection
2928  debugging is enabled (debug 2).
2929 </para>
2930 <para>
2931  For example server sockets that were used for CONNECT requests
2932  (which are used to tunnel https:// requests) are considered tainted
2933  once the client closed its connection to &my-app;.
2934  Technically &my-app; could keep the connection to the server open,
2935  but the server would not accept requests that do not belong to the
2936  previous TLS/SSL session (and the client may even have terminated
2937  the session).
2938 </para>
2939 <para>
2940  Server sockets are also marked tainted when a client requests a
2941  resource, but closes the connection before &my-app; has completely
2942  received (and forwarded) the resource to the client.
2943  In this case the server would (probably) accept additional requests,
2944  but &my-app; could not get the response without completely reading
2945  the leftovers from the previous response.
2946 </para>
2947 <para>
2948  These are just two examples, there are currently a bit more than
2949  25 scenarios in which a socket is considered tainted.
2950 </para>
2951 <para>
2952  While sockets can also be marked tainted as a result of a technical
2953  problem that may be worth fixing, the problem will be explicitly
2954  logged as error.
2955 </para>
2956 </sect2>
2957
2958 <sect2 renderas="sect3" id="pcre-stack-limit">
2959 <title>After adding my custom filters, &my-app; crashes when visitting certain websites</title>
2960 <para>
2961  This can happen if your custom filters require more memory than &my-app;
2962  is allowed to use.
2963  Usually the problem is that the operating system enforces a stack size limit
2964  that isn't sufficient.
2965 </para>
2966 <para>
2967  Unless the problem occurs with the filters available in the default configuration,
2968  this is not considered a Privoxy bug.
2969 </para>
2970 <para>
2971  To prevent the crashes you can rewrite your filter to use less ressources,
2972  increase the relevant memory limit or recompile pcre to use less stack space.
2973  For details please see the
2974  <ulink url="http://pcre.org/original/doc/html/pcrestack.html">pcrestack man page</ulink>
2975  and the documentation of your operating system.
2976 </para>
2977
2978 </sect1>
2979
2980   <!--   ~~~~~       New section      ~~~~~     -->
2981   <sect1 id="contact"><title>Contacting the developers, Bug Reporting and Feature Requests</title>
2982 <!-- Include contacting.sgml  -->
2983  &contacting;
2984 <!-- end contacting -->
2985   </sect1>
2986
2987 <!--   ~~~~~       New section      ~~~~~     -->
2988 <sect1 id="copyright"><title>Privoxy Copyright, License and History</title>
2989
2990  <!-- Include copyright.sgml -->
2991   &copyright;
2992  <!-- end -->
2993
2994
2995   <para>
2996    Portions of this document are <quote>borrowed</quote> from the original
2997    <application>Junkbuster</application> (tm) FAQ, and modified as
2998    appropriate for <application>Privoxy</application>.
2999   </para>
3000
3001  <!--   ~~~~~       New section      ~~~~~     -->
3002  <sect2><title>License</title>
3003  <!-- Include copyright.sgml: -->
3004   &license;
3005  <!-- end copyright -->
3006  </sect2>
3007  <!--  ~  End section  ~  -->
3008
3009  <!--   ~~~~~       New section      ~~~~~     -->
3010  <sect2><title>History</title>
3011  <!-- Include history.sgml -->
3012   &history;
3013  <!-- end -->
3014  </sect2>
3015
3016  </sect1>
3017  <!--  ~  End section  ~  -->
3018
3019
3020 <!--   ~~~~~       New section      ~~~~~     -->
3021 <!--
3022 <sect1 id="seealso"><title>See also</title>
3023 -->
3024 <!-- Include seealso.sgml -->
3025 <!--
3026  &see;
3027 -->
3028 <!-- end  -->
3029 <!--
3030 </sect1>
3031 -->
3032
3033  <!--
3034  This program is free software; you can redistribute it
3035  and/or modify it under the terms of the GNU General
3036  Public License as published by the Free Software
3037  Foundation; either version 2 of the License, or (at
3038  your option) any later version.
3039
3040  This program is distributed in the hope that it will
3041  be useful, but WITHOUT ANY WARRANTY; without even the
3042  implied warranty of MERCHANTABILITY or FITNESS FOR A
3043  PARTICULAR PURPOSE.  See the GNU General Public
3044  License for more details.
3045
3046  The GNU General Public License should be included with
3047  this file.  If not, you can view it at
3048  http://www.gnu.org/copyleft/gpl.html
3049  or write to the Free Software Foundation, Inc.,
3050  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
3051 -->
3052
3053 </article>