Disclaimer: This article is intended for informational/educational purposes only. I do not advocate or condone illegal/unethical behavior, and assume no responsibility or liability for any consequences resulting from the use of the information below.

Tunneling is the process of encapsulating one kind of network traffic (the payload) inside of another kind of network traffic (the container). The resulting traffic would look just like the container traffic to an outside observer.

A common type of network tunnel is the SSH tunnel, which can be used to transfer network traffic through untrusted zones in a secure way. With an SSH tunnel, each packet of the payload traffic is wrapped inside an encrypted SSH packet.

SSH tunnel usage examples

Secure your Internet traffic at the coffee shop

Let's say you would like to transfer your personal email or Internet browsing traffic through an untrusted zone like a public WiFi network. You could create an encrypted SSH tunnel from your computer to a trusted network to ensure your traffic stays secure.

(See poorly-drawn whiteboard diagram above)

Circumvent firewalls and web filters

Firewalls and web filters block access to websites and other Internet services, usually for the purpose of squelching content and services deemed inappropriate by the individuals, organizations, or governments controlling them. The problem is, these systems also prevent access to useful and important content and services. This can result in anything from minor annoyances like being blocked from Wikipediaat school or work, to a government censoring political events.

Creating an SSH tunnel with PuTTY

Here's a guide on how to create an SSH tunnel with PuTTY. This guide makes the following assumptions: