Raspberry Pi webserver, even if its behind NAT

You have a Raspberry Pi and the way it connects to the internet is through an ISP that doesn’t provide you a static IP, instead some private IP address like 10.x.x.x or 192.168.x.x? Don’t worry, you can still connect to it from outside and have it handle all webservice requests through a very easy configuration.

The concept is called “reverse SSH tunneling”, which I just discovered today. The idea is that the Raspberry Pi is connected to a server, which behaves as a proxy between the user and the Raspberry Pi. This proxy server could well be a free micro instance of an EC2 server, or some other VPS like Linode.

I found the instructions here: Alex on Linux. Here is the final deployment diagram for me, followed by a lovely picture of my credit card sized webserver.