Back to Blog

DNS Records Are A Pain (And Why Nameservers Matter)

Spent the last two hours setting up dragonmorphs.hizhub.com. Should have taken five minutes.

The Problem

Needed a subdomain for my DragonMorphs project. Added an A record in Hetzner's DNS panel pointing to my server IP. Looked perfect.

Waited. Checked the site. Wrong IP address showing up. Not even close to mine.

Why It Failed

Domain registered with IONOS. Hosting on Hetzner. DNS records in Hetzner's panel.

The issue: My domain was still using IONOS nameservers, not Hetzner's.

What this means: I was editing DNS records in Hetzner, but the internet was asking IONOS for answers. Hetzner's records didn't matter.

The Fix

Switched my nameservers from IONOS to Hetzner's:

  • helium.ns.hetzner.de
  • hydrogen.ns.hetzner.com
  • oxygen.ns.hetzner.com

Now all DNS is managed in one place. IONOS DNS panel went inactive - that's correct.

Setting Up Nginx

DNS working. Site still returned 404. Needed to configure Nginx to actually serve the Laravel app.

Created config file, enabled it, added SSL with Certbot. Standard stuff.

Permission Issues

Laravel couldn't write logs. Fixed with:

sudo chown -R www-data:www-data ~/sites/dragonmorphs
sudo chmod -R 775 storage bootstrap/cache

Missing SQLite

Laravel needed PHP SQLite extension. Installed it, restarted PHP-FPM, ran migrations. Database created.

DNS Propagation Hell

Site working locally on the server. But from my machine? Still getting the old IP.

The problem: DNS propagation isn't instant. Different DNS servers cache records for different amounts of time.

Google's DNS showed the correct IP, then the wrong IP, then correct again. Total chaos during the nameserver transition.

Hetzner's nameservers always showed the correct IP. Just needed time for everyone else to catch up.

How long? Nameserver changes can take up to 48 hours. Usually 1-4 hours. A record changes are faster - 15-60 minutes typically.

What I Learned

Check your nameservers first. DNS records only work if they're on the nameservers your domain actually uses.

Pick one place for DNS. I was editing records in Hetzner while my domain asked IONOS for answers. Waste of time.

Nameserver changes take longer. Changing nameservers = longer wait. Adding records with existing nameservers = faster.

Test from the source. Query the actual nameserver directly to verify your changes. If that's correct, just wait for propagation.

The Result

https://dragonmorphs.hizhub.com works now. All DNS managed in Hetzner. One place. Clean.

Took two hours. Most of it waiting for DNS to propagate.

Should have checked nameservers first. Would have saved an hour of confusion.


Lesson: Your DNS records are only useful if they're on the nameservers your domain actually uses. Check your nameservers first.