Tor源码分析 — 附录 Tor Manual

TOR(1) Manual Page Analysis

NAME

tor – The second-generation onion router

SYNOPSIS

tor [OPTION value]…

DESCRIPTION

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.

Basically tor 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.

THE CONFIGURATION FILE FORMAT

By default, an option on the command line overrides an option found in the configuration file, and an option in a configuration file overrides one in the defaults file.

This rule is simple for options that take a single value, but it can become complicated for options that are allowed to occur more than once: if you specify four SOCKSPorts in your configuration file, and one more SOCKSPort on the command line, the option on the command line will replace all of the SOCKSPorts in the configuration file. If this isn’t what you want, prefix the option name with a plus sign, and it will be appended to the previous set of options instead.

Alternatively, you might want to remove every instance of an option in the configuration file, and not replace it at all: you might want to say on the command line that you want no SOCKSPorts at all. To do that, prefix the option name with a forward slash.

GENERAL OPTIONS

Log:

Log minSeverity[-maxSeverity] stderr|stdout|syslog

Log minSeverity[-maxSeverity] file FILENAME

Log [domain,…]minSeverity[-maxSeverity] … file FILENAME

Log [domain,…]minSeverity[-maxSeverity] … stderr|stdout|syslog

LogMessageDomains 0|1 (Default: 0)

severity : debug, info, notice, warn, and err.

domain : general, crypto, net, config, fs, protocol, mm, http, app, control, circ, rend, bug, dir, dirserv, or, edge, acct, hist, and handshake.

Tor有选择性地输出相关domain的不同severity的调试信息,并可选的加上对应子系统信息。

ProtocolWarnings 0|1 (Default: 0)

Tor在记录日志之时若设置了该选项,会将Warning报出,否则视为Info。

LogTimeGranularity NUM (Default: 1 second)

Tor用于控制日志文件的记录时间粒度。

SafeLogging 0|1|relay (Default: 1)

Tor用于将日志文件中的敏感信息屏蔽起来。

Proxy:

HTTPProxy host[:port]

HTTPProxyAuthenticator username:password

HTTPSProxy host[:port]

HTTPSProxyAuthenticator username:password

Socks4Proxy host[:port]

Socks5Proxy host[:port]

Socks5ProxyUsername username

Socks5ProxyPassword password

Tor目录请求和连接建立的专用代理设置和认证方式,HTTP代理负责目录请求,其他代理负责OR连接建立。

ClientTransportPlugin transport socks4|socks5 IP:PORT

ClientTransportPlugin transport exec path-to-binary [options]

If set, Tor Client使用传输代理来传递Tor Relay的信息。

第一种形式代理处于IP:PORT之上;第二种形式代理由执行path-to-binary启动。

ServerTransportPlugin transport exec path-to-binary [options]

If set, Tor Relay使用传输代理来接收Tor Client的信息。

Bandwidth:

BandwidthRate N bytes|KB|MB|GB (Default: 5 MB)

BandwidthBurst N bytes|KB|MB|GB (Default: 10 MB)

Tor使用令牌桶机制来控制流入流出的一般速率和最大速率,token bucket。

MaxAdvertisedBandwidth N bytes|KB|MB|GB

If set, Tor Server对外公布的带宽上限。以此降低Server本身的CPU损耗。

RelayBandwidthRate N bytes|KB|MB|GB (Default: 0)

RelayBandwidthBurst N bytes|KB|MB|GB (Default: 0)

If not 0, Tor Relay使用令牌桶机制来进行流量控制,token bucket。

Control Port:

ControlPort PORT|auto (Default: 0)

ControlListenAddress IP[:PORT] (Default: 127.0.0.1)

ControlSocket Path (Unix and Unix-like systems only)

If set, Tor设定程序的控制IP及端口。

ControlSocketsGroupWritable 0|1 (Default: 0)

HashedControlPassword hashed_password

CookieAuthentication 0|1 (Default: 0)

CookieAuthFile Path

CookieAuthFileGroupReadable 0|1|Groupname (Default: 0)

If set, Tor进行控制端口的权限设定,包括组权限,密码验证及Cookie认证。

