What is a good way to use a public domain name to access a server running on my laptop?
Note: My laptop's IP is not static and could be anywhere, at my apartment, in a coffee shop, tethered to my cell phone, etc...
Use Case
The use case is for debugging. Specifically for Amazon Lambda development where remote debugging does not really have support. I need external services such as Twilio and Slack to be able to trigger the debugging API instance so that I can set breakpoints and step through code.
Possible solutions
I've heard that something called a "DNS Tunnel" might be a good way. Or perhaps something like OpenVPN? I do not know enough about networking to know the right place to start with something like this.
Still looking into the best solution for this, but thought I'd post what I've found so far.
There are free and paid services that can facilitate this. Some services are paid because this requires an actual intermediary server for the tunneling. The free services generally have a paid option.
Usually the free services only provide an ephemeral subdomain. Which is good for a lot of things, but not if you need to debug how external services such as Twilio interact with your API because you'll be going in and changing the URL settings all the time.
I did not find a free service that provides a permanent subdomain, which would solve most of the issues I have with the free services.
The most obvious paid service is ngrok.com, but their prices are really high.
This Github page has a very comprehensive list of free and paid services: https://github.com/anderspitman/awesome-tunneling
Some stand out free services requiring a public server installation that I saw on there were:
A paid service that stood out to me was: