[Support] Linuxserver.io - ddclient


Recommended Posts

linuxserver_medium.thumb.png.e071d2c60a445981af5678612664608b.png

 

Application Name: ddclient
Application Site: https://github.com/ddclient/ddclient
Docker Hub: https://hub.docker.com/r/linuxserver/ddclient/
Github: https://github.com/linuxserver/docker-ddclient

 

Please post any questions/issues relating to this docker you have in this thread.

If you are not using Unraid (and you should be!) then please do not post here, rather use the linuxserver.io forum for support.

  • Like 1
  • Thanks 1
Link to comment

I keep getting this warning no matter how I set my ddclient.conf:

Setting up watches.
Watches established.
/config/ddclient.conf MODIFY
ddclient has been restarted
Setting up watches.
Watches established.
WARNING: found neither ipv4 nor ipv6 address

I'm using Namecheap. I've tried configuring the following ways by uncommenting the Namecheap section (I made no other changes to the default ddclient.conf):

##
## NameCheap (namecheap.com)
##
protocol=namecheap                               
server=dynamicdns.park-your-domain.com   
login=**********.***                         
password=**********                
@
##
## NameCheap (namecheap.com)
##
protocol=namecheap,                             \
server=dynamicdns.park-your-domain.com, \
login=**********.***,                       \
password=**********               \
@

I made no changes to the default linuxserver/ddclient Docker template.

 

I read this article for reference on how to configure ddclient for Namecheap: https://www.namecheap.com/support/knowledgebase/article.aspx/583/11/how-do-i-configure-ddclient

Edited by ZooMass
Add article reference
Link to comment
20 hours ago, CHBMB said:

@ZooMass


use=web, web=dynamicdns.park-your-domain.com/getip
protocol=namecheap
server=dynamicdns.park-your-domain.com
login=yourdomain.com
password=your dynamic dns password
@,www

 

Hey, that worked, thank so much! Silly of me not to try the line from the article itself.

Edited by ZooMass
Link to comment

Thank you for this. But do you have a configuration file that works with Cloudflare? I must have tried a couple dozen different configs, and I can't get it to work. I keep getting one of two errors:

WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''
WARNING: found neither ipv4 nor ipv6 address

Here's the Cloudflare section of my current config:

protocol=cloudflare,                                    \
server=www.cloudflare.com,                              \
[email protected]                               \
password=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                \
zone=XXXXXX.com,                                        \
YYYYYYYY.XXXXXX.com

Edit: I'll add in that if I add a line to detect my IP from a web page (ie. use=web, web=dynamicdns.park-your-domain.com/getip), I get the following series of errors:

WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''
WARNING: skipping update of YYYYYYYY.XXXXXX.com from <nothing> to WWW.XXX.YYY.ZZZ.
WARNING: last updated <never> but last attempt on Thu Jun 13 12:26:25 2019 failed.
WARNING: Wait at least 5 minutes between update attempts.

With the WWW.XXX.YYY.ZZZ being my actual IP address. That would imply that ddclient it actually getting my IP address. But for whatever reason, it's just not parsing it correctly to send it to Cloudflare.

Edited by Caldorian
More info
Link to comment

Thanks @saarg.

While it didn't directly resolve my issue, it was enough to get me started.

 

Been trying to get this to work for a while now, and been using a few different templates for it. First there was mace's, and then tried adding lsio's direct from docker hub. I'm guessing I was getting some package corruption between various elements. I had tried removing each of the dockers, including the option to remove the image, but I guess it was still leaving remnants. In particular, I noticed today after removing the image, if I used the "Add Container" option, I could still pick from all the old templates I had tried.

 

So a quick Google search on how to get rid of those (CA --> Previous Apps --> "X"), and installed the docker fresh (yet again). Updated the config file, and success. Even have it working with 2 copies of the container going (2 domains, one still on Namecheap, the other with Cloudflare).

 

For those curious, here's the final Cloudflare config I ended up with:

use=web, web=dynamicdns.park-your-domain.com/getip
protocol=cloudflare,        \
zone=mydomain.com,            \
ttl=1,                      \
[email protected],     \
password=ThisIsWhereYourGlobalAPIKeyGoes             \
subdomain1.mydomain.com,subdomain2.mydomain.com

One question: I'm sure when I had mace's docker going against Namecheap, it would ping in the console log every 5 minutes, stating that the IP was updated. Has this version been updated such that it'll only post to the console if/when the IP changes and it sends a command out to update the DNS entry? If so, is there some change I can make so that it at least logs that the current IP was checked?

Link to comment
3 hours ago, Caldorian said:

Thanks @saarg.