ControlPortWriteToFile Path

ControlPortFileGroupReadable 0|1 (Default: 0)

If set, Tor用于在自动选择控制端口时将端口写入文件,以便其他程序读取,并进行控制。

Fecth Info:

FetchDirInfoEarly 0|1 (Default: 0)

FetchDirInfoExtraEarly 0|1 (Default: 0)

Tor比普通情况更早的获取目录信息。普通用户不必改变该选项。

FetchHidServDescriptors 0|1 (Default: 1)

FetchServerDescriptors 0|1 (Default: 1)

FetchUselessDescriptors 0|1 (Default: 0)

Tor默认情况下获取网络相关描述符的设置。

Alternate:

AlternateDirAuthority [nickname] [flags] address:port fingerprint

AlternateHSAuthority [nickname] [flags] address:port fingerprint

AlternateBridgeAuthority [nickname] [flags] address:port fingerprint

If set, Tor使用这些选项值修改相应的默认值,包括目录服务器,HS服务器,Bridge服务器。

Socket:

ConstrainedSockets 0|1 (Default: 0)

ConstrainedSockSize N bytes|KB

If set, Tor限制所有Socket所使用的Buffer大小为一定的值。只在Buffer空间不足时使用。

Accelerate:

HardwareAccel 0|1 (Default: 0)

AccelName NAME

AccelDir DIR

Tor用到动态加速引擎等时用到的选项,一般不被设置。

Tunnel:

TunnelDirConns 0|1 (Default: 1)

PreferTunneledDirConns 0|1 (Default: 1)

If not 0, Tor会优先选择支持Tunnel的目录服务器,并通过其ORPort建立一步加密连接。

IOCP:

DisableIOCP 0|1 (Default: 1)

UserspaceIOCPBuffers 0|1 (Default: 0)

Tor用于告知Libevent不去使用Windows IOCP networking API。

Misce:

DirServer [nickname] [flags] address:port fingerprint

If set, Tor Server用于设定非标准目录服务器,给定的flags是对选择的目录服务器的功能限定。一般该选项用于用户设定自己的Tor网络。这样设定的用户会和普通用户区别开。

DisableNetwork 0|1 (Default: 0)

If set, Tor不监听或接受任何除控制端口以外的端口信息,并且不创建任何连接。一般在Tor尚未被完全设置完成之前使用。

DataDirectory DIR (Default: /usr/local/var/lib/tor)

Tor用于存储程序执行过程中生成的各种数据文件。

ConnLimit NUM (Default: 1000)

Tor要求系统提供的最少文件描述符数,即连接数。若系统无法提供,Tor则拒绝启动。

DynamicDHGroups 0|1 (Default: 0)

If set, Tor使用自行定义的Diffie-Hellman群,以便于绕开审查。

DisableAllSwap 0|1 (Default: 0)

If set, Tor不会允许Tor相关内存被页被移出。

DisableDebuggerAttachment 0|1 (Default: 1)

Tor用于屏蔽外界调试器的调试。

KeepalivePeriod NUM (Default: 5 minutes)

Tor每隔5分钟进行一次连接维护,保证有效连接的存在和无效连接的删除。

OutboundBindAddress IP

Tor将主机的所有连接均从指定的IP发出。

PidFile FILE

Tor在程序运行时将程序进程ID记录到文件FILE,在运行结束后删除。

RunAsDaemon 0|1 (Default: 0)

If set, Tor作为后台程序在主机上运行。

User UID

Tor用于在程序启动阶段,设置用户ID。

AvoidDiskWrites 0|1 (Default: 0)

Tor用于尽量减少对硬盘的读写,在存储介质为flash等时尤为有用。

CircuitPriorityHalflife NUM1 (Default: not set)

Tor用于设置选择路径的算法,默认情况下为默认算法。

_UseFilteringSSLBufferevents 0|1 (Default: 0)

Tor高级设置,用于调试和BUG寻找,一般不做改动。

CountPrivateBandwidth 0|1 (Default: 0)

Tor用于将自身的带宽设置应用于本机的本地地址,例如127.0.0.1等。

CLIENT OPTIONS

