dstapp / docker-ddns Goto Github PK
View Code? Open in Web Editor NEWEasy-to-deploy dynamic DNS with Docker, Go and Bind9
License: MIT License
Easy-to-deploy dynamic DNS with Docker, Go and Bind9
License: MIT License
Wondering what headers would need to be passed for this to work through a traefik proxy. Right now unless I specify an IP it gets set to the internal traefik network IP. I tried a few things but nothing is working. I think something might need to be changed on the software side also.
This image still uses jessie (old-stable) and should be updated to the current stable release stretch.
Missing or invalid parameters (like missing addr=
) should not constantly trigger an index out-of-bounds exception.
Hi there.
First of thanks for this wonderful software. I've been desperately needing exactly this.
Anyways, what I would love to have is (an optional) way for the service to start cleaning up old entries. To give them a TTL for their existance. (Please don't use the TTL value for that. It should be a different one)
The main reason I'm asking for this is quite simple. We use this to identify devices. They all get their own unique ID and that's how we address them. Now the setup they are a part of is very volatile. Meaning that IP addresses get reassigned often. And devices get added and removed from the pool frequently too. This means that for a device that has been removed from the pool could still have a DNS entry. And a new device might have gotten that IP. So then instead of getting an error that the name cannot be resolved, we would connect to the wrong device without even knowing really.
I hope that request makes sense to you. And I also hope that it won't be too much work to implement.
I had to redirect port 53, but I haven't been able to get dig to resolve my NS. If I run it from the server itself it resolves as 127.0.0.53. When I run it from my desktop, I get connection timeout.
I have the firewall open on ports 53, 5353, 8080. The records on my DNS appear correct... Running the docker on UBUNTU. Its a shared VPS, where I am hosting 3 domains on 2 IPs.
EDIT:
I put it on its own IP that resolves a reverse DNS (Just in case). No improvement.
First of all, thank you so much for this project! I’ve been using (/trying to use) it to keep a single subdomain pointed to my home Internet’s public IP address so that I can VPN back to the home network from anywhere, anytime – without paying for overpriced DDNS services. Thank you for this convenient package!
I wanted to ask, however, if the SOA record that is created by default is correct. Let me describe my setup:
docker-ddns
runs on ddns.milanvit.net
(update API endpoints are accessible here), and I want it to manage records in the ns.milanvit.net
subdomain, for example office.ns.milanvit.net
milanvit.net
are managed on Cloudflare, and I created the following three records:
NS
, name: ns
, value: ddns.milanvit.net
A
, name: ddns
, value: <ipv4-address-of-my-server>
, not Cloudflare-proxiedAAAA
, name: ddns
, value: <ipv6-address-of-my-server>
, not Cloudflare-proxieddocker-ddns
in Dokku, with the following configuration:$ dokku config ddns
=====> ddns env vars
DOKKU_APP_RESTORE: 1
DOKKU_CHECKS_DISABLED: _all_
DOKKU_DOCKERFILE_PORTS: 53/tcp 8080/tcp
DOKKU_PROXY_PORT_MAP: http:80:8080 https:443:8080
DOKKU_PROXY_SSL_PORT: 443
RECORD_TTL: 3600
SHARED_SECRET: supersecret
ZONE: ns.milanvit.net
$ dokku storage:report ddns
=====> ddns storage information
Storage build mounts:
Storage deploy mounts: -v /var/lib/dokku/data/storage/ddns:/var/cache/bind
Storage run mounts: -v /var/lib/dokku/data/storage/ddns:/var/cache/bind
$ dokku docker-options:report ddns
=====> ddns docker options information
Docker options build:
Docker options deploy: -p 53:53 -p 53:53/udp --restart=on-failure:10 -v /var/lib/dokku/data/storage/ddns:/var/cache/bind
Docker options run: -v /var/lib/dokku/data/storage/ddns:/var/cache/bind
$ dokku proxy:report ddns
=====> ddns proxy information
Proxy enabled: true
Proxy port map: http:80:8080 https:443:8080
Proxy type: nginx
In other words, mount /var/cache/bind
as persistent storage, make port 53 (both TCP and UDP) directly accessible, and proxy port 8080 through nginx; on top of that, manage subdomain ns.milanvit.net
. I hope all of the above is correct and expected.
Now to my question, finally 😅 After setting everything up, I ran a few dig
commands, with not always correct results:
$ dig @1.1.1.1 +short ns.milanvit.net NS
localhost. # incorrect
$ dig @8.8.8.8 +short ns.milanvit.net NS
localhost. # incorrect
$ dig @1.1.1.1 +short ddns.milanvit.net A
<correct IPv4 address>
$ dig @1.1.1.1 +short ddns.milanvit.net AAAA
<correct IPv6 address>
$ dig @1.1.1.1 +short <subdomain>.ns.milanvit.net
<SOMEHOW correct IPv4 address from docker-ddns>
$ dig @8.8.8.8 +short <subdomain>.ns.milanvit.net
<now that I’m writing this, it’s also correct but it definitely wasn’t 5 minutes ago>
And for example, if I run a dig
on the server running docker-ddns
:
$ dig @127.0.0.1 <subdomain>.ns.milanvit.net Čt 23. dubna 2020, 09:08:26 JST
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> @127.0.0.1 <subdomain>.ns.milanvit.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54383
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 9589e6d074039310da7536b55ea0dc928ee6ca78a38cc782 (good)
;; QUESTION SECTION:
;<subdomain>.ns.milanvit.net. IN A
;; ANSWER SECTION:
<subdomain>.ns.milanvit.net. 3600 IN A <correct IP address>
;; AUTHORITY SECTION:
ns.milanvit.net. 86400 IN NS localhost. # that’s not right, right?
;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr 23 09:08:50 JST 2020
;; MSG SIZE rcvd: 160
I wonder, are the NS
and SOA
records correct? Should they really point at localhost
? Or is it something that we should manually change after the zone files are initially created? I originally thought it’s a problem with my DNS configuration, but after asking the same question at Cloudflare Community Forums, I was told it’s configuration problem…
Sorry for very lengthy explanation, but thank you for your insights!
Is there a way of having this update?
Do you have the method of deleting and modifying?
Should probably consider integrating Let's Encrypt support into the web/update server, this way you can send updates over HTTPS so they cannot be intercepted.
~/docker-ddns$ make deploy
docker build -t davd/dyndns-server .
make: docker: Command not found
Makefile:2: recipe for target 'image' failed
make: *** [image] Error 127
I get this on both Ubuntu Server 16 32- and 64-bit after update/upgrade.
Am I missing something?
Hi,
thanks for this project. I'm using it for half a year now, it works fine.
However, I use FritzBox as DDNS requester and it does not allow to send multiple requests. Can you add functionality, so that I can send mutliple domains (maybe separated by ,
)?
My current workaround is the following:
result := UpdateRecord(response.Domain, response.Address, response.AddrType)
+ UpdateRecord("*." + response.Domain, response.Address, response.AddrType)
Thanks
sscholl
I would like to update the zone itself aka "@"
if i input "@" or nothing it doesnt work.
Though the nslookup executaberl does support an entry like that.
Can you enhace the image?
like this for example: http://localhost:8080/update?secret=changeme&domain=@&addr=1.2.3.4
Hi There,
The update via Web is working - but actually only over the
http(s)//example.com/update?secret=[SHARED_SECRED]&domain=[HOSTNAME]&addr=[IP] url.
When using /v2/update I'm getting a badauth back in the browser, even if i use the following auth method.
http(s)://fakeUser:[SHARED_SECRED]@example.com/v2/update?hostname=[HOSTNAME]&myip=[IP]
in the Log:
2020/07/24 19:07:14 Invalid shared secret:
Am I doing something wrong, or is this basic-auth feature which the Dyn-compatible url uses not working anymore??
Sadly I think I will need this working, if I want to use it with some zywall device....
Cheers, Rainer
Anyone able to help me with the following? The dyn api states the following for the nic update:
http://api.dynu.com/nic/update?hostname=[HOSTNAME]&myip=[IP ADDRESS]&myipv6=[IPv6 ADDRESS]&password=[PASSWORD or MD5(PASSWORD)
I'd like to ensure that my fritzbox is able to update both my ip address and my ipv6 ip address.
unfortunately my go knowledge is lacking.
Hi,
I was trying to use your solution for my testing purpose but in that i'm facing an issue.
The issue was
Thanks & Regards
Tamilvalavan shanmugam
Hello, I'm pretty new with docker and I'm trying to create a stack, this is what i have in my .yml
version: '3.8'
services:
ddns:
image: davd/docker-ddns:latest
environment:
- "RECORD_TTL: 60"
- "ZONE: domain.com"
- "SHARED_SECRET: secret"
ports:
- "80:8080"
- "53:53"
- "53:53/udp"
the service error is telling me that the SHARED_SECRET isn't set, this is the error message:
| SHARED_SECRET not set
| Starting domain name service...: bind9.
| panic: open /etc/dyndns.json: no such file or directory
(I'm guessing its looking for that directory in the container?)
anyway, other than this, I was reading some other issues on this github and I'm guessing im supposed to create an A record called ns.domain.com and also a NS record that points to this container at ddns.domain.com?
I'm using namecheap so would this be right?
If so I'm a little confused as to how namecheap would know what ddns.domain.com is, would i also have to create an A record saying that ddns.domain.com is the same host as ns.domain.com???
I can't reverse search on the server :/
Is it normal? I'm using a VPN and all IP addresses on the DNS are from the VPN.
Commands:
nslookup
server 127.0.0.1
host 192.168.255.18
I want to use this as a full lab DNS server but I need to be able to use forwarders as well. Can this work?
I hope someone has an Idea what is going wrong here:
I have the following dns setup at my hoster:
dyndns.domain.de | NS | ns.dyndns.domain.de
dyndns.domain.de | A | 175.241.32.73
ns.dyndns.domain.de | A | 175.241.32.73
this call works:
http://ns.domain.de:8080/update?secret=password&domain=home&addr=1.2.3.4
Docker logs this:
A record update request: home -> 1.2.3.4
But:
I can't ping dyndns.domain.de.
when I check dns with mxtoolbox i get this:
_NS | localhost | 127.0.0.1 | 24 hrs | | | | |
NS | ns.dyndns.domain.de | 175.241.32.73
Local NS list does not match Parent NS list
175.241.32.73 was reported by the parent, but not locally
127.0.0.1 was reported locally, but not by the parent_
When I dig:
dig home.dyndns.domain.de @175.241.32.73:
; <<>> DiG 9.10.6 <<>> home.dyndns.domain.de @175.241.32.73
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5159
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;home.dyndns.domain.de. IN A
;; ANSWER SECTION:
home.dyndns.domain.de. 3600 IN A 1.2.3.4
;; AUTHORITY SECTION:
dyndns.domain.de. 86400 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1
;; Query time: 37 msec
;; SERVER: 175.241.32.73#53(175.241.32.73)
;; WHEN: Fri Jul 06 17:32:48 CEST 2018
;; MSG SIZE rcvd: 133
And I can't ping home.dyndns.domain.de.
What is missing here?
Please add the ability to specify a dedicated secret for a given subdomain.
E.g. via environment variable
docker run -it -d \
-p 8080:8080 \
-p 53:53 \
-p 53:53/udp \
-e SHARED_SECRET=changeme \
-e SECRET_mysubdomain1=changeme1 \
-e SECRET_mysubdomain2=changeme2 \
-e ZONE=example.org \
-e RECORD_TTL=3600 \
--name=dyndns \
davd/docker-ddns:latest
Currently, they are replaced
I tried this server running on a droplet and with this command
http://<mydomain>:8080/update?secret=hellotest&domain=node1
on my local machine's browser it returns
{"Success":true,"Message":"Updated A record for node1 to IP address 157.40.255.20","Domain":"node1","Domains":["node1"],"Address":"157.40.255.20","AddrType":"A"}
but by using curl on another droplet it returns
{"Success":false,"Message":"Domain not set","Domain":"","Domains":[""],"Address":"","AddrType":""}
what could be the problem?
and also please guide me on how to change the default port 8080 to something like 9010 if possibe.
How to tell server using socks proxy to fetch result?
i have done setup. and also update ddclient.
and no any error.
but after that i am ping mine created subdomain that is not ping or ssh.
i have also done port forwarding in my router port 80 and 22.
getting below error.
Could not resolve hostname : Name or service not known
i have setup my ddns server on cloud with static ip with hostname .
Hi from Toronto !
Exactly what I was looking for...just read the article.
Newbie here so bear with me 👺👺👺
How would a router with hosts behind connect to the Docker dynDNS server?
Are domain hoster mymachine.dyndns.mydomain.net updates for adding each host machine automatic?
Can updates be automated?
Do I just have to use DNS addresses provided by SmartDNS Proxy provider plugged into my home router?
On above note, any links to DIY SmartDNS Proxy server, possibly a combo DIY dynDNS+ SmartDNS Proxy server?
As you know the standard port 53 is prone to ISP DNS hijacking, so many external DNS providers recommend you change the port to say 54 in your router configuration.
Can we do the port change here?
Hi,
thank you for putting this together.
Running the make deploy
part of the install instructions gave me an error that something is blocking port 53.
sudo lsof -Pnl +M -i4 | grep 53
lead to systemd-resolved.service
occupying port 53.
I was able to fix the problem by adding the line DNSStubListener=no
to /etc/systemd/resolved.conf
followed by sudo systemctl restart systemd-resolved.service
.
Maybe this could be added to a troubleshooting section, as I think this problem could be rather present these days.
Hello,
thanks for your project! I have adapt it to a kvm VM and it works smoothly there. In your example the zone
was example.org but for me it had to be dyndns.example.org - that is a bit confusing.
Anyway now it works but I could still not ping dyndns.example.org, for this I had to add a A record in my zone file, like:
$ORIGIN .
$TTL 86400 ; 1 day
dyndns.example.org IN SOA localhost. root.localhost. (
76 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS localhost.
A 1.2.3.4
...
1.2.3.4 should be the world IP, not from the container.
Maybe you want to add this to your setup?
As of now, the API allows the configuration of subdomains, i.e. foo.dyndns.domain.tld
or bar.foo.dyndns.domain.tld
.
Is it possible to configure a wildcard subdomain, like *.foo.dyndns.domain.tld
and have a dnsmasq
running on a local machine, which handles all the rest?
hello,
It can work well, if use subdomain of subdomain of mydomain. such as: xxx.ddns.mydomain.com
in envfile,
ZONE=dyndns.mydomain.com
I chage envfile in it:
ZONE=mydomain.com
and I want to use subdomain of mydomain, xxx.mydomain.com, but It don't work.
Can this docker support subdomain of mydomain?
Hi,
This project looks great!
Would you mind publish it on docker hub so that we can do docker pull dprandzioch/docker-ddns:latest
and automatically get the updates?
OK so I appreciate this project and it fits a need I have to be able to give a FreeNAS server a resolved DNS name on my domain.
So I set up the docker instance and I can test it fine using the provided JSON string.
http://myhost.mydomain.tld:8080/update?secret=changeme&domain=foo&addr=1.2.3.4
That works and a DNS A record is created.
However when I try and set it up from FreeNAS it does not seem to work with the 3 revolvers mentions for standard DynDNS lookups. Namely.
/nic/update
/v2/update
/v3/update
FreeNAS uses inadyn and the config file is such.
period = 300
custom customProvider {
ddns-server = "ns.mydomain.net:8080"
ddns-path = "/v3/update/"
ssl = false
username = "randomuser"
password = 'SuperSecret'
hostname = { "myhostname" }
}
However when running the daemon in debug mode I am getting a 404 Error.
inadyn[2178]: In-a-dyn version 2.5 -- Dynamic DNS update client.
inadyn[2178]: Resolving hostname myhostname => IP# 127.0.0.1
inadyn[2178]: Base64 encoded string: YWxsYXN2YXVsdDpMGpGeWxoVWdpSGI0
inadyn[2178]: Get address for custom
inadyn[2178]: Checking for IP# change, connecting to checkip.dyndns.org([131.186.161.70]:80)
inadyn[2178]: Querying DDNS checkip server for my public IP#: GET / HTTP/1.0
Host: checkip.dyndns.org
User-Agent: inadyn/2.5 https://github.com/troglobit/inadyn/issues
inadyn[2178]: Server response: HTTP/1.1 200 OK
Content-Type: text/html
Server: DynDNS-CheckIP/1.0.1
Connection: close
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 107
<html><head><title>Current IP Check</title></head><body>Current IP Address: n.n.n.n</body></html>
inadyn[2178]: Checked my IP, return code 0: OK
inadyn[2178]: IP server response:
inadyn[2178]: HTTP/1.1 200 OK
Content-Type: text/html
Server: DynDNS-CheckIP/1.0.1
Connection: close
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 107
<html><head><title>Current IP Check</title></head><body>Current IP Address: n.n.n.n</body></html>
inadyn[2178]: Checking IPv4 address n.n.n.n ...
inadyn[2178]: IPv4 address n.n.n.n is valid.
inadyn[2178]: Current IP# n.n.n.n at custom
inadyn[2178]: Update forced for alias myhostname, new IP# n.n.n.n
inadyn[2178]: Sending IP# update to DDNS server, connecting to ns.mydomain.net([y.y.y.y]:8080)
inadyn[2178]: Sending alias table update to DDNS server: GET /v3/update/myhostname HTTP/1.0
Host: ns.mydomain.net
Authorization: Basic YWxsYXN2YXVsdDpMGpGeWxoVWdpSGI0
User-Agent: inadyn/2.5 https://github.com/troglobit/inadyn/issues
inadyn[2178]: DDNS server response: HTTP/1.0 404 Not Found
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Fri, 19 Jun 2020 09:44:20 GMT
Content-Length: 19
404 page not found
inadyn[2178]: Fatal error in DDNS server response:
inadyn[2178]: [404 Not Found] 404 page not found
inadyn[2178]: Error response from DDNS server, exiting!
inadyn[2178]: Error code 48: DDNS server response not OK
What is odd is I am not even getting any logging back from the server.
I am using docker logs --tail 100 -f dyndns
and all I am getting is this:
creating zone...
creating zone file...
creating REST api config...
[ ok ] Starting domain name service...: bind9.
2020/06/18 17:01:26 Serving dyndns REST services on 0.0.0.0:8080...
As I say I have tried all 3 variants above but nothing seems to work? Am I missing something here?
Any insights would be appreciated.
First of all sorry for abusing the GitHub issues as a support board, but it's hard to find helpful ressources for this project elsewhere.
Let's assume the following values for better understanding the issue:
100.100.100.100
and domain domain.com
# docker run -d -v /root/ddns/:/var/cache/bind/ -p 127.0.0.1:5353:8080 -p 53:53/udp -e SHARED_SECRET=changeme -e ZONE=domain.com -e RECORD_TTL=3600 --name=ddns davd/docker-ddns
https://ddns.domain.com
to 127.0.0.1:5353
https://server.domain.com
https://ddns.domain.com/update?secret=changeme&domain=server&addr=1.2.3.4
domain.com
(of which I honestly don't even know whether they are necessary, DNS is witchcraft to me):
* A 100.100.100.100
@ A 100.100.100.100
dyndns NS ns
ns A 100.100.100.100
docker-ddns
to set the domain server.domain.com
to 1.2.3.4
, which results in a success message. docker logs -f ddns
confirms this (2020/07/18 19:01:15 A record update request: server -> 1.2.3.4
)Now to the actual issue:
Using dig
on the server hosting docker-ddns
(100.100.100.100
) is giving me the correct DNS entry:
# dig @127.0.0.1 +short server.domain.com
1.2.3.4
# dig @100.100.100.100 +short server.domain.com
1.2.3.4
However when quering from another machine it alway returns 100.100.100.100
instead of 1.2.3.4
$ dig @100.100.100.100 +short server.domain.com
100.100.100.100
Using my default DNS server results in the same thing:
$ dig +short server.domain.com
100.100.100.100
It's been more than 24h since I changed my DNS records, so I don't think it is a propagation issue, especially because it still returns 100.100.100.100
when queried directly (dig @100.100.100.100
).
What am I doing wrong?
Edit: Redacted/modified screenshot of my hoster's interface for the DNS records (forgive my mad photoshop skillz):
The README links to a guide, however it fails with the following error:
This site can’t provide a secure connection
www.davd.eu
sent an invalid response.
ERR_SSL_PROTOCOL_ERROR
Attempting to visit via HTTP instead results in:
404 Site
www.davd.eu
is not served on this interface
Is there a way to update TXT record for the sake of Let's Encrypt dns-01 challenge?
Hey, probably I only configured or understood something wrong, but unfortunately I can't get any further, so I hope someone can help me.
If I run the following command (example.com is a place holder):
curl http://ns.example.com:8044/update?secret=testpw&domain=foo&addr=1.2.3.4
I get:
{"Success":false,"Message":"Domain not set","Domain":"","Domains":[""],"Address":"","AddrType":""}
I also tried to setup a reserve proxy with SSL (haproxy), but i just get 503 Error.
https://ns.example.com/update?secret=testpw&domain=foo&addr=1.2.3.4
503 Service Unavailable
haproxy.cfg
backend dyndns_backend
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
#http-request set-header Host www.example.com
hash-type consistent
option forwardfor
cookie SERVERID insert indirect nocache
#<name> <adress>
server is_dyndns ddns:8044
docker-compose.yml
ddns:
image: davd/docker-ddns:latest
ports:
- "53:53"
- "53:53/udp"
- "8044:8080"
networks:
- gateway
environment:
RECORD_TTL: 60
ZONE: dyndns.example.com
SHARED_SECRET: testpw
restart: unless-stopped
Since the REST API is written in go, it seems natural to go for coredns as a more lightweight (?) dns server for this project. Can't think of any downsides right now.
The newer versions of the AVM fritz!box routers, now require the DDNS domain to be a FQDN, including the zone. This leads to entries in the zone file that are like this:
ZONE=example.com
request url:
https://ddns.example.com/v3/update?hostname=hostname.example.com&myip=<ipaddr>&password=<passwd>
Resulting entry in the zone file:
hostname.example.com.example.com
The obvious solution of not using the FQDN but only the hostname results in tons of error messages.
Request: would it be possible to add a filter to the go scripts that checks if the hostname string contains a substring that is equal to the zone string and remove .zone from the hostname? (or any other solution that would yield the same result).
PS: this seems like a little patch, but unfortunately I have very limited go skills.
Hi,
this Docker image in Dockerhub with the "latest" tag is now over 9 months old.
Please run your build process/pipeline regularly even without new commits in this repo to get regular security updates of the base images.
Thanks!
Maybe you should consider to move the go source to a separate repository and reference it in this repository as a submodule or pull it while building. Separating a folder can be done with git filter-branch
. Don't execute this command before reading the manual.
Also the go program schuld be in its own container.
Therefore it would be a good idea to separate the repository into a "go program repository" and references the "go program repository" here.
I can see that a couple people have [had] the same issue as I did starting, but with no clear resolution typed out. I've set up everything as per how-to.
I'm using GoDaddy as a hosting site for [myDomain.net], and have exported my DNS records. The ones in question look like this:
; A Records
ns 3600 IN A
; NS Records
dyndns 3600 IN NS ns
the envfile:
ZONE=myDomain.net
In the browser:
http://ns.myDomain.net:8080...
returns
{"Success":true,"Message":"Updated A record for googleTest to IP address 216.58.194.78"}
however,
In the browser
http://googletest.dyndns.my...
returns
This site can’t be reached
googletest.dyndns.myDomain.net’s server DNS address could not be found.
What am I missing and thank you for your time.
I got your system up and running.
You need to update your tutorial to tell people to auto start their docker. After the system reboots all DynDNS resolution borked and I was scratching my head as to why.
From the command prompt:
docker update --restart unless-stopped dyndns
I also hate how I have to modify the /etc/systemd/resolved.conf > flip =no <-- to "yes" > reboot > apt update && apt upgrade -y <-- so my system can resolve DNS and update > go back into the file and flip it to "yes" > reboot again.
^^^^ is that necessary? It's terrible! We need a fix please! :-)
Thanks!
Hi there,
I have a problem updating the dns record using the following url:
http://example.tld:8080/update?secret=changeme&domain=foo&addr=1.2.3.4
I only get the results:
HTTP-GET Response
{"Success":false,"Message":"exit status 2: update failed: NOTAUTH\n","Domain":"foo","Address":"1.2.3.4","AddrType":"A"}
Server-Log shows only (no following messages):
2018/02/19 17:08:07 A record update request: foo -> 1.2.3.4
Regards
Currently all the build tools are provided in the runtime image. This does not make sense and should be changed.
I would love to have a way to query the age of a specific A-record. (Did this device register with us yesterday or three months ago?) . This way, I can monitor for hosts silently dropping off the LTE network.
A TXT record with a timestamp for the latest A-record update is an indirect way of resolving this, which is useable with regular DNS query tools.
I have placed docker-ddns behind a Caddy reverse proxy, but it appears any requests are showing from the docker container IP. Examples:
ddns-sweet | 2019/12/23 20:04:39 A record update request: bar -> 172.18.0.3 caddy-gen | caddy.1 | <public_ip> - - [23/Dec/2019:20:04:39 +0000] "GET /update?secret=<secret_key>&domain=bar&addr= HTTP/2.0" 200 144
I'm not sure exactly how to pass the correct public IP through Caddy to docker-ddns. It seems Caddy is seeing the correct IP, but the actualy GET is coming into docker-ddns from Caddy, so this is the IP it's taking.
Can I persist current state (dyndns hostnames and ip data) using docker volumes? Currently, I'm loosing this information when I restart the container.
Hello,
I neet help setting up my domain entries.
Docker Container is running on 213.109.160.XX.
$ nslookup garrit.dyndns.XX.de 213.109.160.XX
Server: 213.109.160.XX
Address: 213.109.160.XX#53
Name: XX.dyndns.XX.de
Address: 1.2.3.5 (correct IP)
But if i dont specifiy the NS Server IP:
$ nslookup garrit.dyndns.XX.de
;; Got SERVFAIL reply from 80.237.128.56, trying next server
Server: 80.237.128.57
Address: 80.237.128.57#53
** server can't find garrit.dyndns.XX.de: SERVFAIL
Can you help me please and figure out what the problem is?
(IPs are masked)
Where can I find the list of pointers, in order to delete the ones that will no longer be used?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.