mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-19 18:00:33 +01:00
86eb8db0f0
HACKING now explains bandwidth throttling, congestion control, and router twins. Read it and see if it makes sense. svn:r68
63 lines
2.8 KiB
Plaintext
63 lines
2.8 KiB
Plaintext
|
|
Dependencies:
|
|
|
|
You're going to need openssl (0.9.6 will work fine, possibly 0.9.5 also)
|
|
and popt installed. If you're on Linux, everything will probably work
|
|
fine. If you're not, you're on your own (but let us know how it goes).
|
|
|
|
If you got the source from cvs:
|
|
|
|
Run "./autogen.sh", which will run the various auto* programs and then
|
|
run ./configure for you. From there, you should be able to run 'make'
|
|
and you'll be on your way.
|
|
|
|
If you got the source from a tarball:
|
|
|
|
Run ./configure and make as usual. There isn't much point in
|
|
'make install' yet.
|
|
|
|
If this doesn't work for you:
|
|
|
|
Check out the list archives at http://archives.seul.org/or/dev/ and see
|
|
if somebody else has reported your problem. If not, please subscribe
|
|
and let us know what you did to fix it, or give us the details and
|
|
we'll see what we can do.
|
|
|
|
Once you've got it compiled:
|
|
|
|
It's a bit hard to figure out what to do with the binaries. If you
|
|
want to set up your own test network, go into src/config/ and look
|
|
at the routers.or file. Also in that directory are public and private
|
|
keys for various nodes (*-public, *-private) and configuration files
|
|
for the nodes (*-orrc). You can generate your own keypairs with the
|
|
orkeygen program, or use the provided ones for testing.
|
|
|
|
Once you've got your config files ready, you're ready to start up your
|
|
network. I recommend using a screen session (man screen), or some
|
|
other way to handle many windows at once. I open a window for each
|
|
onion router, go into the src/config directory, and run something like
|
|
"../or/or -f moria2-orrc". In yet another window, I run something like
|
|
"../httpap/httpap -f httpaprc -p 9051".
|
|
|
|
From here, you can point your browser/etc at localhost:9051 and treat
|
|
it as a web proxy. As a first test, you might telnet to it and enter
|
|
"GET http://seul.org/ HTTP/1.0" (without the quotes), followed by a pair
|
|
of carriage returns (one to separate your request from the headers,
|
|
and another to indicate that you're providing no headers). For more
|
|
convenient command-line use, I recommend making a ~/.wgetrc with
|
|
the line
|
|
http_proxy=localhost:9051
|
|
Then you can do things like "wget seul.org" and watch as it downloads
|
|
from the onion routing network.
|
|
|
|
For fun, you can wget a very large file (a megabyte or more), and
|
|
then ^z the wget a little bit in. The onion routers will continue
|
|
talking for a while, queueing around 500k in the kernel-level buffers.
|
|
When the kernel buffers are full, and the outbuf for the AP connection
|
|
also fills, the internal congestion control will kick in and the exit
|
|
connection will stop reading from the webserver. The circuit will
|
|
wait until you fg the wget -- and other circuits will work just fine
|
|
throughout. Then try ^z'ing the onion routers, and watch how well it
|
|
recovers. Then try ^z'ing several of them at once. :)
|
|
|