Choose correct abstraction for topic_foo. Abstract random-integer code
[tor.git] / README
blobe4f8732987330b32cf468dfc31692e9a1be288b9
1 'tor' is an implementation of The Onion Routing system, as
2 described in a bit more detail at http://www.onion-router.net/. You
3 can read list archives, and subscribe to the mailing list, at
4 http://archives.seul.org/or/dev/.
6 Is your question in the FAQ? Should it be?
8 Quickstart version for users:
10 0) Download the absolute newest version. No, really.
11   http://freehaven.net/or/.
12 1) ./configure (or do the two-line version below, if you're on bsd)
13 2) make
14 3) cd src/config
15 4) ../or/or -f oprc -l debug&
16 5) download privoxy (www.privoxy.org), and add the line
17   "forward-socks4a / localhost:9050 ." (without the quotes) to its
18   config file.
19 6) point your mozilla (or whatever) to http proxy at localhost:8118 (this
20   points it through Privoxy, so you now get good data-scrubbing too.)
21 7) make sure you've set it up correctly: go to
22   http://www.junkbusters.com/cgi-bin/privacy and see what IP it says
23   you're coming from.
25 More detailed version:
27 Dependencies:
29   You're going to need Privoxy (www.privoxy.org) installed, and configured
30   to point at a socks4a proxy -- see below.
32   For tor itself, you're going to need openssl (0.9.5 or later
33   -- including the dev stuff and includes). If you're on Linux,
34   everything will probably work fine. OS X and BSD (but see below under
35   troubleshooting) may work too. Let us know if you get it working
36   elsewhere.
38 If you got the source from cvs:
40   Run "./autogen.sh", which will run the various auto* programs and then
41   run ./configure for you. From there, you should be able to run 'make'
42   and you'll be on your way.
44 If you got the source from a tarball:
46   Run ./configure and make as usual. There isn't much point in 
47   'make install' yet.
49 If this doesn't work for you / troubleshooting:
51   If you have problems finding libraries, try 
52     CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" \
53     ./configure
54   rather than simply ./configure.
56   Check out the list archives at http://archives.seul.org/or/dev/ and see
57   if somebody else has reported your problem. If not, please subscribe
58   and let us know what you did to fix it, or give us the details and
59   we'll see what we can do.
61 Do you want to run a tor server or a tor client?
63   If you want to run a local onion proxy (that is, you're a user, not
64   a node operator), go into src/config and look at the oprc file. (You
65   shouldn't have to edit any of it.) You can run an onion proxy with
66   "../or/or -f oprc". See below for how to use it.
68   If you want to run a node in the tor network, use the orkeygen program
69   (included) to generate a keypair:
70     orkeygen file-for-privkey file-for-pubkey
71   Then set up a config file for your node (start with sample-orrc
72   and edit the top portion). Then take a look at the routers.or file,
73   and mail arma@mit.edu an entry for your new router. You can start up
74   your router with "../or/or -f you-orrc". Remember that you won't be
75   able to authenticate to the other tor nodes until I've added you to
76   the directory.
78 How to use it for web browsing:
80   Download privoxy (www.privoxy.org). Install it. Add the following
81   line to your 'config' file:
82     forward-socks4a / localhost:9050 .
83   Don't forget the . at the end.
85   From here, you can point your browser/etc to localhost:8118 (as an
86   httpd proxy) and your traffic will go through Privoxy, then through
87   the onion proxy, to the onion routing network.
89   You can also ignore the whole privoxy thing and set your Mozilla to
90   use localhost 9050 directly as a socks4 server. But see doc/CLIENTS
91   for why this may not give you the anonymity you want.
93   For more convenient command-line use, I recommend making a ~/.wgetrc
94   with the line
95     http_proxy=http://localhost:8118
96   Then you can do things like "wget seul.org" and watch as it downloads
97   from the onion routing network.
99   For fun, you can wget a very large file (a megabyte or more), and
100   then ^z the wget a little bit in. The onion routers will continue
101   talking for a while, queueing around 500k in the kernel-level buffers.
102   When the kernel buffers are full, and the outbuf for the AP connection
103   also fills, the internal congestion control will kick in and the exit
104   connection will stop reading from the webserver. The circuit will
105   wait until you fg the wget -- and other circuits will work just fine
106   throughout. Then try ^z'ing the onion routers, and watch how well it
107   recovers. Then try ^z'ing several of them at once. :)
109 How to use it for ssh:
111   Download tsocks (tsocks.sourceforge.net) and configure it to talk to
112   localhost:9050 as a socks4 server. My /etc/tsocks.conf simply has:
113     server_port = 9050
114     server = 127.0.0.1
115   Then you can do "tsocks ssh arma@moria.mit.edu". But note that since
116   ssh is suid root, you either need to do this as root, or cp a local
117   version of ssh that isn't suid.