123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 |
- .TH TOR 1 "November 2004" "TOR"
- .SH NAME
- tor \- The second-generation onion router
- .SH SYNOPSIS
- .B tor
- [\fIOPTION value\fR]...
- .SH DESCRIPTION
- .I tor
- is a connection-oriented anonymizing communication
- service. Users choose a source-routed path through a set of nodes, and
- negotiate a "virtual circuit" through the network, in which each node
- knows its predecessor and successor, but no others. Traffic flowing down
- the circuit is unwrapped by a symmetric key at each node, which reveals
- the downstream node.
- .PP
- Basically \fItor\fR provides a distributed network of servers ("onion
- routers"). Users bounce their TCP streams -- web traffic, ftp, ssh, etc --
- around the routers, and recipients, observers, and even the routers
- themselves have difficulty tracking the source of the stream.
- .SH OPTIONS
- \fB-h, -help\fP
- Display a short help message and exit.
- .TP
- \fB-f \fR\fIFILE\fP
- FILE contains further "option value" pairs. (Default: @CONFDIR@/torrc)
- .TP
- Other options can be specified either on the command-line (\fI--option
- value\fR), or in the configuration file (\fIoption value\fR).
- Options are case-insensitive.
- .TP
- \fBLog \fR\fIminSeverity\fR[-\fImaxSeverity\fR] \fBstderr\fR|\fBstdout\fR|\fBsyslog\fR\fP
- Send all messages between \fIminSeverity\fR and \fImaxSeverity\fR to
- the standard output stream, the standard error stream, or to the system
- log. (The "syslog" value is only supported on Unix.) Recognized
- severity levels are debug, info, notice, warn, and err. If only one
- severity level is given, all messages of that level or higher will be
- sent to the listed destination.
- .TP
- \fBLog \fR\fIminSeverity\fR[-\fImaxSeverity\fR] \fBfile\fR \fIFILENAME\fP
- As above, but send log messages to the listed filename. The "Log"
- option may appear more than once in a configuration file. Messages
- are sent to all the logs that match their severity level.
- .TP
- \fBBandwidthRate \fR\fIN\fR \fBbytes\fR|\fBKB\fR|\fBMB\fR|\fBGB\fR|\fBTB\fP
- A token bucket limits the average incoming bandwidth on this node to
- the specified number of bytes per second. (Default: 780 KB)
- .TP
- \fBBandwidthBurst \fR\fIN\fR \fBbytes\fR|\fBKB\fR|\fBMB\fR|\fBGB\fR|\fBTB\fP
- Limit the maximum token bucket size (also known as the burst) to the given number of bytes. (Default: 48 MB)
- .TP
- \fBDataDirectory \fR\fIDIR\fP
- Store working data in DIR (Default: @LOCALSTATEDIR@/lib/tor)
- .TP
- \fBDirServer \fR\fIaddress:port fingerprint\fP
- Use a nonstandard authoritative directory server at the provided
- address and port, with the specified key fingerprint. This option can
- be repeated many times, for multiple authoritative directory
- servers. If no \fBdirserver\fP line is given, Tor will use the default
- directory servers: moria1, moria2, and tor26.
- .TP
- \fBGroup \fR\fIGID\fP
- On startup, setgid to this user.
- .TP
- \fBHttpProxy\fR \fIhost\fR[:\fIport\fR]\fP
- If set, Tor will make all its directory requests through this host:port,
- rather than connecting directly to any directory servers.
- .TP
- \fBKeepalivePeriod \fR\fINUM\fP
- To keep firewalls from expiring connections, send a padding keepalive
- cell on open connections every NUM seconds. (Default: 5 minutes.)
- .TP
- \fBMaxConn \fR\fINUM\fP
- Maximum number of simultaneous sockets allowed. You probably don't need
- to adjust this. (Default: 1024)
- .TP
- \fBOutboundBindAddress \fR\fIIP\fP
- Make all outbound connections originate from the IP address specified. This
- is only useful when you have multiple network interfaces, and you want all
- of Tor's outgoing connections to use a single one.
- .TP
- \fBPIDFile \fR\fIFILE\fP
- On startup, write our PID to FILE. On clean shutdown, remove FILE.
- .TP
- \fBRunAsDaemon \fR\fB0\fR|\fB1\fR\fP
- If 1, Tor forks and daemonizes to the background. (Default: 0)
- .TP
- \fBUser \fR\fIUID\fP
- On startup, setuid to this user.
- .TP
- \fBControlPort \fR\fIPort\fP
- If set, Tor will accept connections from the same machine (localhost only) on
- this port, and allow those connections to control the Tor process using the
- Tor Control Protocol (described in control-spec.txt). Note: unless you also
- specify one of \fBHashedControlPassword\fP or \fBCookieAuthentication\fP,
- setting this option will cause Tor to allow any process on the local host to
- control it.
- .TP
- \fBHashedControlPassword \fR\fIhashed_password\fP
- Don't allow any connections on the control port except when the other process
- knows the password whose one-way hash is \fIhashed_password\fP. You can
- compute the hash of a password by running "tor --hash-password
- \fIpassword\fP".
- .TP
- \fBCookieAuthentication \fR\fB0\fR|\fB1\fP
- If this option is set to 1, don't allow any connections on the control port
- except when the connecting process knows the contents of a file named
- "control_auth_cookie", which Tor will create in its data directory. This
- authentication methods should only be used on systems with good filesystem
- security.
- \fBDirFetchPeriod \fR\fIN\fR \fBseconds\fR|\fBminutes\fR|\fBhours\fR|\fBdays\fR|\fBweeks\fP
- Every time the specified period elapses, Tor downloads a directory.
- A directory contains a signed list of all known servers as well as
- their current liveness status. (Default: 1 hour)
- .TP
- \fBStatusFetchPeriod \fR\fIN\fR \fBseconds\fR|\fBminutes\fR|\fBhours\fR|\fBdays\fR|\fBweeks\fP
- Every time the specified period elapses, Tor downloads signed status
- information about the current state of known servers. (Default: 20 minutes.)
- .TP
- \fBRendPostPeriod \fR\fIN\fR \fBseconds\fR|\fBminutes\fR|\fBhours\fR|\fBdays\fR|\fBweeks\fP
- Every time the specified period elapses, Tor uploads any rendezvous
- service descriptors to the directory servers. This information is also
- uploaded whenever it changes. (Default: 20 minutes.)
- .SH CLIENT OPTIONS
- .PP
- The following options are useful only for clients (that is, if \fBSOCKSPort\fP is non-zero):
- .TP
- \fBAllowUnverifiedNodes\fR \fBentry\fR|\fBexit\fR|\fBmiddle\fR|\fBintroduction\fR|\fBrendezvous\fR|...\fP
- Where on our circuits should we allow Tor servers that the directory
- servers haven't authenticated as "verified"? (Default: middle,rendezvous.)
- .TP
- \fBClientOnly \fR\fB0\fR|\fB1\fR\fP
- If set to 1, Tor will under no circumstances run as a server. (Usually,
- you don't need to set this; Tor is pretty smart at figuring out whether
- you are reliable and high-bandwidth enough to be a good server.)
- .TP
- \fBEntryNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- A list of preferred nodes to use for the first hop in the circuit, if possible.
- .TP
- \fBExitNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- A list of preferred nodes to use for the last hop in the circuit, if possible.
- .TP
- \fBExcludeNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- A list of nodes to never use when building a circuit.
- .TP
- \fBStrictExitNodes \fR\fB0\fR|\fB1\fR\fP
- If 1, Tor will never use any nodes besides those listed in "exitnodes" for
- the last hop of a circuit.
- .TP
- \fBStrictEntryNodes \fR\fB0\fR|\fB1\fR\fP
- If 1, Tor will never use any nodes besides those listed in "entrynodes" for
- the first hop of a circuit.
- .TP
- \fBFascistFirewall \fR\fB0\fR|\fB1\fR\fP
- If 1, Tor will only create outgoing connections to ORs running on ports that
- your firewall allows (defaults to 80 and 443; see \fBFirewallPorts\fR). This will
- allow you to run Tor as a client behind a firewall with restrictive policies,
- but will not allow you to run as a server behind such a firewall.
- .TP
- \fBFirewallPorts \fR\fIPORTS\fP
- A list of ports that your firewall allows you to connect to. Only used when
- \fBFascistFirewall\fR is set. (Default: 80, 443.)
- .TP
- \fB
- \fBNewCircuitPeriod \fR\fINUM\fP
- Every NUM seconds consider whether to build a new circuit. (Default: 60)
- .TP
- \fBNodeFamily \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- The named Tor servers constitute a "family" of similar or co-administered
- servers, so never use any two of them in the same circuit. Defining a
- NodeFamily is only needed when a server doesn't list the family itself
- (with MyFamily). This option can be used multiple times.
- .TP
- .\" \fBPathlenCoinWeight \fR\fI0.0-1.0\fP
- .\" Paths are 3 hops plus a geometric distribution centered around this coinweight. Must be >=0.0 and <1.0. (Default: 0.3) NOT USED CURRENTLY
- .\" .TP
- \fBRendNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- A list of preferred nodes to use for the rendezvous point, if possible.
- .TP
- \fBRendExcludeNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- A list of nodes to never use when choosing a rendezvous point.
- .TP
- \fBSOCKSPort \fR\fIPORT\fP
- Bind to this port to listen for connections from SOCKS-speaking applications.
- Set this to 0 if you don't want to allow application connections. (Default:
- 9050)
- .TP
- \fBSOCKSBindAddress \fR\fIIP\fP
- Bind to this address to listen for connections from SOCKS-speaking applications. (Default: 127.0.0.1) You can also specify a port (e.g. 192.168.0.1:9100). This directive can be specified multiple times to bind to multiple addresses/ports.
- .TP
- \fBSOCKSPolicy \fR\fIpolicy\fR,\fIpolicy\fR,\fI...\fP
- Set an entrance policy for this server, to limit who can connect to the SOCKS ports. The policies have the same form as exit policies below.
- .SH SERVER OPTIONS
- .PP
- The following options are useful only for servers (that is, if \fBORPort\fP is non-zero):
- .TP
- \fBAddress \fR\fIaddress\fP
- The IP or fqdn of this server (e.g. moria.mit.edu). You can leave this
- unset, and Tor will guess your IP.
- .TP
- \fBContactInfo \fR\fIemail_address\fP
- Administrative contact information for server.
- .TP
- \fBExitPolicy \fR\fIpolicy\fR,\fIpolicy\fR,\fI...\fP
- Set an exit policy for this server. Each policy is of the form
- "\fBaccept\fP|\fBreject\fP \fIADDR\fP[\fB/\fP\fIMASK\fP]\fB:\fP\fIPORT\fP".
- If \fB/\fP\fIMASK\fP is omitted then this policy just applies to the host
- given. Instead of giving a host or network you can also use "\fB*\fP" to
- denote the universe (0.0.0.0/0). \fIPORT\fP can be a single port number,
- an interval of ports "\fIFROM_PORT\fP\fB-\fP\fITO_PORT\fP", or "\fB*\fP".
- For example, "reject 127.0.0.1:*,reject 192.168.1.0/24:*,accept *:*" would
- reject any traffic destined for localhost and any 192.168.1.* address, but
- accept anything else.
- This directive can be specified multiple times so you don't have to put
- it all on one line.
- See RFC 3330 for more details about internal and reserved IP address
- space. Policies are considered first to last, and the first match wins. If
- you want to _replace_ the default exit policy, end your exit policy with
- either a reject *:* or an accept *:*. Otherwise, you're _augmenting_
- (prepending to) the default exit policy. The default exit policy is:
- .PD 0
- .RS 12
- .IP "reject 0.0.0.0/8" 0
- .IP "reject 169.254.0.0/16" 4
- .IP "reject 127.0.0.0/8"
- .IP "reject 192.168.0.0/16"
- .IP "reject 10.0.0.0/8"
- .IP "reject 172.16.0.0/12"
- .IP "accept *:20-22"
- .IP "accept *:53"
- .IP "accept *:79-81"
- .IP "accept *:110"
- .IP "accept *:143"
- .IP "accept *:443"
- .IP "accept *:706"
- .IP "accept *:873"
- .IP "accept *:993"
- .IP "accept *:995" 4
- .IP "reject *:4661-4662"
- .IP "reject *:1214"
- .IP "reject *:6346"
- .IP "accept *:1024-65535"
- .IP "reject *:*"
- .RE
- .PD
- .TP
- \fBMaxOnionsPending \fR\fINUM\fP
- If you have more than this number of onionskins queued for decrypt, reject new ones. (Default: 100)
- .TP
- \fBMyFamily \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- Declare that this Tor server is controlled or administered by a group
- or organization identical or similar to that of the other named servers.
- When two servers both declare that they are in the same 'family', Tor clients
- will not use them in the same circuit. (Each server only need to list the
- other servers in its family; it doesn't need to list itself.)
- .TP
- \fBNickname \fR\fIname\fP
- Set the server's nickname to 'name'.
- .TP
- \fBNumCPUs \fR\fInum\fP
- How many processes to use at once for decrypting onionskins. (Default: 1)
- .TP
- \fBORPort \fR\fIPORT\fP
- Bind to this port to listen for connections from Tor clients and servers.
- .TP
- \fBORBindAddress \fR\fIIP\fP
- Bind to this address to listen for connections from Tor clients and servers. (Default: 0.0.0.0)
- .TP
- \fBRedirectExit \fR\fIpattern target\fP
- Whenever an outgoing connection tries to connect to one of a given set
- of addresses, connect to \fItarget\fP (an \fIaddress:port\fP pair) instead.
- The address
- pattern is given in the same format as for an exit policy. The
- address translation applies after exit policies are applied. Multiple
- \fBRedirectExit\fP options can be used: once any one has matched
- successfully, no subsequent rules are considered. You can specify that no
- redirection is to be performed on a given set of addresses by using the
- special target string "pass", which prevents subsequent rules from being
- considered.
- .TP
- \fBDirPostPeriod \fR\fIN\fR \fBseconds\fR|\fBminutes\fR|\fBhours\fR|\fBdays\fR|\fBweeks\fP
- Every time the specified period elapses, Tor uploads its server
- descriptors to the directory servers. This information is also
- uploaded whenever it changes. (Default: 20 minutes.)
- .TP
- \fBAccountingMax \fR\fIN\fR \fBbytes\fR|\fBKB\fR|\fBMB\fR|\fBGB\fR|\fBTB\fP
- Never send more than the specified number of bytes in a given
- accounting period, or receive more than that number in the period.
- When the number of bytes is exhausted, Tor will hibernate until some
- time in the next accounting period. To prevent all servers from
- waking at the same time, Tor will also wait until a random point in
- each period before waking up. If you have bandwidth cost issues,
- using this option is preferable to setting a low bandwidth, since it
- provides users with a collection of fast servers that are up some of
- the time, which is more useful than a set of slow servers that are
- always "available".
- .TP
- \fBAccountingStart \fR\fBday\fR|\fBweek\fR|\fBmonth\fR [\fIday\fR] \fIHH:MM\fR\fP
- Specify how long accounting periods last. If \fBmonth\fP is given,
- each accounting period runs from the time \fIHH:MM\fR on the
- \fIday\fRth day of one month to the same day and time of the next.
- (The day must be between 1 and 28.) If \fBweek\fP is given, each
- accounting period runs from the time \fIHH:MM\fR of the \fIday\fRth
- day of one week to the same day and time of the next week, with Monday
- as day 1 and Sunday as day 7. If \fBday\fR is given, each accounting
- period runs from the time \fIHH:MM\fR each day to the same time on the
- next day. All times are local, and given in 24-hour time. (Defaults to
- "month 1 0:00".)
- .SH DIRECTORY SERVER OPTIONS
- .PP
- The following options are useful only for directory servers (that is, if \fBDirPort\fP is non-zero):
- .TP
- \fBAuthoritativeDirectory \fR\fB0\fR|\fB1\fR\fP
- When this option is set to 1, Tor operates as an authoritative
- directory server. Instead of caching the directory, it generates its
- own list of good servers, signs it, and sends that to the clients.
- Unless the clients already have you listed as a trusted directory, you
- probably do not want to set this option. Please coordinate with the other
- admins at tor-ops@freehaven.net if you think you should be a directory.
- .TP
- \fBDirPort \fR\fIPORT\fP
- Bind the directory service to this port.
- .TP
- \fBDirBindAddress \fR\fIIP\fP
- Bind the directory service to this address. (Default: 0.0.0.0)
- .TP
- \fBDirPolicy \fR\fIpolicy\fR,\fIpolicy\fR,\fI...\fP
- Set an entrance policy for this server, to limit who can connect to the directory ports. The policies have the same form as exit policies above.
- .TP
- \fBRecommendedVersions \fR\fISTRING\fP
- STRING is a command-separated list of Tor versions currently believed
- to be safe. The list is included in each directory, and nodes which
- pull down the directory learn whether they need to upgrade. This
- option can appear multiple times: the values from multiple lines are
- spliced together.
- .TP
- \fBRunTesting \fR\fB0\fR|\fB1\fR\fP
- If set to 1, Tor tries to build circuits through all of the servers it
- knows about, so it can tell which are up and which are down. This
- option is only useful for authoritative directories, so you probably
- don't want to use it.
- .SH HIDDEN SERVICE OPTIONS
- .PP
- The following options are used to configure a hidden service.
- .TP
- \fBHiddenServiceDir \fR\fIDIRECTORY\fP
- Store data files for a hidden service in DIRECTORY. Every hidden
- service must have a separate directory. You may use this option multiple
- times to specify multiple services.
- .TP
- \fBHiddenServicePort \fR\fIVIRTPORT \fR[\fITARGET\fR]\fP
- Configure a virtual port VIRTPORT for a hidden service. You may use this
- option multiple times; each time applies to the service using the most recent
- hiddenservicedir. By default, this option maps the virtual port to the
- same port on 127.0.0.1. You may override the target port, address, or both
- by specifying a target of addr, port, or addr:port.
- .TP
- \fBHiddenServiceNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- If possible, use the specified nodes as introduction points for the hidden
- service.
- .TP
- \fBHiddenServiceExcludeNodes \fR\fInickname\fR,\fInickname\fR,\fI...\fP
- Do not use the specified nodes as introduction points for the hidden
- service.
- .\" UNDOCUMENTED
- .\" ignoreversion
- .SH SIGNALS
- Tor catches the following signals:
- .TP
- \fBSIGTERM\fR
- Tor will catch this, clean up and sync to disk if necessary, and exit.
- .TP
- \fBSIGINT\fR
- Tor clients behave as with SIGTERM; but Tor servers will do a controlled
- slow shutdown, closing listeners and waiting 30 seconds before exiting.
- .TP
- \fBSIGHUP\fR
- The signal instructs Tor to reload its configuration (including closing
- and reopening logs), fetch a new directory, and kill and restart its
- helper processes if applicable.
- .TP
- \fBSIGUSR1\fR
- Log statistics about current connections, past connections, and
- throughput.
- .TP
- \fBSIGUSR2\fR
- Switch all logs to loglevel debug. You can go back to the old loglevels
- by sending a SIGHUP.
- .TP
- \fBSIGCHLD\fR
- Tor receives this signal when one of its helper processes has exited,
- so it can clean up.
- .TP
- \fBSIGPIPE\fR
- Tor catches this signal and ignores it.
- .TP
- \fBSIGXFSZ\fR
- If this signal exists on your platform, Tor catches and ignores it.
- .SH FILES
- .TP
- .I @CONFDIR@/torrc
- The configuration file, which contains "option value" pairs.
- .TP
- .I @CONFDIR@/dirservers
- A list of directory servers, to bootstrap into the network.
- .TP
- .I @LOCALSTATEDIR@/lib/tor/
- The tor process stores keys and other data here.
- .SH SEE ALSO
- .BR privoxy (1),
- .BR tsocks (1),
- .BR torify (1)
- .BR http://tor.eff.org/
- .SH BUGS
- Plenty, probably. It's still in alpha. Please report them.
- .SH AUTHORS
- Roger Dingledine <arma@mit.edu>, Nick Mathewson <nickm@alum.mit.edu>.
|