Dynamic DNS
Dynamic DNS or DDNS is a method of updating, in real time, a DNS to point to a changing IP address on the Internet. This is used to provide a persistent domain name for a resource that may change location on the network.
Contents
Router
Many routers have built in DDNS Services but can be limited in the services which they update. If the Router supports a the service, or you are willing to pay or donate for a service, you should do this, it is faster and more reliable. In that case, there is no need to use a softwareside solution.
Software Dynamic DNS
Afraid
FreeDNS.afraid.org is a free Service which is easy and uncomplicated to set up.
There are several options to enable automatic DDNS updating for this provider:
afraid-dyndns
The package afraid-dyndns-uvAUR is available in the AUR.
petrified
The package petrifiedAUR is available in the AUR.
ddclient
The package ddclient is available in the community repository. It includes systemd support.
An example config file looks like this:
daemon=600 cache=/tmp/ddclient.cache syslog=yes pid=/var/run/ddclient.pid use=web, web=checkip.dyndns.com/, web-skip='IP Address' ssl=yes ## Configuration variables applicable to the 'freedns' protocol are: # protocol=freedns ## # server=fqdn.of.service ## defaults to freedns.afraid.org # login=service-login ## login name and password registered with the service # password=service-password ## # fully.qualified.host ## the host registered with the service. # protocol=freedns login=my-freedns.afraid.org-login password=my-freedns.afraid.org-password myhost1.afraid.org myhost2.afraid.org
To enable the systemd service:
systemctl enable ddclient
Cron
Another option is to:
- Goto your Dynamic DNS page at freedns.afraid.org
- Add A record and select your prefered domain name
- Press quick cron example behind the desired A record
- Test one of the examples:
curl http://freedns.afraid.org/dynamic/update.php?Ukd...
- Use
crontab -e
to insert the new cronjob:
*/6 * * * * sleep 20 ; curl http://freedns.afraid.org/dynamic/update.php?Ukd...Dk2 > /tmp/freedns_my_ddns_record.com.log 2>&1 &
Netctl
To add the record of your IP to freedns.afraid.org along with a network connection through the use with Netctl. You can append the following line to your netctl profile.
ExecUpPost='curl -ks http://freedns.afraid.org/dynamic/update.php?ZRRJZ...................bzo4Njc1M4DA'
DNSdynamic
DNSdynamic "will always be absolutely free" and works with ddclient
duiadns
Duiadns.org. The package duiadnsAUR is available in the AUR.
No-IP
noipAUR is a dynamic DNS client updater for no-ip.com services.
Configure the client by running
# noip2 -C
See noip2 -h
for more options. Start noip2.service
to run the host updater and enable it to run automatically at boot.
System-NS
System-NS free DNS service.
cron
Make directory and script file in it.
$ cd ~ $ mkdir systemns $ cd systemns $ vi systemns.sh
Put this text in systemns.sh. You should change domain and token parameters.
#!/bin/bash wget -q -O- --post-data "type=dynamic&domain=mydomain.system-ns.net&command=set&token=880078764367979fe765c0fa3f4efff1" http://system-ns.com/api | grep -v '"code":0' | awk '{print d, $0}' "d=$(date)" >> ~/systemns/systemns.log
Make the systemns.sh file executable.
$ chmod +x systemns.sh
Open crontab.
$ crontab -e
Put this text in the crontab (run every 5 minutes)
*/5 * * * * ~/systemns/systemns.sh