Help: DuckDns Ipv6 only missing in update URL #175

Closed
opened 2025-11-20 04:21:11 -05:00 by saavagebueno · 4 comments
Owner

Originally created by @Fubar7 on GitHub (Feb 1, 2022).

TLDR: I want to update my Ipv6 only to DuckDns. ddns-updater gets the right ipv6 adress in the logs but don't send it to DuckDns. If the Update URL is without an adress, DuckDns try to detected the ipv4 adress. That's my problem.
If i understand it correctly the IPv6 should be place in the URL witch send to DuckDns, for example

https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&&ipv6=2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&verbose=true&verbose=true

  1. Is this urgent: Yes/No

  2. DNS provider(s) you use: DuckDns

  3. Program version:

Running version latest built on 2022-01-21T13:37:49Z (commit f5b76f2)

  1. What are you using to run the container: docker-compose
  2. Extra information (optional)

Logs:

2022/02/01 21:14:32 json.go:46: INFO reading JSON config from file /updater/data/config.json
2022/02/01 21:14:32 json.go:63: DEBUG config read: {
"settings": [
{
"provider": "duckdns",
"host": "xxxsubdomain1xxx",
"token": "xxxTokenxxx",
"ip_version": "ipv6",
"provider_ip": true
},
{
"provider": "duckdns",
"host": "xxxsubdomain2xxx",
"token": "xxxTokenxxx",
"ip_version": "ipv6",
"provider_ip": false
}
]
}
2022/02/01 21:14:32 main.go:191: INFO Found 2 settings to update records
2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain1xxx
2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain2xxx
2022/02/01 21:14:32 server.go:45: INFO healthcheck server: listening on 127.0.0.1:9999
2022/02/01 21:14:32 main.go:273: INFO backup: disabled
2022/02/01 21:14:32 server.go:48: INFO http server: listening on :8000
2022/02/01 21:14:32 run.go:268: DEBUG configured to fetch IP: v4 or v6: false, v4: false, v6: true
2022/02/01 21:14:33 run.go:270: DEBUG your public IP address are: v4 or v6: <nil>, v4: <nil>, v6: 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 run.go:227: INFO IPv6 address of xxxsubdomain1xxx.duckdns.org is <nil> and your IPv6 address is 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 run.go:143: DEBUG record xxxsubdomain2xxx.duckdns.org is within ban period or cooldown period, skipping update
2022/02/01 21:14:33 run.go:292: INFO Updating record [domain: duckdns.org | host: xxxsubdomain1xxx | provider: duckdns | ip: ipv6] to use 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2022/02/01 21:14:33 logclient.go:46: DEBUG GET https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&verbose=true | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com
2022/02/01 21:14:34 logclient.go:53: DEBUG 200 OK | headers: Date: Tue, 01 Feb 2022 20:14:33 GMT; Set-Cookie: AWSALB=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/,AWSALBCORS=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/; SameSite=None; Secure; Server: nginx/1.20.0; X-Clacks-Overhead: GNU Terry Pratchett; X-Frame-Options: DENY | body: OK88.130.153.114NOCHANGE
2022/02/01 21:14:34 run.go:295: ERROR mismatching IP address received: 88.130.153.114

Configuration file (remove your credentials!):

  "settings": [
    {
      "provider": "duckdns",
      "host": "xxxsubdomain1xxx",
      "token": "xxxTokenxxx",
      "ip_version": "ipv6",
      "provider_ip": true
    },
    {
      "provider": "duckdns",
      "host": "xxxsubdomain2xxx",
      "token": "xxxTokenxxx",
      "ip_version": "ipv6",
      "provider_ip": false
    }
  ]

Host OS:
Unraid 6.9.2

DDNS-Updater Plugin

