I’m looking to try some hands-on experience setting up proxies. However, the proxy I want to setup is a bit unique. My end goal is to be able to do the following:
- Connect a Raspberry Pi to a network using Ethernet or Wi-Fi
- Automatically have the Raspberry Pi (as soon as it is powered on and connected) send its own public IP address (and other relevant proxy information, where applicable) to a home server (and periodically retry sending this information if the server is down)
- Be able to proxy my connection from a separate network through the Raspberry Pi (by simply entering in the IP address and port as a normal proxy) so that my public IP address will now show up as that of the network the Raspberry Pi is connected to
I want to avoid configuring port forwarding for networks the Raspberry Pi is connected to. I can configure port forwarding for the network my home server is connected to, but if possible I would like to avoid that as well (for convenience and security).
I also want to avoid using a third party service (e.g. Linode) to manage the proxy for me. I want the Raspberry Pi to do all the work here, ideally using open source software such as Privoxy or Squid. I want this to be an HTTP proxy. If possible, I would like to encrypt the proxy connection.
I’m not sure if any of this would be possible without port forwarding. Maybe some sort of reverse proxy would help with this. I understand how a proxy such as this could have the potential for misuse, as do most things. I’m making this post for educational purposes only, so that I can better my understanding of proxies and network security.
Any guides or videos on how to set this up are greatly appreciated. I found a few, but none quite capture what I’m describing here. Most don’t talk about using this across separate networks, only local networks.
Thank you!
This would be easy with
ssh -D 8000 remotehost
. I actually do exactly this every day, but not from a Pi, and with a bunch of-L
forwards too.Configure your browser to use 127.0.0.1:8000 as a socks 5 proxy and voila.
Bonus points for having a proxy.pac file with more advanced proxy configuration logic.
Also check out sshuttle.