Cfddns: Difference between revisions
(2 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
This can be compared with http://no-ip.org or http://dyndns.com with the diffrence that you renew the ip address of your own (sub) domain.<br> | This can be compared with http://no-ip.org or http://dyndns.com with the diffrence that you renew the ip address of your own (sub) domain.<br> | ||
CFDDNS updates IP 4 or 6 automatically depending on the query host (what is my ip?)<br> | CFDDNS updates IP 4 or 6 automatically depending on the query host (what is my ip?)<br> | ||
<br> | <br> | ||
<span style="font-size:180%">''Scrpts are available for Perl (Ver 5) , Powershell (Ver 5/7) or Python (Ver 3).''</span> | |||
Testet on Windows 10/2016 (cfddns.ps1, cfddns.pl, cfddns.py) and Debian 10/11 (cfddns.pl, cfddns.py). | Testet on Windows 10/2016 (cfddns.ps1, cfddns.pl, cfddns.py) and Debian 10/11 (cfddns.pl, cfddns.py). | ||
<br><br> | <br><br> | ||
Line 31: | Line 33: | ||
<CONFIG> | <CONFIG> | ||
<Settings | <Settings | ||
APIKey="Your API Key goes here" | APIKey="Your API Key goes here - NOTE: Do not create a new key, instead use the '''Global API Key'''" | ||
ZoneID="Your Zone ID goes here" | ZoneID="Your Zone ID goes here" | ||
FQDN="my.domain.com" | FQDN="my.domain.com" | ||
Line 84: | Line 86: | ||
OR | OR | ||
*/5 * * * * /path/to/scrip/cfddns.pl -c /path/to/config/config.xml | */5 * * * * /path/to/scrip/cfddns.pl -c /path/to/config/config.xml | ||
*Run at reboot | |||
@reboot /usr/local/bin/cfddns.pl -c /usr/local/bin/cfddns.xml -v | logger | |||
=Download= | =Download= |
Latest revision as of 22:14, 20 January 2023
Why CFDDNS
Cloudflare DynDNS (CFDDNS) is a tiny script which allows you to update your DNS record on Cloudflare.
This can be compared with http://no-ip.org or http://dyndns.com with the diffrence that you renew the ip address of your own (sub) domain.
CFDDNS updates IP 4 or 6 automatically depending on the query host (what is my ip?)
Scrpts are available for Perl (Ver 5) , Powershell (Ver 5/7) or Python (Ver 3).
Testet on Windows 10/2016 (cfddns.ps1, cfddns.pl, cfddns.py) and Debian 10/11 (cfddns.pl, cfddns.py).
Requirements
- Cloudflare account with an associate domain on it (The free account can do it)
- Cloudflare API Key
- Cloudflare registered email account
- Owner of a registered Domain not necessarily on Cloudflare but served with Cloudflare
- Windows Server 2016 or higher or Windows 10 or Debian/Ubuntu
Installation (Perl only)
- Get the script and configuration (Link below) and copy / unzip to a directory of your choice
Windows
- Install http://strawberryperl.com/
- Get additional modules - run:
> cpan -i Net::IP
Linux
- Debian/Ubuntu - Perl is already installed
- Get additional modules - run:
# apt-get install libwww-perl libjson-perl libxml-simple-perl libnet-ip-perl
Configuration
<?xml version="1.0"?> <CONFIG> <Settings APIKey="Your API Key goes here - NOTE: Do not create a new key, instead use the Global API Key" ZoneID="Your Zone ID goes here" FQDN="my.domain.com" AuthMail="mail@domain.com" IPInfo="https://ifconfig.io/ip" TTL="300" PROXIED="false" /> </CONFIG>
Startup
There are two ways to start
Startup with the default configuration
cfddns.xml is omited within the application directory
Windows
c:\myPath > perl cfddns.pl c:\myPath > powershell -file cfddns.ps1
Linux
~ # ./cfddns.pl ~ # perl cfddns.pl ~ # ./cfddns.py ~ # python3 cfddns.py
Notes with InfoURL
An InfoURL is needed to get your actual IP which is then compared with the Cloudflare setup.
Th default is https://ifconfig.io/ip
Alternative services to get IP 4 addresses are
InfoURL together with IP 6 might be tricky because the FQDN might need to enforce this, a possible solution for IP6/4 can be:
Params
- -c Optional path to configuration
- -v Be verbose
- -h Display help
Startup with customized configuration
Perl only
Configuration file is specified with -c
~ # ./cfddns.pl -c /path/to/config.xml
Crontab samples
- Run all 5 minutes
*/5 * * * * (cd /patth/to/script/; ./cfddns.pl)
OR
*/5 * * * * /path/to/scrip/cfddns.pl -c /path/to/config/config.xml
- Run at reboot
@reboot /usr/local/bin/cfddns.pl -c /usr/local/bin/cfddns.xml -v | logger