Live data from Hacker News

Free DDNS with Cloudflare and a cronjob

github.com

161–170 of 202 posts

Re: Free DDNS with Cloudflare and a cronjob

#161

Earlier quoted context omitted.

There are some limitations such as: – TLS termination mandatorily happens at Cloudflare (i.e. your traffic is mitm'ed). That's because this free product is meant as a gateway drug (aka a loss leader) to Cloudflare's WAF/Anti-DDOS products (which require TLS termination to happen on their side for technical reasons). – Other TCP protocols (including SSH) require every client to run the software too. So if you were thi…

> – TLS termination mandatorily happens at Cloudflare (i.e. your traffic is mitm'ed). That's because this free product is meant as a gateway drug (aka a loss leader) to Cloudflare's WAF/Anti-DDOS products (which require TLS termination to happen on their side for technical reasons). But on the flip side, this allows you to have a nice certificate on your outside connection without having to fiddle with letsencrypt or…

The point of TLS is to prevent your traffic getting MITMed. This benefit disappears if you have to let someone MITM your traffic to get TLS.

Re: Free DDNS with Cloudflare and a cronjob

#162
post #55

Earlier quoted context omitted.

No one sunsets products like Google. I’m in the middle of transferring all my domains from Squarespace thanks to Googles sale of that business to that incredibly lousy vendor.

This is how I ended up on Cloudflare. Burn by Google yet again.

Now we wait until you get burned by Cloudflare. Have we already forgotten the "We've discovered a technical problem with your domain: pay us $150,000 or fuck off"

Re: Free DDNS with Cloudflare and a cronjob

#163

Seems to rely on https://api.ipify.org/ to determine public IP. Is there any Cloudflare service one can use to determine the IP instead? That way there’s not an extra company in addition to Cloudflare itself that you need to continue existing.

https://www.cloudflare.com/cdn-cgi/trace will return your ip.

Works on every cloudflare-MITMed domain btw.

Re: Free DDNS with Cloudflare and a cronjob

#164
post #59

Earlier quoted context omitted.

This is how I use it in my bash script: current_ip=$(curl -s -X GET https://1.1.1.1/cdn-cgi/trace | grep -Po "(?

I find awk more clear for this kind of job. You can replace grep -Po "(? with awk -F= '$1 == "ip" { print $2 }'

Thanks for that, I agree.

Re: Free DDNS with Cloudflare and a cronjob

#165

Seems to rely on https://api.ipify.org/ to determine public IP. Is there any Cloudflare service one can use to determine the IP instead? That way there’s not an extra company in addition to Cloudflare itself that you need to continue existing.

I’ve used this: dig @1.1.1.1 ch txt whoami.cloudflare +short

That's pretty neat!

And they offer a similar service on their DNS resolver over IPv6.

This page lists the IPv6 addresses to use when connecting to their resolver over IPv6

https://developers.cloudflare.com/1.1.1.1/ip-addresses/

and with that I just tried

  dig @2606:4700:4700::1111 ch txt whoami.cloudflare +short
And it works, returning the IPv6 address that the request came from :)

Re: Free DDNS with Cloudflare and a cronjob

#166
post #148

Earlier quoted context omitted.

Not a web browser, the client has to install cloudflared to connect. It's pretty much exactly the Tailscale feature, but clunkier. https://developers.cloudflare.com/cloudflare-one/connections...

GP was saying the client would require a web browser. The server of course needs cloudflared. That said, personally I don't really have any devices that can use SSH but not a browser.

> I don't really have any devices that can use SSH but not a browser.

No headless boxes?

Re: Free DDNS with Cloudflare and a cronjob

#167

Earlier quoted context omitted.

> – TLS termination mandatorily happens at Cloudflare (i.e. your traffic is mitm'ed). That's because this free product is meant as a gateway drug (aka a loss leader) to Cloudflare's WAF/Anti-DDOS products (which require TLS termination to happen on their side for technical reasons). But on the flip side, this allows you to have a nice certificate on your outside connection without having to fiddle with letsencrypt or…

The point of TLS is to prevent your traffic getting MITMed. This benefit disappears if you have to let someone MITM your traffic to get TLS.

This depends. The point of TLS is to protect your application from hostile networks. Cloudflare hasn't proven hostile yet.

Re: Free DDNS with Cloudflare and a cronjob

#168
There's one gotcha tho.

For Dynamic DNS you want minimal TTL, ideally less than 60 seconds, otherwise the DNS records will be cached and will not reflect the correct address during the short period of time window it changes.

Dedicated DDNS services usually have very short TTL (some offering as low as 5 seconds IIRC), but free Cloudflare accounts have a minimal TTL of 300 seconds (5 minutes), coupled with the crontab running every 5 minutes, your endpoint could be out of contact for 10 minutes if everything aligns right.

Re: Free DDNS with Cloudflare and a cronjob

#169

There's one gotcha tho. For Dynamic DNS you want minimal TTL, ideally less than 60 seconds, otherwise the DNS records will be cached and will not reflect the correct address during the short period of time window it changes. Dedicated DDNS services usually have very short TTL (some offering as low as 5 seconds IIRC), but free Cloudflare accounts have a minimal TTL of 300 seconds (5 minutes), coupled with the crontab…

Then run the cron every minute. As you can see with his example, it doesn't even run every 5 mins.

For unproxied records you can set the TTL to 1 minute as per their documentation..

And normally your IP would change only when reconnecting, so it's not a big deal...

Re: Free DDNS with Cloudflare and a cronjob

#170
post #154
post #131

Earlier quoted context omitted.

That requires running it on the router/device which gets the public IP address. By using the service you can update your DNS IP address on a system that is behind the router.

What do you mean? Every device gets a public ipv6 (usually).

I have a router connected to the internet, it gets the public IP address.

The router is connected to the internal network in my home and has the IP address of 192.168.1.1.

Behind the router is my computer which has a non-public IP address, for example 192.168.1.2. My computer is the one I want to run the program to update the DNS entry. My computer does not know what the public IP address is by looking at its interfaces.

Post reply on HN