While it didn't directly resolve my issue, it was enough to get me started.

 

Been trying to get this to work for a while now, and been using a few different templates for it. First there was mace's, and then tried adding lsio's direct from docker hub. I'm guessing I was getting some package corruption between various elements. I had tried removing each of the dockers, including the option to remove the image, but I guess it was still leaving remnants. In particular, I noticed today after removing the image, if I used the "Add Container" option, I could still pick from all the old templates I had tried.

 

So a quick Google search on how to get rid of those (CA --> Previous Apps --> "X"), and installed the docker fresh (yet again). Updated the config file, and success. Even have it working with 2 copies of the container going (2 domains, one still on Namecheap, the other with Cloudflare).

 

For those curious, here's the final Cloudflare config I ended up with:


use=web, web=dynamicdns.park-your-domain.com/getip
protocol=cloudflare,        \
zone=mydomain.com,            \
ttl=1,                      \
[email protected],     \
password=ThisIsWhereYourGlobalAPIKeyGoes             \
subdomain1.mydomain.com,subdomain2.mydomain.com

One question: I'm sure when I had mace's docker going against Namecheap, it would ping in the console log every 5 minutes, stating that the IP was updated. Has this version been updated such that it'll only post to the console if/when the IP changes and it sends a command out to update the DNS entry? If so, is there some change I can make so that it at least logs that the current IP was checked?

 

I don't remember what it logs anymore as I haven't used it for ages, but I assume it will log when checking the IP.

Link to comment
8 hours ago, Caldorian said:

I've had it running for the last 5 hours now, and I haven't new log entries since the last time the dockers were restarted.

 

Try changing the IP manually on namecheap to the wrong one and see if it gets updated after about 300 seconds.

Link to comment

Changing the in Namecheap had no affect, no updates were issued. If I deleted the cache file in docker, and let it continue to run, then I'd see in the console (within 5 minutes) that the IP address was updated, and my DNS gets updated properly. Seems like it does check against the cache file, and if it matches, doesn't do anything. Which is kind of good, as I don't want to issue erroneous updates if there's nothing to change. But it would be nice if it would say that I did check and no changes were required.

Seems like it's a known "feature" of ddclient, and various people have come up with all sorts of work arounds to deal with dynamic dns providers that require updates every X days:

https://www.linuxquestions.org/questions/debian-26/ddclient-will-not-update-316726/#post1611217

 

Link to comment
  • 4 weeks later...
  • 2 months later...
  • 2 months later...

