Doesn’t seem to have HTTP3.
Yep, maybe Curl Make file needs additional changes?
outside of scope of this thread.
Yep, I agree, no need to spam here.
I've managed to compile Curl with http/3 support using OpenSSL with QUIC and it works.
I've made some tests that anyone interested in HTTP/3 (QUIC) support can see on the above link.
I no longer see the message that http/3 (Quic) is not supported on my build.
Now comes my question - how https-dns-proxy uses the HTTP/3 (QUIC) support.
Unless the DoH resolver is HTTP/3 only, the daemon negotiates the protocol when connecting to server. As far as I remember, if you enable verbose logging you should see wherever HTTP/3 or HTTP/2 is being used.
There was an update upstream to hopefully fix division by zero errors (which happened once and were impossible to replicate) and there’s a bunch of updates to the init file:
Not sure shat happened. I have just built a new image (using image builder) from 24.10-SNAPSHOT and https-dns-proxy is now disabled by default.
/etc/init.d/https-dns-proxy enabled ; echo $?
1
find /etc/ -name "*https-dns-proxy*"
/etc/config/https-dns-proxy
/etc/init.d/https-dns-proxy
From image builder logs:
Enabling https-dns-proxy
It was a fresh install without preserving config.
UPDATE: I just check during the build and the soft links for https-dns-proxy are not created by the image builder:
ls -la ./build_dir/target-x86_64_musl/root-x86/etc/rc.d/ | grep dns
lrwxrwxrwx 1 buildbot buildbot 17 Oct 9 21:16 S19dnsmasq -> ../init.d/dnsmasq
Same thing just happened to me.
Had to re-enable & start https-dns-proxy after flashing new imagebuilder image.
@stangri this happens because of this change below: that line should be using return.
Here is how to reproduce this issue on a working router:
/etc/init.d/https-dns-proxy disable
find /etc/ -name "*https-dns-proxy"
/etc/config/https-dns-proxy
/etc/init.d/https-dns-proxy
export IPKG_INSTROOT="/"
/etc/init.d/https-dns-proxy enable
find /etc/ -name "*https-dns-proxy"
/etc/config/https-dns-proxy
/etc/init.d/https-dns-proxy
unset IPKG_INSTROOT
/etc/init.d/https-dns-proxy enable
find /etc/ -name "*https-dns-proxy"
/etc/config/https-dns-proxy
/etc/init.d/https-dns-proxy
/etc/rc.d/S20https-dns-proxy
/etc/rc.d/K15https-dns-proxy
If IPKG_INSTROOT is set (like it is in image builder), then /etc/init.d/https-dns-proxy exits instead of return’ing. If IPKG_INSTROOTis NOT set, then the service can be enabled.
If I undo the change above in the script, then it all works in both cases.
Did you mean to keep the version number the same…
@stangri since option listen_addr is now a global setting instead of instance specific, why can’t we add another listener like 0::1 for ipv6 too?
You can either set it globally or in the instance config, just like before. Instance config overrides global (if both are set).
AFAIK upstream only allows one listen address per instance. Maybe run two instances one each on legacy/IPv6?
Maybe run two instances one each on legacy/IPv6?
In this case the listen ports should be kept the same? Since new instance uses a new port.
Something like this?
config https-dns-proxy
option bootstrap_dns '1.1.1.1,1.0.0.1'
option resolver_url 'https://cloudflare-dns.com/dns-query'
option listen_port '5053'
config https-dns-proxy
option bootstrap_dns '2606:4700:4700::1111,2606:4700:4700::1001'
option resolver_url 'https://cloudflare-dns.com/dns-query'
option listen_port '5053'
option listen_addr '::1'
if you manually specify servers for dnsmasq to point it to https-dns-proxy instances, you can try keeping the same port.
If you let https-dns-proxy manage dnsmasq settings, it will point dnsmasq to whatever ports it sets.
If dnsmasq only allowed one address, why are there multiple config https-dns-proxy sections? What is the purpose of the second one in the default config?
I thought that the second section would allow me to handle IPv6 DNS, but it does not seem to be the case. Can you clarify?
Sorry should have been more explicit – upstream as in upstream project, not upstream resolver. ![]()
I have configured two instances of https-dns-proxy: one for IPv4 and one for IPv6. Restarted https-dns-proxy and can see them in /etc/config/dnsmasq. One strange thing I noticed is that the IPv6 service came up without bootstrap_ip, even though it is configured: is that expected.
list server '127.0.0.1#5053'
list server '::1#5054'
/usr/sbin/https-dns-proxy -r https://dns.controld.com/x -p 5053 -b x.x.x.x -4 -u nobody -g nogroup
/usr/sbin/https-dns-proxy -r https://dns.controld.com/x -a ::1 -p 5054 -4 -u nobody -g nogroup
Are they the IPv6 bootstrap addresses? If there’s a family mismatch, the offending bootstrap addresses are silently dropped.
Yes
config https-dns-proxy
option bootstrap_dns 'x.x.x.x'
option resolver_url 'https://dns.controld.com/y'
option listen_port '5053'
option listen_addr '127.0.0.1'
config https-dns-proxy
option bootstrap_dns 'x:x::x'
option resolver_url 'https://dns.controld.com/y'
option listen_port '5054'
option listen_addr '::1'
