I recently moved my dynamic DNS hostnames from dyndns.org (now owned by Oracle) to No-IP. In the process, I moved all of my hostnames under a sub-domain that I control in case I ever want to self-host the authoritative DNS server for it.
Creating an account
In order to use my own existing domain, I registered for the Plus Managed
DNS service and provided my top-level
domain (fmarier.org
).
Then I created a support ticket to ask for
the sub-domain feature. Without that, No-IP expects you to delegate your
entire domain to them, whereas I only wanted to delegate *.dyn.fmarier.org
.
Once that got enabled, I was able to create hostnames like machine.dyn
in
the No-IP control panel. Without the sub-domain feature, you can't have dots
in hostnames.
I used a bogus IP address (e.g. 1.2.3.4
) for all of the hostnames I
created in order to easily confirm that the client software is working.
DNS setup
On my registrar's side, here are the DNS records I had to add to delegate
anything under dyn.fmarier.org
to No-IP:
dyn NS ns1.no-ip.com.
dyn NS ns2.no-ip.com.
dyn NS ns3.no-ip.com.
dyn NS ns4.no-ip.com.
dyn NS ns5.no-ip.com.
Client setup
In order to update its IP address whenever it changes, I installed ddclient on each of my machines:
apt install ddclient
While the ddclient package won't help you configure your No-IP service during installation or enable the web IP lookup method, this can all be done by editing the configuration after the fact.
I put the following in /etc/ddclient.conf
:
ssl=yes
protocol=noip
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=dynupdate.no-ip.com
login=myusername
password='Password1!'
machinename.dyn.fmarier.org
and the following in /etc/default/ddclient
:
run_dhclient="false"
run_ipup="false"
daemon_interval="3600"
Then restart the service:
systemctl restart ddclient.service
Note that you do need to change the default update interval or the
checkip.dyndns.com
server will ban your IP
address.
Alternatively, just setup your own lightweight IP address echoing service and avoid the problem entirely.
Testing
To test that the client software is working, wait 6 minutes (there is an internal check which cancels any client invocations within 5 minutes of another), then run it manually:
ddclient --verbose --debug
The IP for that machine should now be visible on the No-IP control panel and in DNS lookups:
dig +short machinename.dyn.fmarier.org
Hi, Do you use IPv6? How do you update the IPv6 ? Best, S.V.
Unfortunately, No-IP still doesn't support IPv6 in their Dynamic DNS service. My setup is IPv4-only.
I'd be happy to consider other services that support IPv6 if they also support custom domains and are supported by a client that's included in Debian. If you know of one, please leave a comment.