I am looking for support for DNSMadeEasy.com. It looks like it was added to the main github application in September (https://github.com/ddclient/ddclient/pull/60) however I am not seeing any support for it within the current package available on unraid. Is there any plan or time table to updated this package to included the new functionality?

 

Thanks

Link to comment
3 hours ago, itnate said:

I am looking for support for DNSMadeEasy.com. It looks like it was added to the main github application in September (https://github.com/ddclient/ddclient/pull/60) however I am not seeing any support for it within the current package available on unraid. Is there any plan or time table to updated this package to included the new functionality?

 

Thanks

When it's included in a new release it should be available. You have to ask ddclient when the will release a new version.

 

We are releasing the original ddclient and not the fork on github. Should probably shift it to the fork as the original version is dead.

Edited by saarg
Link to comment
On 12/3/2019 at 3:14 PM, saarg said:

When it's included in a new release it should be available. You have to ask ddclient when the will release a new version.

 

We are releasing the original ddclient and not the fork on github. Should probably shift it to the fork as the original version is dead.

Thanks for the reply, I will keep an eye out for an update as id love to use this with DNSMadeEasy.

Link to comment
  • 1 month later...

Hello!

 

My ddclient docker is working and updates ip if it changes. My dynamic dns provider requires that i update my ip once in a week even if it has not changed to keep it active. I believe this command should update my ip. Running this results in error. I tried in unraid cli and in docker cli. Both failed. Here is the error:

docker exec -t ddclient ddclient -force

WARNING:  file /etc/ddclient/ddclient.conf: Cannot open file '/etc/ddclient/ddclient.conf'. (No such file or directory)
stat() on closed filehandle FD at /usr/bin/ddclient line 1117.
Use of uninitialized value $mode in bitwise and (&) at /usr/bin/ddclient line 1118.
readline() on closed filehandle FD at /usr/bin/ddclient line 1130.
WARNING:  file /etc/ddclient/ddclient.conf: Cannot open file '/etc/ddclient/ddclient.conf'. (No such file or directory)
stat() on closed filehandle FD at /usr/bin/ddclient line 1117.
Use of uninitialized value $mode in bitwise and (&) at /usr/bin/ddclient line 1118.
readline() on closed filehandle FD at /usr/bin/ddclient line 1130.

 

 

  • Like 1
Link to comment

For anyone on Google Domains using Google's Dynamic DNS and this DDclient, I've been able to this working using the following:

 

daemon=600
syslog=yes
pid=/var/run/ddclient/ddclient.pid
ssl=yes
protocol=dyndns2
use=web
server=domains.google.com
login=generated-login,
password=generated-password
my.domain.tld

 

No need to have anything else uncommented. Should be simple enough

Edited by dapiedude
Link to comment
On 1/20/2020 at 4:43 PM, Paintsu said:

Hello!

 

My ddclient docker is working and updates ip if it changes. My dynamic dns provider requires that i update my ip once in a week even if it has not changed to keep it active. I believe this command should update my ip. Running this results in error. I tried in unraid cli and in docker cli. Both failed. Here is the error:

docker exec -t ddclient ddclient -force

WARNING:  file /etc/ddclient/ddclient.conf: Cannot open file '/etc/ddclient/ddclient.conf'. (No such file or directory)
stat() on closed filehandle FD at /usr/bin/ddclient line 1117.
Use of uninitialized value $mode in bitwise and (&) at /usr/bin/ddclient line 1118.
readline() on closed filehandle FD at /usr/bin/ddclient line 1130.
WARNING:  file /etc/ddclient/ddclient.conf: Cannot open file '/etc/ddclient/ddclient.conf'. (No such file or directory)
stat() on closed filehandle FD at /usr/bin/ddclient line 1117.
Use of uninitialized value $mode in bitwise and (&) at /usr/bin/ddclient line 1118.
readline() on closed filehandle FD at /usr/bin/ddclient line 1130.

 

 

You can't use the command manually like that.

If your provider needs an update every week there should be an option in the configuration to do that. I haven't checked it, so you will need to read the documentation about it.

Link to comment
20 hours ago, saarg said:

You can't use the command manually like that.

If your provider needs an update every week there should be an option in the configuration to do that. I haven't checked it, so you will need to read the documentation about it.

EDIT: Seems that many other people are struggling with same problem. Any workarounds would be much appreciated. It seems that ddclient does not support this functionality out of the box.

 

I found a workaround for this issue. Ddclient stores information of last known ip in cache file, if this cache file is not present it does update. I created a script in userscripts to delete this file daily, and it updates my ip after daemon checks my ip next time. Command inside script is: docker exec -t ddclient rm /var/cache/ddclient/ddclient.cache

Edited by Paintsu
Found a solution
Link to comment
6 hours ago, Paintsu said:

EDIT: Seems that many other people are struggling with same problem. Any workarounds would be much appreciated. It seems that ddclient does not support this functionality out of the box.

 

I found a workaround for this issue. Ddclient stores information of last known ip in cache file, if this cache file is not present it does update. I created a script in userscripts to delete this file daily, and it updates my ip after daemon checks my ip next time. Command inside script is: docker exec -t ddclient rm /var/cache/ddclient/ddclient.cache

That is probably the best solution for it if there is no option in settings.

Link to comment
On 1/22/2020 at 10:20 AM, dapiedude said:

For anyone on Google Domains using Google's Dynamic DNS and this DDclient, I've been able to this working using the following:

 


daemon=600
syslog=yes
pid=/var/run/ddclient/ddclient.pid
ssl=yes
protocol=dyndns2
use=web
server=domains.google.com
login=generated-login,
password=generated-password
my.domain.tld

 

No need to have anything else uncommented. Should be simple enough

Thanks for this! Been scouring the net for a good config file and yours is the first that's worked for me!

  • Like 1
Link to comment
  • 2 weeks later...

Loving the container, I've had it up and running for awhile now, but today I noticed that something has broken.  I'm not sure exactly when it happened but I do know that I updated a domain this past weekend and ddclient updated its ip so it was working as late as Sunday.  However my log is now filled with:

 

ErrorWarningSystemArrayLogin

readline() on closed filehandle FD at /usr/bin/ddclient line 1130.
stat() on closed filehandle FD at /usr/bin/ddclient line 1117.
Use of uninitialized value $mode in bitwise and (&) at /usr/bin/ddclient line 1118.
readline() on closed filehandle FD at /usr/bin/ddclient line 1130.
WARNING: file /ddclient.conf: Cannot open file '/ddclient.conf'. (Permission denied)
 

I'm not sure how the permission on the config file was changed and I'm really unsure of how to fix it, as linux command line is not something I have a lot of experience with..  Thanks!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.