|  | @@ -92,9 +92,11 @@ working before we start thinking about setting up a web server locally.
 | 
	
		
			
				|  |  |  <p>First, open your torrc file in your favorite text editor. (See <a
 | 
	
		
			
				|  |  |  href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#torrc">this
 | 
	
		
			
				|  |  |  FAQ entry</a> to learn what this means.) Go to the middle section and
 | 
	
		
			
				|  |  | -look for the line<br />
 | 
	
		
			
				|  |  | -<tt>############### This section is just for location-hidden services ###</tt><br />
 | 
	
		
			
				|  |  | -</p>
 | 
	
		
			
				|  |  | +look for the line</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<pre>
 | 
	
		
			
				|  |  | +############### This section is just for location-hidden services ###
 | 
	
		
			
				|  |  | +</pre>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <p>
 | 
	
		
			
				|  |  |  This section of the file consists of groups of lines, each representing
 | 
	
	
		
			
				|  | @@ -117,12 +119,92 @@ Google. So add the following lines to your torrc:
 | 
	
		
			
				|  |  |  </p>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <pre>
 | 
	
		
			
				|  |  | -HiddenServiceDir /home/yourname/hidserv/
 | 
	
		
			
				|  |  | +HiddenServiceDir /home/username/hidserv/
 | 
	
		
			
				|  |  | +HiddenServicePort 80 www.google.com:80
 | 
	
		
			
				|  |  | +</pre>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>You're going to want to change the HiddenServiceDir line, so it
 | 
	
		
			
				|  |  | +points to an actual directory that you have read/write access to. Fill
 | 
	
		
			
				|  |  | +in your own username in place of "username". For
 | 
	
		
			
				|  |  | +example, in Windows you might pick:</p>
 | 
	
		
			
				|  |  | +<pre>
 | 
	
		
			
				|  |  | +HiddenServiceDir C:\Documents and Settings\username\hidden_service/
 | 
	
		
			
				|  |  |  HiddenServicePort 80 www.google.com:80
 | 
	
		
			
				|  |  |  </pre>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -<p>The above directory is for Windows people. OS X or Unix people should
 | 
	
		
			
				|  |  | -use <tt>/tmp/hidserv</tt> instead.
 | 
	
		
			
				|  |  | +<p>Now save the torrc, and restart your Tor.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>If Tor starts up again, great. Otherwise, something is wrong. Look
 | 
	
		
			
				|  |  | +at your torrc for obvious mistakes like typos. Then double-check
 | 
	
		
			
				|  |  | +that the directory you picked is writeable by you. If it's still
 | 
	
		
			
				|  |  | +not working, you should look at the Tor logs for hints. (See <a
 | 
	
		
			
				|  |  | +href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#Logs">this
 | 
	
		
			
				|  |  | +FAQ entry</a> if you don't know how to enable or find your log file.)
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>When Tor starts, it will automatically create two files in the
 | 
	
		
			
				|  |  | +HiddenServiceDir that you specified. First, it will generate a new
 | 
	
		
			
				|  |  | +public/private keypair for your hidden service, and write it into a
 | 
	
		
			
				|  |  | +file called "private_key". Don't share this key with others -- if you
 | 
	
		
			
				|  |  | +do they will be able to impersonate your hidden service. If you plan to
 | 
	
		
			
				|  |  | +keep your service available for a long time, you might want to make a
 | 
	
		
			
				|  |  | +backup copy of the private_key somewhere.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>The other file it will create is called "hostname". This contains
 | 
	
		
			
				|  |  | +a short summary of your public key -- it will look something like
 | 
	
		
			
				|  |  | +<tt>6sxoyfb3h2nvok2d.onion</tt>. This is the public name for your service,
 | 
	
		
			
				|  |  | +and you can tell it to people, publish it on websites, put it on business
 | 
	
		
			
				|  |  | +cards, etc.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>Now that you've restarted Tor, it is busy picking introduction points
 | 
	
		
			
				|  |  | +in the Tor network, and generating what's called a "hidden service
 | 
	
		
			
				|  |  | +descriptor", which is a signed list of introduction points along with
 | 
	
		
			
				|  |  | +the service's full public key. It anonymously publishes this descriptor
 | 
	
		
			
				|  |  | +to the directory servers, and other people anonymously fetch it from the
 | 
	
		
			
				|  |  | +directory servers when they're trying to access your service.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>Try it now: paste the contents of the hostname file into your web
 | 
	
		
			
				|  |  | +browser. If it works, you'll get the google frontpage, but the URL in your
 | 
	
		
			
				|  |  | +browser's window will be your hidden service hostname. If it doesn't work,
 | 
	
		
			
				|  |  | +look in your logs for some hints, and keep playing with it until it works.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<hr />
 | 
	
		
			
				|  |  | +<a name="two"></a>
 | 
	
		
			
				|  |  | +<h3>Step Two: Now install a web server locally</h3>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>Now that you've got hidden services working on Tor, you need to
 | 
	
		
			
				|  |  | +set up your web server locally. Setting up a web server is tricky,
 | 
	
		
			
				|  |  | +so we're just going to go over a few basics here. If you get stuck
 | 
	
		
			
				|  |  | +or want to do more, find a friend who can help you.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>If you're on Unix or OS X and you're comfortable with
 | 
	
		
			
				|  |  | +the command-line, by far the best way to go is to install <a
 | 
	
		
			
				|  |  | +href="http://www.acme.com/software/thttpd/">thttpd</a>. Just grab the
 | 
	
		
			
				|  |  | +latest tarball, untar it (it will create its own directory), and run
 | 
	
		
			
				|  |  | +./configure && make. Then mkdir hidserv, cd hidserv, and run
 | 
	
		
			
				|  |  | +"../thttpd -p 5222 -h localhost". Wham, you're running a webserver on
 | 
	
		
			
				|  |  | +port 5222. You can put files to serve in the hidserv directory.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>If you're on Windows, ...
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<hr />
 | 
	
		
			
				|  |  | +<a name="three"></a>
 | 
	
		
			
				|  |  | +<h3>Step Three: Connect your web server to your hidden service</h3>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<p>This part is very simple. Open up your torrc again, and change the
 | 
	
		
			
				|  |  | +HiddenServicePort line from "www.google.com:80" to "localhost:5222".
 | 
	
		
			
				|  |  | +Then restart Tor. Make sure that it's working by reloading your hidden
 | 
	
		
			
				|  |  | +service hostname in your browser.
 | 
	
		
			
				|  |  | +</p>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <hr />
 | 
	
		
			
				|  |  |  
 |