nickbabcock / dness Goto Github PK
View Code? Open in Web Editor NEWA dynamic dns client
License: MIT License
A dynamic dns client
License: MIT License
Please consider adding support for No-IP who offer free DDNS service with 30 million users.
They use an open format, based on HTTP requests, also deployed by other service providers. The API is described here: Request Method.
Hi
Minor feature suggestion. I noticed while I was unable to resolve my WAN IP that the log still showed it was connecting to NameCheap and trying to update the records anyway.
If there is an error with resolving the WAN IP, perhaps the process should halt without trying to update the DNS provider since it will fail.
Thank you
A dynamic DNS client should be able to update DNS without using HTTP(S) or other out-of-band mechanmisms.
Please consider adding support for Dynu who offer free DDNS service with complete control of your domain name at all times.
They use an open format, based on HTTP requests, similar to no-ip, also deployed by other service providers. The protocol is described here: IP Update Protocol.
Hi
Fresh Ubuntu 21.04 LXC container under Proxmox and when I try to install (dpkg -i *.deb) the Dness package, I see the following:
Preparing to unpack latest.deb ...
dpkg: error processing archive latest.deb (--install):
conffile name 'etc/dness/dness.conf' is not an absolute pathname
Errors were encountered while processing:
latest.deb
root@dness:~# dpkg -i latest.deb
(Reading database ... 17822 files and directories currently installed.)
Preparing to unpack latest.deb ...
dpkg: error processing archive latest.deb (--install):
conffile name 'etc/dness/dness.conf' is not an absolute pathname
Errors were encountered while processing:
latest.deb
Thank you
When trying to update IP address to cloudflare, it returns with error "could not successfully resolve IP caused by: could not resolve via dns"
Trace level output is:
C:\Apps\dness>C:\Apps\dness\dness-v0.2.1.exe -c C:\Apps\dness\dness.conf
[DEBUG trust_dns_resolver::async_resolver] trust-dns resolver running
[TRACE trust_dns_resolver::async_resolver] handle passed back
[DEBUG trust_dns_proto::xfer::dns_handle] querying: myip.opendns.com. A
[DEBUG trust_dns_resolver::name_server::name_server_pool] sending request: [Query { name: Name { is_fqdn: true, labels: [myip, opendns, com] }, query_type: A, query_class: IN }]
[DEBUG trust_dns_resolver::name_server::name_server] reconnecting: NameServerConfig { socket_addr: V4(208.67.222.222:53), protocol: Udp, tls_dns_name: None }
[DEBUG trust_dns_proto::xfer] enqueueing message: [Query { name: Name { is_fqdn: true, labels: [myip, opendns, com] }, query_type: A, query_class: IN }]
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[DEBUG trust_dns_resolver::name_server::name_server] reconnecting: NameServerConfig { socket_addr: V4(208.67.220.220:53), protocol: Udp, tls_dns_name: None }
[DEBUG trust_dns_proto::xfer] enqueueing message: [Query { name: Name { is_fqdn: true, labels: [myip, opendns, com] }, query_type: A, query_class: IN }]
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] select; timeout=Some(0ns)
[TRACE mio::sys::windows::selector] polling IOCP
[TRACE mio::sys::windows::selector] returning
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::poll] registering with poller
[TRACE mio::sys::windows::selector] register Token(0) Readable | Writable
[TRACE mio::sys::windows::selector] set readiness to (empty)
[TRACE mio::sys::windows::udp] scheduling a read
[TRACE mio::sys::windows::selector] set readiness to Writable
[DEBUG trust_dns_proto::udp::udp_stream] created socket successfully
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::poll] registering with poller
[TRACE mio::sys::windows::selector] register Token(1) Readable | Writable
[TRACE mio::sys::windows::selector] set readiness to (empty)
[TRACE mio::sys::windows::udp] scheduling a read
[TRACE mio::sys::windows::selector] set readiness to Writable
[DEBUG trust_dns_proto::udp::udp_stream] created socket successfully
[TRACE mio::sys::windows::selector] select; timeout=Some(0ns)
[TRACE mio::sys::windows::selector] polling IOCP
[TRACE mio::sys::windows::selector] returning
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] set readiness to (empty)
[TRACE mio::sys::windows::udp] scheduling a send
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] set readiness to (empty)
[TRACE mio::sys::windows::udp] scheduling a send
[TRACE mio::sys::windows::selector] select; timeout=Some(0ns)
[TRACE mio::sys::windows::selector] polling IOCP
[TRACE mio::sys::windows::selector] select; -> got overlapped
[TRACE mio::sys::windows::udp] finished a send 45
[TRACE mio::sys::windows::selector] set readiness to Writable
[TRACE mio::sys::windows::selector] select; -> got overlapped
[TRACE mio::sys::windows::udp] finished a send 45
[TRACE mio::sys::windows::selector] set readiness to Writable
[TRACE mio::sys::windows::selector] returning
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] select; timeout=Some(0ns)
[TRACE mio::sys::windows::selector] polling IOCP
[TRACE mio::sys::windows::selector] returning
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] select; timeout=Some(4.0762395s)
[TRACE mio::sys::windows::selector] polling IOCP
[TRACE mio::sys::windows::selector] select; -> got overlapped
[TRACE mio::sys::windows::udp] finished a recv 91
[TRACE mio::sys::windows::selector] set readiness to Readable | Writable
[TRACE mio::sys::windows::selector] returning
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE trust_dns_resolver::name_server::connection_provider] polling response inner
[TRACE mio::sys::windows::selector] set readiness to Writable
[TRACE mio::sys::windows::udp] scheduling a read
[DEBUG trust_dns_proto::rr::record_data] reading SOA
[DEBUG trust_dns_proto::udp::udp_client_stream] received message id: 24875
[TRACE mio::poll] deregistering handle with poller
[TRACE mio::sys::windows::selector] deregistering
[TRACE mio::poll] deregistering handle with poller
[TRACE mio::sys::windows::selector] deregistering
[DEBUG trust_dns_resolver::name_server::name_server_pool] mDNS responsed for query: NXDomain
[ERROR dness] could not successfully resolve IP
caused by: could not resolve via dns
First I want to thank you for implementing support for dynu #290. ๐
I have detected an issue when the DDNS record is out of sync and needs updating. I see the following (real IP and domain has been altered below):
root@srv:~# dness -c /etc/dness/dness.conf
[INFO dness] resolved address to 100.100.100.100 in 2ms
[ERROR dness] could not update example.com (dynu)
caused by: expected zero errors, but received: badauth
[INFO dness] processed all: (updated: 0, already current: 3, missing: 0) in 2ms
[ERROR dness] at least one update failed, so exiting with non-zero status code
It can be worth mentioning that, using the identical credentials updating works using ddclient.
[[domains]]
type = "namecheap"
domain = "deadbeef"
zone = "example2.com"
records = [ "mysubdomain" ]
Would be:
https://dynamicdns.park-your-domain.com/update?host=mysubdomain&domain=example2.com&password=deadbeef&ip=[your_ip]
Docs:
https://dynamicdns.park-your-domain.com/update?host=[host]&domain=[domain_name]&password=[ddns_password]&ip=[your_ip]
IP Address = optional value. If you don't specify any IP, the IP from which you are accessing this URL will be set for the domain.
Hey there
is it planned to support the IPv6 checkup too?
https://dns.he.net is a well known vendor that provides free DNS hosting.
Documentation is their service is available here
An existing rustlang implementation is additionally available here
Registration should be free and available for anyone to test.
Hi this project looks very promising! Can you please add support for https://freedns.afraid.org?
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.