The following options are useful only for clients (that is, if SocksPort, TransPort, DNSPort, or NATDPort is non-zero):

Node Selection:

ExcludeNodes node,node,…

ExcludeExitNodes node,node,…

ExitNodes node,node,…

EntryNodes node,node,…

StrictNodes 0|1 (Default: 0)

Tor Client在使用Tor网络过程中的结点选择参照表。

Bridge [transport] IP:ORPort [fingerprint]

Tor网络中存在的非公开Relay结点,即Bridge结点。Tor Client根据本选项的设置,利用选定的Bridge结点作为代理,代理其与Tor之间的通信。

AllowInvalidNodes entry|exit|middle|introduction|rendezvous|… (Default: middle,rendezvous)

Tor网络中可能存在非有效的结点,此时目录服务器会将其标记为无效。Tor Client根据本选项的设定,限定无效结点在其选定的链路中能够充当的身份。身份包括有:入口结点,出口结点,中间结点等。

ExcludeSingleHopRelays 0|1 (Default: 1)

Tor网络中的某些结点允许AllowSingleHopExits,这是不安全的。Tor Client根据本选项的设定,限定其选定的链路中是否能包含有开启AllowSingleHopExits 选项的Relay结点。一般情况下为不包含,因为这些结点对匿名性有一定的损害。

NodeFamily node,node,…

Tor Client会避免使用同一结点家族的结点建立一条链路。

EnforceDistinctSubnets 0|1 (Default: 1)

Tor Client会避免使用IP地址太过相近的两个结点建立一条链路。

Bridge and EntryGuard:

UpdateBridgesFromAuthority 0|1 NUM (Default: 0)

UseBridges 0|1 (Default: 0)

Tor Client是否使用Bridge,是否在使用Bridge时索取其描述符。

UseEntryGuards 0|1 (Default: 1)

NumEntryGuards (Default: 3)

Tor Client是否使用EntryGuards机制(固定入口结点),该机制防止敌手成功监听流量的概率。

Socks:

SOCKSPort [address:]port|auto [isolation flags] (Default: 9050)SOCKSListenAddress IP[:PORT] (Default: 127.0.0.1)

SocksPolicy policy,policy,…

SocksTimeout NUM (Default: 2 minutes)

Tor Client指示Socks连接的地址和端口号,同时制定接收策略和超时控制。

SafeSocks 0|1 (Default: 0)

TestSocks 0|1 (Default: 0)

WarnUnsafeSocks 0|1 (Default: 1)

Tor Clinet用于指示是否使用安全Socks (参数正确,不需要进行DNS地址解析),是否在日志文件内部记录安全或非安全的Socks连接,并在接收到非安全Socks提出警告。

Circuit Restriction:

LearnCircuitBuildTimeout 0|1 (Default: 1)

CircuitBuildTimeout NUM (Default: 60 seconds)

CircuitIdleTimeout NUM (Default: 1 hour)

CircuitStreamTimeout NUM (Default: 0)

Tor Client用于链路超时控制。超时包括:建立链路超时,链路空闲超时,数据流超时。

CloseHSClientCircuitsImmediatelyOnTimeout 0|1 (Default: 0)

CloseHSServiceRendCircuitsImmediatelyOnTimeout 0|1 (Default: 0)

Tor用于执行Hid Service相关的超时处理。

NewCircuitPeriod NUM (Default: 30 seconds)

Tor用于指示每隔NUM秒尝试新建链路。

MaxCircuitDirtiness NUM (Default: 10 minutes)

Tor用于指示新建的连接与哪些较新的链路进行绑定。超过本选项时间的链路已经老化。

MaxClientCircuitsPending NUM (Default: 32)

Tor用于指示同一时刻最多可以挂起的链路数。挂起的链路指开始建而未完成的链路。

Exit Restriction:

TrackHostExits host,.domain,…

TrackHostExitsExpire NUM (30 minutes)

Tor Client在长时间连接一台远端主机时,有可能由于出口IP地址不断变化的原因而被远端主机log out,该选项使得Tor系统固定远端的出口结点,从而防止IP地址的不断变化。

AllowDotExit 0|1 (Default: 0)