Originally created by @Fubar7 on GitHub (Feb 1, 2022). <!-- Hi qdm12, maybe is just a wrong setting but i don't get it. My Ipv6 address is not sent to DuckDns. https://github.com/qdm12/ddns-updater/discussions --> **TLDR**: I want to update my Ipv6 only to DuckDns. ddns-updater gets the right ipv6 adress in the logs but don't send it to DuckDns. If the Update URL is without an adress, DuckDns try to detected the ipv4 adress. That's my problem. If i understand it correctly the IPv6 should be place in the URL witch send to DuckDns, for example https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&&ipv6=2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&verbose=true&verbose=true 1. Is this urgent: Yes/No 2. DNS provider(s) you use: DuckDns 3. Program version: <!-- See the line at the top of your logs --> Running version latest built on 2022-01-21T13:37:49Z (commit f5b76f2) 4. What are you using to run the container: docker-compose 5. Extra information (optional) Logs: ```log 2022/02/01 21:14:32 json.go:46: INFO reading JSON config from file /updater/data/config.json 2022/02/01 21:14:32 json.go:63: DEBUG config read: { "settings": [ { "provider": "duckdns", "host": "xxxsubdomain1xxx", "token": "xxxTokenxxx", "ip_version": "ipv6", "provider_ip": true }, { "provider": "duckdns", "host": "xxxsubdomain2xxx", "token": "xxxTokenxxx", "ip_version": "ipv6", "provider_ip": false } ] } 2022/02/01 21:14:32 main.go:191: INFO Found 2 settings to update records 2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain1xxx 2022/02/01 21:14:32 main.go:203: INFO Reading history from database: domain duckdns.org host xxxsubdomain2xxx 2022/02/01 21:14:32 server.go:45: INFO healthcheck server: listening on 127.0.0.1:9999 2022/02/01 21:14:32 main.go:273: INFO backup: disabled 2022/02/01 21:14:32 server.go:48: INFO http server: listening on :8000 2022/02/01 21:14:32 run.go:268: DEBUG configured to fetch IP: v4 or v6: false, v4: false, v6: true 2022/02/01 21:14:33 run.go:270: DEBUG your public IP address are: v4 or v6: <nil>, v4: <nil>, v6: 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 2022/02/01 21:14:33 run.go:227: INFO IPv6 address of xxxsubdomain1xxx.duckdns.org is <nil> and your IPv6 address is 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 2022/02/01 21:14:33 run.go:143: DEBUG record xxxsubdomain2xxx.duckdns.org is within ban period or cooldown period, skipping update 2022/02/01 21:14:33 run.go:292: INFO Updating record [domain: duckdns.org | host: xxxsubdomain1xxx | provider: duckdns | ip: ipv6] to use 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 2022/02/01 21:14:33 logclient.go:46: DEBUG GET https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&verbose=true | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com 2022/02/01 21:14:34 logclient.go:53: DEBUG 200 OK | headers: Date: Tue, 01 Feb 2022 20:14:33 GMT; Set-Cookie: AWSALB=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/,AWSALBCORS=3ztWMrT0eR/u2KcYt3ppuc2LHhFtMvlxNHLU4r6J9DZYr0YX2zf6pp4pf8qs1KKElgd5z3EAHPZKxz3tlbd1j0oGnFmWkke/eElDBpbaACjBoDbMDyl+f2cpSAjx; Expires=Tue, 08 Feb 2022 20:14:33 GMT; Path=/; SameSite=None; Secure; Server: nginx/1.20.0; X-Clacks-Overhead: GNU Terry Pratchett; X-Frame-Options: DENY | body: OK88.130.153.114NOCHANGE 2022/02/01 21:14:34 run.go:295: ERROR mismatching IP address received: 88.130.153.114 ``` Configuration file (**remove your credentials!**): ```json "settings": [ { "provider": "duckdns", "host": "xxxsubdomain1xxx", "token": "xxxTokenxxx", "ip_version": "ipv6", "provider_ip": true }, { "provider": "duckdns", "host": "xxxsubdomain2xxx", "token": "xxxTokenxxx", "ip_version": "ipv6", "provider_ip": false } ] ``` Host OS: Unraid 6.9.2 ![DDNS-Updater Plugin](https://user-images.githubusercontent.com/18038256/152048110-5e073994-e937-4209-be35-0361c350df09.jpg)
Author
Owner

