I have just set up a free DNS plan and I am trying to get ddclient to update an IP address and it is not working. I am using the el7 packages and the latest is 3.8.3 From what I have read, I need to have a later version so I have installed the latest from GitHub - ddclient/ddclient: This is the new home for ddclient. Ddclient is a Perl client used to update dynamic DNS entries for accounts on 'Dynamic DNS Network Services' free DNS service. It currently supports a lot of different routers and a few different services. which appears to be a little after 3.9.1 (3.9.1 on Github is missing the configure file). I have tried with various configs with both an API token and EMail/API Key. This is my config using a token and updaating a subdomain (for testing):
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with ssl-library
use=if if=ppp0
protocol=cloudflare, \
zone=howitts.co.uk, \
server=www.cloudflare.com, \
password=my_api_token \
cloudflare.howitts.co.uk
To test I run:
/usr/bin/ddclient -daemon=0 -debug -verbose -noquiet
And the response I am getting is:
WARNING: file /var/cache/ddclient/ddclient.cache, line 4: Invalid Value for keyword 'ip' = ''
INFO: setting IP address to 84.9.57.48 for cloudflare.howitts.co.uk
UPDATE: updating cloudflare.howitts.co.uk
CONNECT: www.cloudflare.com
CONNECTED: using SSL
SENDING: GET /zones?name=howitts.co.uk HTTP/1.0
SENDING: Host: www.cloudflare.com
SENDING: User-Agent: ddclient/3.9.1
SENDING: Connection: close
SENDING: Content-Type: application/json
SENDING: Authorization: Bearer my_api_token
SENDING:
RECEIVE: HTTP/1.1 301 Moved Permanently
RECEIVE: Date: Thu, 07 Jan 2021 17:14:44 GMT
RECEIVE: Content-Type: text/html
RECEIVE: Connection: close
RECEIVE: Set-Cookie: __cfduid=de19899c866bac948b14097903555a8fa1610039684; expires=Sat, 06-Feb-21 17:14:44 GMT; path=/; domain=.www.cloudflare.com; HttpOnly; SameSite=Lax; Secure
RECEIVE: Location: https://www.cloudflare.com/zones/?name=howitts.co.uk
RECEIVE: CF-Ray: 60df511a7e990c49-MAN
RECEIVE: Strict-Transport-Security: max-age=31536000
RECEIVE: Vary: Accept-Encoding
RECEIVE: CF-Cache-Status: MISS
RECEIVE: cf-request-id: 077f71048800000c493835b000000001
RECEIVE: Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
RECEIVE: X-Content-Type-Options: nosniff
RECEIVE: X-Frame-Options: SAMEORIGIN
RECEIVE: X-XSS-Protection: 1; mode=block
RECEIVE: Set-Cookie: __cflb=02DiuJFZNR1vT983reJ7ooDAdV9yu7NGoRfNUj8tUkKsa; SameSite=Lax; path=/; expires=Fri, 08-Jan-21 16:14:44 GMT; HttpOnly
RECEIVE: Set-Cookie: __cf_bm=e752f78713602a78d0b35f94679da5cabdd65f06-1610039684-1800-ASnPwqlYTKvtjoXgCariTxhwXrdKbj7Aqk9dPTRqTXJfH6qx9NLy+EVOf5Ak1NgT9sMvEvS66YePSSmQ6YV0LvY=; path=/; expires=Thu, 07-Jan-21 17:44:44 GMT; domain=.www.cloudflare.com; HttpOnly; Secure; SameSite=None
RECEIVE: Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?s=xkEoHMvv9KjSo3ZgvGHGKxUhzQtLjtGqcYCCdgrDRXiNOaIaa8FfmTpiCLZiRDrQDZKqdhe9GuQcqgu8xXeFclOz8P4LJzKuOAZVfCG06M4JdHg%3D"}],"group":"cf-nel","max_age":604800}
RECEIVE: NEL: {"report_to":"cf-nel","max_age":604800}
RECEIVE: Server: cloudflare
RECEIVE:
RECEIVE: <html>
RECEIVE: <head><script>window.redwood={"consentGroups":{"C0001":false,"C0002":false,"C0003":false,"C0004":false},"country":"GB","colo":"MAN","locale":"en-US"}</script>
RECEIVE: <script>
RECEIVE: const acceptedLocales = [
RECEIVE: 'en-au',
RECEIVE: 'en-ca',
RECEIVE: 'en-gb',
RECEIVE: 'en-in',
RECEIVE: 'en-us',
RECEIVE: 'de-de',
RECEIVE: 'es-es',
RECEIVE: 'es-la',
RECEIVE: 'fr-fr',
RECEIVE: 'it-it',
RECEIVE: 'ja-jp',
RECEIVE: 'ko-kr',
RECEIVE: 'pt-br',
RECEIVE: 'zh-tw',
RECEIVE: 'zh-cn',
RECEIVE: ];
RECEIVE: const orphanLocales = [
RECEIVE: 'ru-ru',
RECEIVE: 'sv-se',
RECEIVE: 'nl-nl',
RECEIVE: 'vi-vn',
RECEIVE: 'th-th',
RECEIVE: 'id-id',
RECEIVE: ];
RECEIVE: const ignoreList = [
RECEIVE: 'apps',
RECEIVE: 'docs',
RECEIVE: ]
RECEIVE: function getPathFromLocale(locale, code, pathString) {
RECEIVE: if ( locale === code || !acceptedLocales.includes(code) || acceptedLocales.includes(locale) || orphanLocales.includes(locale) ) {
RECEIVE: return null;
RECEIVE: } else {
RECEIVE: return [code, locale ? locale : '', pathString].filter(part => part !== '').join('/');
RECEIVE: }
RECEIVE: };
RECEIVE: if (localStorage.getItem('langPreference')) {
RECEIVE: if (localStorage.getItem('langPreference').toLowerCase() != 'en-us') {
RECEIVE: const langPreference = localStorage.getItem('langPreference').toLowerCase();
RECEIVE: const splitPath = window.location.pathname.split('/').filter(part => part !== '');
RECEIVE: const currentLang = splitPath[0];
RECEIVE: if (!acceptedLocales.includes(currentLang) && !ignoreList.includes(splitPath[0])) {
RECEIVE: splitPath.splice(0, 0, langPreference.toLowerCase());
RECEIVE: const newUrl = 'https://' + window.location.hostname + '/' + splitPath.join('/') + '/' + window.location.search;
RECEIVE: window.location.replace(newUrl);
RECEIVE: }
RECEIVE: }
RECEIVE: } else if (!window.navigator.userAgent.toLowerCase().includes('googlebot')) {
RECEIVE: const requestedLang = window.navigator.language;
RECEIVE: const splitPath = window.location.pathname.split('/').filter(part => part !== '');
RECEIVE: const maybeLocale = splitPath.shift();
RECEIVE: const splitPathString = splitPath.join('/');
RECEIVE:
RECEIVE: if (requestedLang && requestedLang.toLowerCase() != "en-us") {
RECEIVE: const requestedLangCode = requestedLang
RECEIVE: .toLowerCase()
RECEIVE: .replace('_', '-');
RECEIVE: const redirectPath = getPathFromLocale(maybeLocale, requestedLangCode, splitPathString);
RECEIVE: if (redirectPath && !ignoreList.includes(maybeLocale)) {
RECEIVE: window.location.replace('https://cloudflare.com/' + redirectPath + '/' + window.location.search)
RECEIVE: }
RECEIVE: }
RECEIVE: }
RECEIVE: </script><title>301 Moved Permanently</title></head>
RECEIVE: <body bgcolor="white">
RECEIVE: <center><h1>301 Moved Permanently</h1></center>
RECEIVE: <hr><center>nginx/1.10.3</center>
RECEIVE: <script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"rayId":"60df511a7e990c49","version":"2020.12.2","si":10}'></script>
RECEIVE: </body>
RECEIVE: </html>
I think DDNS updating is only not supported for certain TLD’s and I have not seen .uk listed. I get a similar reply if I try updating the record for my TLD or if I try using EMail/APK_key.
in my DNS set up I have turned off all proxying. Can anyone help, please?