$ ddclient fails to update or connect

After using the suggested configuration file settings from the docs, trying to get a manual update from the server to succeed, and it’s always failing.

/etc/ddclient.conf
protocol=dyndns2
use=web
server=dynv6.com
login=none
password=‘XxXxXxXx’
XxXxXxXx.dns.navy

$ ddclient -force
WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword ‘ip’ = ‘’
FAILED: updating XxXxXxXx.dns.navy: Could not connect to dynv6.com.

also tried ipv4. dynv6. com for server, also fails.

-query does find the right IP via web. (of the 3 one of them is not returning an IP)

So not sure why the warning is complaining about ip keyword.
Does the cache file not populate from a web IP query?

Hello, I had the same problem running ddclient in docker.
I removed the ’ around the token and restarted the container after 5 minutes and it worked.

1 Like

thanks for the tip, will modify the conf file with ’ ’

the error message doesn’t go away and still fails to contact dynv6.com

why is it that we can’t get a clean run?

I have the same problem.
This is my ddclient.conf:

protocol=dyndns2
use=web, web=checkip.dyndns.it
server=dynv6.com
login=none
password=‘xxxxx’
xxxxx.v6.navy

the ip check work and obtain the right ip addres, but i have the error:
FAILED: updating xxxx.v6.navy: Could not connect to dynv6.com.

Any suggestion?

I’ve just noticed that on dynv6.com/zones/{zone_Id}/instructions for Fritz!OS the username and password fields are swapped, compared to ddclient config - but that shouldn’t be the problem in your cases.
Today at 10:27 UTC my OpenWrt router successfully updated one of my zones using this API so the service on the server side seems to be working. (The log doesn’t exist anymore so it could be a flawed LuCI GUI…)

Hello,

I had the same problem and solved it by requiring ssl. In ddclient.conf :

ssl=yes
protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip=‘Current IP Address’
server=dynv6.com
login=none
password=password
my.domain

Then run
sudo ddclient -daemon=0 -debug -verbose -noquiet

If you don’t want to wait 5 mins before you test, do this first:
sudo rm /var/cache/ddclient/ddclient.cache

10 Likes

Oh cool, ich hatte den gleichen Fehler… und richtig, man sollte davon ausgehen, dass die Angaben des Providers (dynv6.com) stimmen.

My ddclient config:

usev6=if, if=eth0
if-skip=Scope:Link
use=web, web=checkip.dyndns.com, web-skip='IP Address'
ssl=yes
protocol=dyndns2
server=dynv6.com
login=none
password=mysecret
mydomain.dynv6.net

Output ddclient status:

