惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
Y
Y Combinator Blog
博客园_首页
Martin Fowler
Martin Fowler
博客园 - 司徒正美
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
B
Blog
有赞技术团队
有赞技术团队
A
About on SuperTechFans
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI

seize the dev

Will Software Engineering Survive? Why is the Gmail app 700 MB? Bits of Open-Source in 2025 Parsing JSON in Forty Lines of Awk A Tricky Floating-Point Calculation Improving Date Formatting Performance in Node.js Unix is not Linux Installing FreeBSD on Oracle Cloud A Simple Setup for C and C++ How to Break Software
Self-Hosted Dynamic DNS
Mohamed Akram · 2026-07-19 · via seize the dev

There are many dynamic DNS (DDNS) providers, but I could not find one that supports updating records using nsupdate. This guide will show how to set up a DDNS service on your own server as well as how to integrate it with macOS to automatically push updates whenever the machine IP changes.

First, install Knot DNS on the server. Once installed, you’ll need to generate a TSIG key that will be used for authenticating updates to the DDNS server. To do so, run keymgr -t tsig.example.com. This will print a configuration that looks like the following:

The next step is to add it to knot.conf, which will most likely be in /etc/knot/knot.conf. Add the key configuration, followed by an accompanying ACL rule and the zone information:

Ensure the server is listening on all interfaces to be able to access it externally:

To integrate with macOS’s built-in DDNS client, you’ll need to add one more record. To do so, run:

knotc zone-begin example.com
knotc zone-set example.com _dns-update._udp 600 SRV 0 0 53 example.com.
knotc zone-commit example.com

Lastly, to enable DDNS on macOS, open Sharing in System Settings, and click Edit in the hostname section at the end. Enable Use dynamic global hostname, and fill the details as follows: