Setup
I (try to) use the Docker/container image ddclient
from Linuxserver.io.
Here the docker-compose.yml
file (I use podman
, but that should hardly matter.):
version: "3.7"
services:
ddclient:
image: linuxserver/ddclient
restart: unless-stopped
environment:
- PUID=1004
- PGID=1005
- TZ=Europe/Berlin
volumes:
- ${HOME:?HOME variable missing}/ddclient-config:/config:ro,Z
Config:
protocol=dyndns2
use=cmd, cmd='curl https://checkipv4.dedyn.io/'
#use=if, if=eth0
ssl=yes
server=update.dedyn.io
login=***.dedyn.io
password='___password_here____'
****.dedyn.io
The problem
Manually checking it, I see I run into a rate-limiting of your deSEC servers:
$ curl https://checkipv4.dedyn.io/
<html>
<head><title>429 Too Many Requests</title></head>
<body bgcolor="white">
<center><h1>429 Too Many Requests</h1></center>
<hr><center>nginx</center>
</body>
</html>
I could now use/add a different IP server or e.g. follow the – BTW excellent – suggestion and use ddclient’s support for getting the public IP from Fritzbox devices without any external server query, but obviously this does not solve the root problem.
From the log output I get, ddclient just seems to retry getting the ip maybe once per second (1/s).
Tried solutions
Neither your doc nor the container image’s doc describe how to configure the retry interval of ddclient (or that this is required, at first).
There is a good reference of what imits apply, though I’m not sure what exactly applies here, given getting the IP address is not user-specific (no token is supplied there). Maybe it is actually user
, but 2000 calls to your IP endpoint per day seem to be quite few…?
I tried using the command daemon_interval
in the config file above (guidelines suggest that for the /etc/default/ddclient
, which I obviously don’t want to modify inside the container – if it even has that file), but that is always regarded as an invalid parameter? Huh?
Question
So how can I avoid the rate limting?
How do I configure ddclient properly? Would this be a good addition for your doc?