Tor默认情况下拒绝点操作的出口地址选择。

Address Restrictions:

FascistFirewall 0|1

FirewallPorts PORTS (Default: 80, 443)

Tor Client指示本地防火墙是否工作,及工作时允许的数据流出端口号。

ReachableAddresses ADDR[/MASK][:PORT]… (Default: ‘accept *:*’)

ReachableDirAddresses ADDR[/MASK][:PORT]…

ReachableORAddresses ADDR[/MASK][:PORT]…

Tor Client指示本地连接允许的IP:PORT范围。本地连接包括对外的Dir及OR连接。Dir连接的内容是普通的HTTP请求,OR连接的内容则是TLS/SSL请求。

MapAddress address newaddress

Tor用于实现内部地址映射,即将某些地址映射为另外一些地址。

VirtualAddrNetwork Address/bits

Tor用于地址映射时使用的虚拟地址范围。

Trans , NATD and DNS:

TransPort [address:]port|auto [isolation flags] (Default: 0)

TransListenAddress IP[:PORT] (Default: 127.0.0.1)

NATDPort [address:]port|auto [isolation flags] (Default: 0)

NATDListenAddress IP[:PORT]

Tor Client提供的透明代理服务,NATD服务在透明代理服务无法使用时备选。

DNSPort [address:]port|auto [isolation flags] (Default: 0)

DNSListenAddress IP[:PORT]

Tor Client提供的DNS域名解析服务。

Path Bias:

PathBiasCircThreshold NUM

PathBiasNoticeRate NUM

PathBiasDisableRate NUM

PathBiasScaleThreshold NUM

PathBiasScaleFactor NUM

Tor Client使用这些选项来修改本地的默认路径偏见检测算法。

Miscel:

AutomapHostsOnResolve 0|1 (Default: 0)

AutomapHostsSuffixes SUFFIX,SUFFIX,… (Default: .exit,.onion).

Tor用于地址解析时的虚拟地址映射。

ClientDNSRejectInternalAddresses 0|1 (Default: 1)

ClientRejectInternalAddresses 0|1 (Default: 1)

Tor用于指示对内部地址的不信任。

WarnPlaintextPorts port,port,… (Default: 23,109,110,143)

RejectPlaintextPorts port,port,… (Default: None)

Tor警告或禁止到指定端口的匿名连接,以防止明文传输密码的发生。

HidServAuth onion-address auth-cookie [service-name]

Tor Client用于通过Hid Server的服务使用认证。

ClientOnly 0|1 (Default: 0)

Tor用于指示自己只作为Client进行工作。

LongLivedPorts PORTS (Default: 21, 22, 706, 1863, 5050, 5190, 5222, 5223, 6523, 6667, 6697, 8300)

Tor用于指示用于长时间交互连接的端口号。

TokenBucketRefillInterval NUM [msec|second] (Default: 100 msec)

Tor用于填充令牌桶的时间间隔。

AllowNonRFC953Hostnames 0|1 (Default: 0)

Tor默认情况下拒绝非标准的主机名:@,:等。

FastFirstHopPK 0|1 (Default: 1)

Tor默认情况下使用快速的第一跳公钥方法建立链路第一跳。

DownloadExtraInfo 0|1 (Default: 0)

Tor Client下载额外的网络或服务器信息。

FallbackNetworkstatusFile FILENAME (Default: None)

Tor Client备份的网络状态文件,包含网络状态及服务器信息等。

AllowSingleHopCircuits 0|1 (Default: 0)

Tor Client用于指示是否允许单跳的链路。

OptimisticData 0|1|auto (Default: auto)

Tor Client根据该选项选择性地使用链路优化,即在链路还未完全建立完成时就发送请求。

Tor2webMode 0|1 (Default: 0)

If not 0, Tor Client以非匿名的方式连接到Hid Service。

UseMicrodescriptors 0|1|auto (Default: auto)

Tor Client根据该选项下载相关的网络状态及服务器的简化描述符。

SERVER OPTIONS

The following options are useful only for servers (that is, if ORPort is non-zero):

ORPort [address:]PORT|auto [flags] (Default: 0)

ORListenAddress IP[:PORT]