@qdm12 commented on GitHub (Feb 20, 2022):

Just set "provider_ip": false and that should do it 😉 Sorry for the long delay answering as well.

Although the program uses ip6 instead of ipv6 as the URL query parameter, so let me know if that doesn't work.

@qdm12 commented on GitHub (Feb 20, 2022): Just set `"provider_ip": false` and that should do it :wink: Sorry for the long delay answering as well. Although the program uses `ip6` instead of `ipv6` as the URL query parameter, so let me know if that doesn't work.
Author
Owner

@Fubar7 commented on GitHub (Feb 21, 2022):

Hey @qdm12,
thanks for your response. 😊 I'm glad you are helping me.
Maybe i missunderstand you. In the LogFile you can see i set up two Subdomains.
Subdomain1 with "provider_ip": true and the other Subdomain2 with "provider_ip": false.
Both send only the ipv4 adress to DuckDNS.
I tried it anyway to set both Subdomains on "provider_ip": false but it still sends ipv4 addresses to DuckDns

Although the program uses ip6 instead of ipv6 as the URL query parameter, so let me know if that doesn't work.

What do you mean here? I can't wirte "ip_version": "ip6",in the config file ?

@Fubar7 commented on GitHub (Feb 21, 2022): Hey @qdm12, thanks for your response. 😊 I'm glad you are helping me. Maybe i missunderstand you. In the LogFile you can see i set up two Subdomains. **Subdomain1** with `"provider_ip": true` and the other **Subdomain2** with `"provider_ip": false`. Both send only the ipv4 adress to DuckDNS. I tried it anyway to set both Subdomains on `"provider_ip": false` but it still sends ipv4 addresses to DuckDns > Although the program uses ip6 instead of ipv6 as the URL query parameter, so let me know if that doesn't work. What do you mean here? I can't wirte `"ip_version": "ip6",`in the config file ?
Author
Owner

@qdm12 commented on GitHub (Mar 9, 2022):

Ah I know why from the logs:

  • DEBUG record xxxsubdomain2xxx.duckdns.org is within ban period or cooldown period, skipping update so your subdomain2 was temporarily banned, and hence no update is done.
  • DEBUG GET https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&verbose=true doesn't have the ipv6 URL query parameter in there since this one uses provider_ip: true.

On the other hand, ERROR mismatching IP address received: 88.130.153.114 is a bit weird since the code should just blindly believe the provider to find our IP correctly instead of double-checking, when provider_ip is set.

@qdm12 commented on GitHub (Mar 9, 2022): Ah I know why from the logs: - `DEBUG record xxxsubdomain2xxx.duckdns.org is within ban period or cooldown period, skipping update` so your subdomain2 was temporarily banned, and hence no update is done. - `DEBUG GET https://www.duckdns.org/update?domains=xxxsubdomain1xxx&token=xxxTokenxxx&verbose=true` doesn't have the `ipv6` URL query parameter in there since this one uses `provider_ip: true`. On the other hand, `ERROR mismatching IP address received: 88.130.153.114` is a bit weird since the code should just blindly believe the provider to find our IP correctly instead of double-checking, when `provider_ip` is set.
Author
Owner

@qdm12 commented on GitHub (Mar 9, 2022):

Actually they mention it on duckdns.org, basically using provider_ip: true only works with ipv4, not ipv6. I updated the duckdns document in 1f9eb467ca to mention this.

Let's close this issue for now, but feel free to comment back if you got anything else going wrong. Thanks!

@qdm12 commented on GitHub (Mar 9, 2022): Actually they mention it on duckdns.org, basically using `provider_ip: true` only works with ipv4, not ipv6. I updated the duckdns document in 1f9eb467cae1bfcc7e08de1228b5dc2802d7a7bb to mention this. Let's close this issue for now, but feel free to comment back if you got anything else going wrong. Thanks!
Sign in to join this conversation.