Some of us have a need of not just being connected but also connectable while moving around. Moving around means having different IP addresses, being connectable means that we need a fixed dns name such as myhost.somewhere.net. Enter dynamic DNS.
There are many services out there. However, they are not only dynamic in the sense they can map a changing ip address to a fixed name. They are also dynamic in the sense that they come and go, not least the free ones. So, there is a need for a general framework handling this, capable of handling changing services.
The task to update the DNS data for the host is just so often handled by ddclient, a perl script ubiquitous in all linux distros. It’s mature, and many services have instructions how to use it. Still, it has drawbacks: the config file is really complicated, it’s not flexible enough for all services, the documentation and help is not that great, and it’s really hard to maintain given the legacy. There are also security issues how passwords are handled.
I have spent some time creating an alternative.. While still simplistic, it supports 13 services out there. It’s called ddupdate, a python3 application. In some ways it’s an improvement.:
- It’s a plugin system configured in code rather than configuration files.
- User help is available, partly based on the installed plugins.
- The configuration is simple as long as there is a plugin supporting the used service,
- it’s linux-centric, using things like systemd, netrc and NetworkManager to solve things like running regularly, handling passwords and interfaces going up/down
- It’s ipv6-aware from the beginning
- It’s thoroughly documented in a README and a manpage.
- It’s packaged: pypi, debian and fedora packaging is available.
Try it, you might like it! https://github.com/leamas/ddupdate