Tor Server必须有的选项,用于指示OR监听的地址及端口。

ExitPolicy policy,policy,…

ExitPolicyRejectPrivate 0|1 (Default: 1)

Tor Server用于指示服务器的出口策略以及是否接受本地连接的出口。

PortForwarding 0|1 (Default: 0)

PortForwardingHelper filename|pathname (Default: tor-fw-helper)

Tor Server 若使用Nat路由器则需要用到的选项。

AccountingMax N bytes|KB|MB|GB|TB

AccountingStart day|week|month [day] HH:MM (Default: “month 1 0:00”)

Tor Server拥有自己的统计时间段和统计最大值。在一个统计时间段内,当服务器流入或流出的流量超过统计最大值时,系统进入休眠状态hibernate。

ServerDNSResolvConfFile filename (Defaults to use the system DNS configuration)

ServerDNSAllowBrokenConfig 0|1 (Default: 1)

ServerDNSSearchDomains 0|1 (Default: 0)

ServerDNSDetectHijacking 0|1 (Default: 1)

ServerDNSTestAddresses address,address,… (Default: “www.google.com, www.mit.edu, www.yahoo.com, www.slashdot.org”)

ServerDNSAllowNonRFC953Hostnames 0|1 (Default: 0)

ServerDNSRandomizeCase 0|1 (Default: 1)

Tor Server关于DNS操作的控制选项,包括配置文件,劫持检测和测试地址等。

BridgeRecordUsageByCountry 0|1 (Default: 1)

GeoIPFile filename

Tor Server被配置成Bridge时利用该选项来进行Bridge使用记录,以此来得知哪些国家屏蔽Tor网络。国家和地址的映射通过GeoIP文件得知。

CellStatistics 0|1 (Default: 0)

DirReqStatistics 0|1 (Default: 1)

EntryStatistics 0|1 (Default: 0)

ExitPortStatistics 0|1 (Default: 0)

ConnDirectionStatistics 0|1 (Default: 0)

ExtraInfoStatistics 0|1 (Default: 1)

Tor Server用于记录服务器工作过程中统计出的信息。信息将被写回硬盘。

Server Info:

BridgeRelay 0|1

Tor Server用于指示自身是普通Relay还是Bridge,其区别为是否公开发布。

Address address

Tor Server用于指定服务器地址或域名。

ContactInfo email_address

Tor Server联系邮箱信息。

MyFamily node,node,…

Tor Server用于指示自身属于哪个服务器族,以便客户不会同时选中他们作为中继。

Nickname name

Tor Server自身的昵称。

NumCPUs num (Default: 1)

Tor Server声称的自身处理器数量。多处理器用于并行执行Onion解密等可并行的操作。

Miscel:

RefuseUnknownExits 0|1|auto (Default: auto)

Tor Server拒绝未知结点的出口请求。

PublishServerDescriptor 0|1|v1|v2|v3|bridge,…

Tor Server发布自身的描述符给目录服务器或其他权威服务器。

ShutdownWaitLength NUM (Default: 30 seconds)

Tor Server进程在接收到SIGINT信号时进行各种结束处理操作,NUM时间后才最终结束。

HeartbeatPeriod N minutes|hours|days|weeks (Default: 6 hours)

Tor Server每隔N时长在日志内打印出信息,以表示自身还处于正常工作状态。

AllowSingleHopExits 0|1 (Default: 0)

Tor Server是否允许自身作为整条链路中的唯一结点,并且允许出口操作。

AssumeReachable 0|1 (Default: 0)

Tor Server用于指示自身是否进行self-reachability测试,默认为进行。

MaxOnionsPending NUM (Default: 100)

Tor Server缓冲区中可存在的最多待解密的Onion。

ExtendAllowPrivateAddresses 0|1 (Default: 0)

DIRECTORY SERVER OPTIONS

The following options are useful only for directory servers (that is, if DirPort is non-zero):

General:

DirPort [address:]PORT|auto [flags] (Default: 0)

DirListenAddress IP[:PORT] (Default: 0.0.0.0)

Tor用于监听目录请求,指示自身是个目录服务器。

DirPolicy policy,policy,…