root@rpi3:/home/username# sudo systemctl status ddclient
● ddclient.service - Update dynamic domain name service entries
     Loaded: loaded (/lib/systemd/system/ddclient.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-03-27 08:08:28 CEST; 3min 36s ago
       Docs: man:ddclient(8)
    Process: 2443 ExecStart=/usr/sbin/ddclient -daemon $daemon_interval -syslog -pid /run/ddclient.pid (code=exited, status=0/SUCCESS)
   Main PID: 2444 (ddclient - slee)
      Tasks: 1 (limit: 1597)
        CPU: 649ms
     CGroup: /system.slice/ddclient.service
             └─2444 ddclient - sleeping for 90 seconds

Mär 27 08:08:28 rpi3 systemd[1]: Starting Update dynamic domain name service entries...
Mär 27 08:08:28 rpi3 systemd[1]: Started Update dynamic domain name service entries.
Mär 27 08:08:32 rpi3 ddclient[2469]: WARNING:  cannot connect to dynv6.com:443 socket: No route to host IO::Socket::IP configuration failed
Mär 27 08:08:32 rpi3 ddclient[2471]: FAILED:   updating mydomain.dynv6.net: Could not connect to dynv6.com.

Output verbose:

root@rpi3:/home/username#  sudo ddclient -daemon=0 -debug -verbose -noquiet
=== opt ====
opt{cache}                           : <undefined>
opt{cmd}                             : <undefined>
opt{cmd-skip}                        : <undefined>
opt{daemon}                          : 0
opt{debug}                           : 1
opt{exec}                            : <undefined>
opt{facility}                        : <undefined>
opt{file}                            : <undefined>
opt{force}                           : <undefined>
opt{foreground}                      : <undefined>
opt{fw}                              : <undefined>
opt{fw-banlocal}                     : <undefined>
opt{fw-login}                        : <undefined>
opt{fw-password}                     : <undefined>
opt{fw-skip}                         : <undefined>
opt{geturl}                          : <undefined>
opt{help}                            : <undefined>
opt{host}                            : <undefined>
opt{if}                              : <undefined>
opt{if-skip}                         : <undefined>
opt{ip}                              : <undefined>
opt{ipv6}                            : <undefined>
opt{login}                           : <undefined>
opt{mail}                            : <undefined>
opt{mail-failure}                    : <undefined>
opt{max-interval}                    : 2592000
opt{min-error-interval}              : 300
opt{min-interval}                    : 30
opt{options}                         : <undefined>
opt{password}                        : <undefined>
opt{pid}                             : <undefined>
opt{postscript}                      : <undefined>
opt{priority}                        : <undefined>
opt{protocol}                        : <undefined>
opt{proxy}                           : <undefined>
opt{query}                           : <undefined>
opt{quiet}                           : 0
opt{retry}                           : <undefined>
opt{server}                          : <undefined>
opt{ssl}                             : <undefined>
opt{syslog}                          : <undefined>
opt{test}                            : <undefined>
opt{timeout}                         : <undefined>
opt{use}                             : <undefined>
opt{usev6}                           : <undefined>
opt{verbose}                         : 1
opt{web}                             : <undefined>
opt{web-skip}                        : <undefined>
=== globals ====
globals{daemon}                      : 60
globals{debug}                       : 1
globals{if}                          : eth0
globals{if-skip}                     : Scope:Link
globals{login}                       : none
globals{password}                    : mysecretpass
globals{protocol}                    : dyndns2
globals{quiet}                       : 0
globals{server}                      : dynv6.com
globals{ssl}                         : 1
globals{use}                         : web
globals{usev6}                       : if
globals{verbose}                     : 1
globals{web}                         : checkip.dyndns.com
globals{web-skip}                    : IP Address
=== config ====
config{mtsmla.dynv6.net}{atime}      : 0
config{mtsmla.dynv6.net}{backupmx}   : 0
config{mtsmla.dynv6.net}{cacheable}  : ARRAY(0xd9bad8)
config{mtsmla.dynv6.net}{cmd}        : <undefined>
config{mtsmla.dynv6.net}{cmd-skip}   :
config{mtsmla.dynv6.net}{custom}     : 0
config{mtsmla.dynv6.net}{fw}         :
config{mtsmla.dynv6.net}{fw-banlocal} : 0
config{mtsmla.dynv6.net}{fw-login}   : <undefined>
config{mtsmla.dynv6.net}{fw-password} :
config{mtsmla.dynv6.net}{fw-skip}    :
config{mtsmla.dynv6.net}{host}       : mydomain.dynv6.net
config{mtsmla.dynv6.net}{if}         : eth0
config{mtsmla.dynv6.net}{if-skip}    : Scope:Link
config{mtsmla.dynv6.net}{ip}         : <undefined>
config{mtsmla.dynv6.net}{ipv6}       : 0
config{mtsmla.dynv6.net}{login}      : none
config{mtsmla.dynv6.net}{max-interval} : 2592000
config{mtsmla.dynv6.net}{min-error-interval} : 300
config{mtsmla.dynv6.net}{min-interval} : 30
config{mtsmla.dynv6.net}{mtime}      : 0
config{mtsmla.dynv6.net}{mx}         :
config{mtsmla.dynv6.net}{password}   : mysecretpass
config{mtsmla.dynv6.net}{protocol}   : dyndns2
config{mtsmla.dynv6.net}{script}     : /nic/update
config{mtsmla.dynv6.net}{server}     : dynv6.com
config{mtsmla.dynv6.net}{static}     : 0
config{mtsmla.dynv6.net}{status}     :
config{mtsmla.dynv6.net}{use}        : web
config{mtsmla.dynv6.net}{usev6}      : if
config{mtsmla.dynv6.net}{warned-min-error-interval} : 0
config{mtsmla.dynv6.net}{warned-min-interval} : 0
config{mtsmla.dynv6.net}{web}        : checkip.dyndns.com
config{mtsmla.dynv6.net}{web-skip}   : IP Address
config{mtsmla.dynv6.net}{wildcard}   : 0
config{mtsmla.dynv6.net}{wtime}      : 30
=== cache ====
cache{mtsmla.dynv6.net}{atime}       : 0
cache{mtsmla.dynv6.net}{backupmx}    : 0
cache{mtsmla.dynv6.net}{custom}      : 0
cache{mtsmla.dynv6.net}{host}        : mydomain.dynv6.net
cache{mtsmla.dynv6.net}{mtime}       : 0
cache{mtsmla.dynv6.net}{mx}          :
cache{mtsmla.dynv6.net}{script}      : /nic/update
cache{mtsmla.dynv6.net}{static}      : 0
cache{mtsmla.dynv6.net}{status}      : noconnect
cache{mtsmla.dynv6.net}{warned-min-error-interval} : 1648361402
cache{mtsmla.dynv6.net}{warned-min-interval} : 0
cache{mtsmla.dynv6.net}{wildcard}    : 0
cache{mtsmla.dynv6.net}{wtime}       : 30
DEBUG:    get_ipv6: using if, eth0 reports 2001:9e8:4a3f:7700:ba27:ebff:fe75:8b7f
DEBUG:
DEBUG:     nic_dyndns2_update -------------------
INFO:     setting IP address to 2001:9e8:4a3f:7700:ba27:ebff:fe75:8b7f for mydomain.dynv6.net
UPDATE:   updating mydomain.dynv6.net
DEBUG:    proxy  =
DEBUG:    url    = http://dynv6.com/nic/update?system=dyndns&hostname=mydomain.dynv6.net&myip=2001:9e8:4a3f:7700:ba27:ebff:fe75:8b7f
DEBUG:    server = dynv6.com
CONNECT:  dynv6.com

It wont update the entry :frowning:
Does somebody know why?