ttdnsd accepts DNS requests via UDP and forwards the to a resolving nameserver via TCP. The actual requests are really just forwarded so one has complete access to the nameserver ttdnsd is talking to. -- It's not a very complicated process. If there are no problems with the setup it could go as smoothly as connecting to the 'net using a mobile broadband dongle. ttdnsd only connects to the resolving nameserver after receiving a request via UDP. For each connection ttdnsd randomly selects one of the nameservers it knows about. The connection will be used for forwarding multiple requests in a pipelined fashion and is kept open only until no more requests are received via UDP. This pipelining is required to overcome the initial connection overhead time which is quite long when using Tor. To run this service at system startup, edit your rc.local and add this code: if [ -x /etc/rc.d/rc.ttdsnd ]; then /etc/rc.d/rc.ttdsnd start fi after the similar code used to start the Tor service. To stop the service add this to your rc.local_shutdown: if [ -x /etc/rc.d/rc.ttdsnd ]; then /etc/rc.d/rc.ttdsnd stop fi before the Tor shutdown routines. Remember that this package acts like a DNS resolver so it listens by default on port 53. If you're going to run another DNS server like bind either as a cache to this server or in parallel, remember to modify ttdnsd default port or it will not start. This package requires tor and tsocks.