After I showed you how to expose a service behind a NAT or firewall with a VPN and a virtual private server in my previous blog post we look at another way how you can achieve the same with different technology.
In this tutorial, we are utilizing the Tor network and set up a hidden service to expose a service running on a computer that isn't accessible from the public Internet. Compared to the previous VPN solution, this is very easy to set up, but accessing these services needs a bit of a configuration and special software.
Tor is a free software for enabling anonymous communication and consists of thousands of relays to hide a user's IP address. For accessing the Tor network, you need special software. The easiest way to start with Tor is by downloading the Tor Browser. This a customized Firefox browser with an integrated Tor proxy and some pre-installed addons like NoScript and HTTPS Everywhere. When you access a website from the surface Web, for example, https://www.google.com, your traffic will be routed through 3 Tor relays. You can inspect them by clicking on the onion icon.
These relays hide my IP because all the server sees is the IP of the last node in the circuit (exit node). Be aware, while everything from the browser until the exit node is encrypted when using HTTP over cleartext TCP, the last node can read everything you send.