README 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. Dependencies:
  2. You're going to need openssl (0.9.5 or later) and popt (1.6 or later).
  3. If you're on Linux, everything will probably work fine. OS X and BSD
  4. (but see below under troubleshooting) now work too. Let us know if
  5. you get it working elsewhere.
  6. If you got the source from cvs:
  7. Run "./autogen.sh", which will run the various auto* programs and then
  8. run ./configure for you. From there, you should be able to run 'make'
  9. and you'll be on your way.
  10. If you got the source from a tarball:
  11. Run ./configure and make as usual. There isn't much point in
  12. 'make install' yet.
  13. If this doesn't work for you / troubleshooting:
  14. If you couldn't find popt (eg you're on BSD), try
  15. CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" \
  16. ./configure
  17. rather than simply ./configure. And install popt if you don't have it.
  18. Check out the list archives at http://archives.seul.org/or/dev/ and see
  19. if somebody else has reported your problem. If not, please subscribe
  20. and let us know what you did to fix it, or give us the details and
  21. we'll see what we can do.
  22. Once you've got it compiled:
  23. It's a bit hard to figure out what to do with the binaries. If you
  24. want to run a local onion proxy (that is, you're a user, not a node
  25. operator), go into src/config and look at the oprc file. You can run an
  26. onion proxy by "../or/or -f oprc". In another window, run something like
  27. "../httpap/httpap -f httpaprc2 -p 9051". See below for how to use it.
  28. If you want to set up your own test network (that is, act like you're
  29. a full set of node operators), go into src/config/ and look at the
  30. routers.or file. Also in that directory are public and private keys for
  31. various nodes (*-public, *-private) and configuration files for the
  32. nodes (*-orrc). You can generate your own keypairs with the orkeygen
  33. program, or use the provided ones for testing.
  34. Once you've got your config files ready, you're ready to start up your
  35. network. I recommend using a screen session (man screen), or some
  36. other way to handle many windows at once. I open a window for each
  37. onion router, go into the src/config directory, and run something like
  38. "../or/or -f moria2-orrc". In yet another window, I run something like
  39. "../httpap/httpap -f httpaprc -p 9051".
  40. How to use it:
  41. From here, you can point your browser/etc at localhost:9051 and treat
  42. it as a web proxy. As a first test, you might telnet to it and enter
  43. "GET http://seul.org/ HTTP/1.0" (without the quotes), followed by a pair
  44. of carriage returns (one to separate your request from the headers,
  45. and another to indicate that you're providing no headers). For more
  46. convenient command-line use, I recommend making a ~/.wgetrc with
  47. the line
  48. http_proxy=localhost:9051
  49. Then you can do things like "wget seul.org" and watch as it downloads
  50. from the onion routing network.
  51. (You can set your Mozilla/etc to use localhost:9051 as a proxy, and it
  52. will work -- but it will work even better if you tell your Mozilla to
  53. speak only HTTP 1.0 (the http proxy we include doesn't do 1.1 yet.))
  54. For fun, you can wget a very large file (a megabyte or more), and
  55. then ^z the wget a little bit in. The onion routers will continue
  56. talking for a while, queueing around 500k in the kernel-level buffers.
  57. When the kernel buffers are full, and the outbuf for the AP connection
  58. also fills, the internal congestion control will kick in and the exit
  59. connection will stop reading from the webserver. The circuit will
  60. wait until you fg the wget -- and other circuits will work just fine
  61. throughout. Then try ^z'ing the onion routers, and watch how well it
  62. recovers. Then try ^z'ing several of them at once. :)