Introduction: Home Proxy Using a Raspberry Pi - Unblock Sites at School or Work
This tutorial will cover how to create your own proxy server at home to protect your privacy and unblock websites at school or work.
Step 1: Ensure Your Pi Is Ready to Go
This tutorial will presume that you have installed Raspbian and have a connection to the internet.
If not, here's an excellent tutorial:
Step 2: Finding Your Router's IP Address (Default Gateway)
Your default gateway is likely 192.168.1.1 for most routers, or 10.0.0.1 if you are using a Comcast provided router. If its not either of those, try the following:
1) Open command prompt by holding Win + R and typing in 'cmd'
2) Enter 'ipconfig'
3) Look for the IP labeled 'Default Gateway'
4) Go to your web browser and enter that IP
5) If this leads to a log in screen or router settings screen, you have successfully found your default gateway!
6) Your username and password is likely a combination of admin/password or admin/admin. If its not, you may want to check the bottom or back of your router, check your router's manual, or go to https://portforward.com/router.htm and find your model router to get its username and password. If you have a network administrator that has changed the default gateway IP or username/password, you will want to contact them.
7) Write down your default gateway IP as you'll need it later
Step 3: Finding Your Pi's IP Address
1) Open terminal
2) Enter 'sudo ifconfig'
3) The IP next to 'inet addr' is your Pi's local IP
If you have problems with this, you may be able to find your Pi's IP through your router's Connected Devices menu in your default gateway
4) Write down your Pi's IP as you'll need it later
Step 4: Finding Your Public IP Address
Your public IP address is the address you use to communicate with any network you interact with.
1) Go to https://www.google.com/search?q=ip
2) Write this down as you'll need this when you get to your school/work
Step 5: Port Forwarding Your Pi
You are going to port forward your Pi on SSH.
This will be different for every router, but will follow generally similar instructions.
I have provided two examples, one on an Xfinity (Comcast) router and one on a Netgear router in the images above.
1) Navigate to port forwarding section (may be in advanced section)
2) Add service
3) Check type TCP/UDP
4) Enter your Pi's local IP address
5) Enter port 22 in Start and End
6) Save changes
Step 6: Download PuTTY on the Client Computer at School or Work
Download alternative PuTTY to your school or work computer running Windows:
Make sure not to download the installer, as you want the 32-bit portable 'alternative' version for best compatibility. It does not require administrator rights to run and is portable, so you may put it on a flash drive and it will work.
Other operating systems will work as well, but require their own method of routing traffic via SSH. I've tried this with Chromebooks at my school, but the network administrator removed proxy features from command prompt, as well as the ability to install chrome extensions. You may try yourself though.
Step 7: Configuring PuTTY
You must enter a few things to connect to your Pi remotely:
1) Enter your home's public IP address that we got earlier. If you forget your IP by the time you are at school/work, you might be able to get it from Gmail. Just log into Gmail, click "Load Basic HTML" on the bottom-right hand corner while its loading, click Details at the bottom middle of the page, and Gmail will list recent IP addresses that have logged into your account, one of which may be your home IP.
2) Enter Port 22 and ensure SSH is selected
3) Go to Connection > SSH > Tunnels
4) Enter port 1234 and select Dynamic, and click Add
5) Go back to Session > Logging and select Default and click Save. This will save this data for the future.
Step 8: Connecting to Your Pi Via PuTTY
Once PuTTY is configured, click Open to open the connection. You will be prompted with a security alert, just click Yes. You should then be prompted to enter a username and password. This is the username and password you use on Raspbian, which by default is as follows (unless you changed it yourself):
Step 9: Configuring Internet Options
1) Open Internet Options by hitting Win + R and entering 'inetcpl.cpl'
2) Go to Connections > LAN Settings > Proxy Server
3) Check 'Use a Proxy Server for your LAN'
4) Click Advanced
5) Under Socks, enter 127.0.0.1 for the proxy address and 1234 for the port
6) Click OK
Step 10: Check to See If Its Working
Once everything is all done, go to google.com and search "what is my IP". If your home IP shows up, everything worked successfully. If your school/work IP showed up, or you can't access the internet, then something went wrong.
Step 11: Troubleshooting
If Port 22 is blocked at your school/work:
1) Open terminal
2) Enter 'sudo nano /etc/ssh/sshd_config'
3) Replace Port 22 with Port 443. This will likely not be blocked, as it is the port HTTPS uses. If it is blocked, you may change it to a random other port.
4) Hit Ctrl + X and save the file
5) Adjust the previous steps accordingly to change all uses of port 22 to your new specified port
If SSH is disabled on Raspbian by default:
I don't know if this affects regular Raspbian, or just Raspbian's PIXEL OS, but they apparently disabled SSH by default to increase security. Go here for more info and how to enable it: