Do I need a public IP for boringproxy?

Hey, I’m new to this and don’t know much about it. Sorry if my question is dumb.
I want to setup a server with boring proxy because I have NO public IP provided by my ISP (I’m in a NAT).

I tried out ngrok and it was very easy because I only needed to start the exe type in my port and then could start the server. The server was accesible from outside through a link provided by ngrok.
The disadvantage of ngrok is that I get random links and I think my speed is throttled.

Hi @otto. Don’t worry, no such thing as dumb questions!

You will need a public IP to use boringproxy. The way most people do this is by getting a VPS from somewhere like DigitalOcean or AWS. Typically you’ll be paying $3-$6 a month for that. If you know how to do that (or even already have a VPS set up) boringproxy is pretty easy to use.

If not, I’d recommend checking the list here for other non self-hosted alternatives that might be faster than ngrok:

There are lots of free ones, but you have to keep in mind what their incentives are. Sometimes it’s out of the goodness of their hearts, but how long will such a service be around?

I can recommend Cloudlfare Tunnel since their incentives make sense (loss leader product).

Thank you very much for your fast and helpful reply.
I will try it out!

Anyway, Good luck with your project!

1 Like

Sorry, @anders, but homepage reads as if it were a solution to being behind a NAT and implies no public IP:

if you have a self-hosted web service (Nextcloud, Emby, Jellyfin, etherpad, personal website, etc.) running on a private network (such as behind a NAT at home), boringproxy aims to provide the easiest way to securely (i.e. HTTPS and optional password-protection) expose that server to the internet, so you can access it from anywhere.

So, if I have no public IP, am behind a NAT and want to be accessible from the internet, then boringproxy can’t help? But this is exactly what boringproxy is for, according to its description…

I have just come to try to set it up and here is your downing comment…

Please clarify this point - your reply has confused me.

Hi @uxer, sorry for the confusion. boringproxy is for the case where the services you want to access do not have a public IP, but you do have access to a public IP on some device. The reason this is useful is because it lets you rent a cheap VPS for running boringproxy, but host your services on your own hardware which can be much faster, have more storage, etc. This also lets you have more private control of your data, since your VPS provider can’t decrypt any of the data running through boringproxy.


IMHO, this pithy comment deserves its place on front page. It would add a ton to clarity on what boringproxy is.
Thank you, @anders for a worthy undertaking and your answer.

FWIW, there is a use case for boringproxy to be used completely on an internal network, to reverse proxy for self-hosted services on an internal network and then accessing them in on place. With recent changes (as of yet unreleased) you can even use an internal CA server that supports ACME (like step-ca) for generating certificates instead of LetsEncrypt. I’ve been doing this for months now and it works very well.

@mmguero, while I agree this is a valid use case, it’s not what boringproxy is designed to do. The main purpose of the project is to help people access their self-hosted services over the internet. I’m not opposed to adding features that enable more use cases, but those will always have lower priority than the stated goals. Hope that makes sense, and I’m always happy for more questions/discussion.

Absolutely, I understand. I’m a huge fan of the project, its goals and it’s versatility. Sorry to muddy the waters.