Tor目录服务器的服务策略。

Authoritative:

AuthoritativeDirectory 0|1

Tor Directory Server用于指示自身是否是个权威目录服务器。与普通目录服务器相比,权威目录服务器并非缓存目录信息,而是通过自身对网络的观察得出网络结论,对网络状态进行签名并发往客户端。权威目录服务器需要经过Tor机构认可,一般服务器非权威目录服务器。

V1AuthoritativeDirectory 0|1

V2AuthoritativeDirectory 0|1

V3AuthoritativeDirectory 0|1

Tor Authoritative Directory Server用于指示自身使用的描述符版本,即格式。

HSAuthoritativeDir 0|1 (Default: 0)

HidServDirectoryV2 0|1 (Default: 1)

BridgeAuthoritativeDir 0|1 (Default: 0)

Tor Authoritative Directory Server用于指示自身是否对HS和Router描述符进行服务。

VersioningAuthoritativeDirectory 0|1

NamingAuthoritativeDirectory 0|1

Tor Authoritative Directory Server的高级配置,暂时掠过。

Miscel:

DirPortFrontPage FILENAME

Tor Directory Server用于指定Dir端口的主页,可能意思是通过HTTP请求连接该端口所能得到的返回是该FrontPage。

MinUptimeHidServDirectoryV2 N seconds|minutes|hours|days|weeks (Default: 25 hours)

FetchV2Networkstatus 0|1 (Default: 0)

Tor目录服务器用于指示HidServ服务器的被认可时间,以及是否获取V2网络状态信息。

DIRECTORY AUTHORITY SERVER OPTIONS

RecommendedVersions STRING

RecommendedClientVersions STRING

RecommendedServerVersions STRING

Tor Authoritative Directory Server指示的整个Tor网络的推荐版本。

AuthDirListBadDirs 0|1

AuthDirListBadExits 0|1

AuthDirBadDir AddressPattern…

AuthDirBadExit AddressPattern…

AuthDirInvalid AddressPattern…

AuthDirReject AddressPattern…

AuthDirBadDirCCs CC,…

AuthDirBadExitCCs CC,…

AuthDirInvalidCCs CC,…

AuthDirRejectCCs CC,…

Tor Authoritative Directory Server内部定义的网络状态调整规则,禁止某些地址的使用。

V3AuthVotingInterval N minutes|hours (Default: 1 hour)

V3AuthVoteDelay N minutes|hours (Default: 5 minutes)

V3AuthDistDelay N minutes|hours (Default: 5 minutes)

V3AuthNIntervalsValid NUM (Default: 3)

V3AuthUseLegacyKey 0|1 (Default: 0)

Tor Authoritative Directory Server投票或签名时使用的选项。

AuthDirRejectUnlisted 0|1 (Default: 0)

Tor Authoritative Directory Server拒绝所有的服务描述符当其指纹未被明确列出。

ConsensusParams STRING

Tor Authoritative Directory Server在网络状态投票中会用到的参数。

DirAllowPrivateAddresses 0|1 (Default: 0)

Tor Authoritative Directory Server指示是否接受从私有地址来的路由描述符信息。

Unknown:

AuthDirMaxServersPerAddr NUM (Default: 2)

AuthDirMaxServersPerAuthAddr NUM (Default: 5)

AuthDirFastGuarantee N bytes|KB|MB|GB (Default: 100 KB)

AuthDirGuardBWGuarantee N bytes|KB|MB|GB (Default: 250 KB)

BridgePassword Password (Default: not set)

RephistTrackTime N seconds|minutes|hours|days|weeks (Default: 24 hours)

VoteOnHidServDirectoriesV2 0|1 (Default: 1)

HIDDEN SERVICE OPTIONS

HiddenServiceDir DIRECTORY

Hidden Server用于存储隐藏服务数据的数据文件夹。

HiddenServicePort VIRTPORT [TARGET]

Hidden Server用于指示提供隐藏服务的虚拟端口。

HiddenServiceVersion version,version,… (Default: 2)

Hidden Server所能支持的服务描述符版本。

PublishHidServDescriptors 0|1 (Default: 1)

