troglobit / inadyn

In-a-Dyn is a dynamic DNS client with multiple SSL/TLS library support
https://troglobit.com/projects/inadyn/
GNU General Public License v2.0
958 stars 139 forks source link

[Bug] `Error running 'INADYN_PROVIDER="ipv4@dynv6.com"` #471

Open KaKi87 opened 7 months ago

KaKi87 commented 7 months ago

Hello,

Here's my config, my test of the command and the app's output :

$ cat ./inadyn.conf
───────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: ./inadyn.conf
───────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ allow-ipv6 = true
   2   │ provider dynv6.com {
   3   │     username = 
   4   │     password = not_used
   5   │     hostname = { kaki87.dynv6.net }
   6   │     checkip-command = "/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80"
   7   │ }
───────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
$ /sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
2a02:8428:1aa0:7701:7443:6cff:fec4:d9c9
$ docker run --rm -v "./inadyn.conf:/etc/inadyn.conf" troglobit/inadyn
inadyn[1]: In-a-dyn version 2.12.0 -- Dynamic DNS update client.
inadyn[1]: Guessing DDNS plugin 'ipv4@dynv6.com' from 'dynv6.com'
inadyn[1]: Error running 'INADYN_PROVIDER="ipv4@dynv6.com" INADYN_USER="" /sbin/ip -6 addr | grep inet6 | awk -F '[  ]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80': 0 bytes read
inadyn[1]: Update forced for alias kaki87.dynv6.net, new IP# 37.65.113.127
inadyn[1]: Updating IPv6 cache for kaki87.dynv6.net

What to do ?

Thanks

troglobit commented 7 months ago

Try running with debug flags enabled to see what goes wrong.

KaKi87 commented 7 months ago

Oh I never used command args with Docker, how does that work ? Thanks

KaKi87 commented 6 months ago

Hello ?

troglobit commented 6 months ago

This not a docker support group, try google or the manual perhaps.

KaKi87 commented 6 months ago

I only asked you after trying to find by search without success.

troglobit commented 6 months ago

It's on one of the first rows of man docker-run

Example:

$ docker run --rm -v "./inadyn.conf:/etc/inadyn.con" troglobit/inadyn:latest -h
Usage:
 inadyn [-1hnsvC] [-c CMD] [-e CMD] [-f FILE] [-i IFNAME] [-I NAME] [-l LVL] [-p USR:GRP] [-P FILE] [-t SEC]

 -1, --once                     Run only once, updates if too old or unknown
     --force                    Force update, even if address has not changed
     --cache-dir=PATH           Persistent cache dir of IP sent to providers.
                                Default use ident NAME: /root/.inadyn/
 -c, --cmd=/path/to/cmd         Script or command to run to check IP
 -C, --continue-on-error        Ignore errors from DDNS provider
 -e, --exec=/path/to/cmd        Script to run on DDNS update
     --exec-mode=MODE           Set script run mode: compat, event:
                                - compat: successful DDNS update only, default
                                - event: any update status
     --check-config             Verify syntax of configuration file and exit
 -f, --config=FILE              Use FILE name for configuration, default uses
                                ident NAME: /etc/inadyn.conf
 -h, --help                     Show summary of command line options and exit
 -i, --iface=IFNAME             Check IP of IFNAME instead of external server
 -I, --ident=NAME               Identity for config file, PID file, cache dir,
                                and syslog messages.  Defaults to: inadyn
 -j, --json                     JSON output format (-L only)
 -l, --loglevel=LEVEL           Set log level: none, err, info, notice*, debug
 -L, --list-providers           List available DDNS providers
 -n, --foreground               Run in foreground with logging to stdout/stderr
 -p, --drop-privs=USER[:GROUP]  Drop privileges after start to USER:GROUP
     --no-pidfile               Do not create PID file, for use with systemd
 -P, --pidfile=FILE             File to store process ID for signaling inadyn
                                Default uses ident NAME: /var/run/inadyn.pid
 -s, --syslog                   Log to syslog, default unless --foreground
 -S, --show-provider NAME       Show information about DDNS provider NAME
 -t, --startup-delay=SEC        Initial startup delay, default none
 -v, --version                  Show program version and exit

Bug report address: https://github.com/troglobit/inadyn/issues
Project homepage: https://troglobit.com/projects/inadyn/

To run with debug on:

$ docker run --rm -v "./inadyn.conf:/etc/inadyn.con" troglobit/inadyn:latest -l debug

To debug networking issues from inside the container:

$ docker run --rm -it --entrypoint=/bin/sh -v "./inadyn.conf:/etc/inadyn.con" troglobit/inadyn:latest
rpi4iot commented 5 months ago

seem same issue here : only IPv4 update though allow-ipv6 = true in inadyn.conf

it seems first guessing is wrong , it's only for ipv4. according to dynv6 API: https://dynv6.com/docs/apis for IPv4-only https://ipv4.dynv6.com/api/update?ipv4=auto

debug : $ sudo inadyn -l debug --foreground --force inadyn[11824]: In-a-dyn version 2.10.0 -- Dynamic DNS update client. inadyn[11824]: Guessing DDNS plugin 'default@ipv4.dynv6.com' from 'dynv6.com' ... inadyn[11824]: Sending alias table update to DDNS server: GET /api/update?ipv4=auto ... Host: ipv4.dynv6.com User-Agent: inadyn/2.10.0 https://github.com/troglobit/inadyn/issues

troglobit commented 5 months ago

seem same issue here : only IPv4 update though allow-ipv6 = true in inadyn.conf

it seems first guessing is wrong , it's only for ipv4. according to dynv6 API: https://dynv6.com/docs/apis for IPv4-only https://ipv4.dynv6.com/api/update?ipv4=auto

debug : $ sudo inadyn -l debug --foreground --force inadyn[11824]: In-a-dyn version 2.10.0 -- Dynamic DNS update client. inadyn[11824]: Guessing DDNS plugin 'default@ipv4.dynv6.com' from 'dynv6.com' ... inadyn[11824]: Sending alias table update to DDNS server: GET /api/update?ipv4=auto ... Host: ipv4.dynv6.com User-Agent: inadyn/2.10.0 https://github.com/troglobit/inadyn/issues

@rpi4iot there has been several fixes to the dynv6 plugin since v2.10.0. It looks like you're running into one of those and not the same as op did. Please try with the latest Inadyn version.