Hidden Server用于指示是否发布其服务消息。

HiddenServiceAuthorizeClient auth-type client-name,client-name,…

Hidden Server指定被允许使用服务的客户端名称。

RendPostPeriod N seconds|minutes|hours|days|weeks (Default: 1 hour)

Hidden Server每隔N时间向目录服务器上传一次自身的服务描述符。

TESTING NETWORK OPTIONS

The following options are used for running a testing Tor network.

TestingTorNetwork 0|1 (Default: 0)

TestingV3AuthInitialVotingInterval N minutes|hours (Default: 30 minutes)

TestingV3AuthInitialVoteDelay N minutes|hours (Default: 5 minutes)

TestingV3AuthInitialDistDelay N minutes|hours (Default: 5 minutes)

TestingAuthDirTimeToLearnReachability N minutes|hours (Default: 30 minutes)

TestingEstimatedDescriptorPropagationTime N minutes|hours (Default: 10 minutes)

SIGNALS

Tor catches the following signals:

SIGTERM

Tor执行清理,硬盘同步,而后退出。

SIGINT

Tor clients与接收到SIGTERM信号做同样的处理;

Tor servers做缓慢的关闭操作,在完全关闭前还会等待一定由选项配置的时间。

SIGHUP

Tor重载其相关配置,重新运行Tor,并重启其辅助器进程。

SIGUSR1

记录数据到日志。

SIGUSR2

调整日志记录级别到debug。

SIGCHLD

接收子进程的退出消息。

SIGPIPE

接收并忽略该消息。

SIGXFSZ

接收并忽略该消息。

FILES

/usr/local/etc/tor/torrc

The configuration file, which contains “option value” pairs.

/usr/local/var/lib/tor/

The tor process stores keys and other data here.

DataDirectory/cached-consensus and/or cached-microdesc-consensus

The most recent consensus network status document we’ve downloaded.

DataDirectory/cached-descriptors and cached-descriptors.new

These files hold downloaded router statuses. The “.new” file is an append-only journal; when it gets too large, all entries are merged into a new cached-descriptors file.

DataDirectory/cached-microdescs and cached-microdescs.new

These files hold downloaded microdescriptors. The “.new” file is an append-only journal; when it gets too large, all entries are merged into a new cached-microdescs file.

DataDirectory/state

A set of persistent key-value mappings. These are documented in the file. These include:

The current entry guards and their status.

The current bandwidth accounting values (unused so far; see below).

When the file was last written

What version of Tor generated the state file

A short history of bandwidth usage, as produced in the router descriptors.

DataDirectory/control_auth_cookie

Used for cookie authentication with the controller. Only used when cookie authentication is enabled.

Server:

DataDirectory/keys/*

Only used by servers. Holds identity keys and onion keys.

DataDirectory/fingerprint

Only used by servers. Holds the fingerprint of the server’s identity key.

DataDirectory/approved-routers

Only for naming authoritative directory servers (see NamingAuthoritativeDirectory). This file lists nickname to identity bindings.

DataDirectory/router-stability

Only used by authoritative directory servers. Tracks measurements for router mean-time- between-failures so that authorities have a good idea of how to set their Stable flags.

Hidden Service:

HiddenServiceDirectory/hostname

The .onion domain name for this hidden service. If the hidden service is restricted to authorized clients only, this file also contains authorization data for all clients.

HiddenServiceDirectory/private_key

The private key for this hidden service.

HiddenServiceDirectory/client_keys

Authorization data for a hidden service that is only accessible by authorized clients.

Obsolete:

DataDirectory/cached-status/

The most recently downloaded network status document for each authority. Each file holds one such document; the filenames are the hexadecimal identity key fingerprints of the directory authorities. Mostly obsolete.

DataDirectory/cached-routers and cached-routers.new

Obsolete versions of cached-descriptors and cached-descriptors.new. When Tor can’t find the newer files, it looks here instead.

DataDirectory/bw_accounting

Used to track bandwidth accounting values (when the current period starts and ends; how much has been read and written so far this period). This file is obsolete, and the data is now stored in the ‘state’ file as well. Only used when bandwidth accounting is enabled.