DNS Proxy (uci)

Hello!
These are the dnsproxy settings:

/ # uci show dnsproxy
dnsproxy.global=dnsproxy
dnsproxy.global.enabled='1'
dnsproxy.global.listen_addr='127.0.0.1' '::1'
dnsproxy.global.http3='0'
dnsproxy.global.insecure='0'
dnsproxy.global.ipv6_disabled='0'
dnsproxy.global.refuse_any='0'
dnsproxy.global.verbose='0'
dnsproxy.global.listen_port='5354'
dnsproxy.bogus_nxdomain=dnsproxy
dnsproxy.bogus_nxdomain.ip_addr=''
dnsproxy.cache=dnsproxy
dnsproxy.cache.enabled='0'
dnsproxy.cache.cache_optimistic='1'
dnsproxy.cache.size='2097152'
dnsproxy.dns64=dnsproxy
dnsproxy.dns64.enabled='0'
dnsproxy.dns64.dns64_prefix='64:ff9b::'
dnsproxy.edns=dnsproxy
dnsproxy.edns.enabled='0'
dnsproxy.hosts=dnsproxy
dnsproxy.hosts.enabled='0'
dnsproxy.hosts.hosts_files=''
dnsproxy.private_rdns=dnsproxy
dnsproxy.private_rdns.enabled='0'
dnsproxy.private_rdns.upstream='127.0.0.1:53'
dnsproxy.servers=dnsproxy
dnsproxy.servers.fallback='tls://9.9.9.9'
dnsproxy.servers.upstream='tls://9.9.9.9'
dnsproxy.servers.bootstrap='tcp://9.9.9.9' '9.9.9.9'
dnsproxy.tls=dnsproxy
dnsproxy.tls.enabled='1'
dnsproxy.tls.https_port='8443'
dnsproxy.tls.tls_port='853'
dnsproxy.tls.quic_port='853'

And while testing I have activated dnssec, but I cannot check if I have activated DNS over TLS.

Do I need to change something, or does anything makes no sense to you? I would like to use the Quad9 as DNS Service, but dont know which DNS service is best as fallback. And what means "bootstrap" in the settings?

I'm not sure about the DNSSEC and DNS over TLS questions, but the bootstrap IPs are for the initial resolving of DoT and DoH addresses. The explanation found at the documentation here shows:

  --bootstrap/-b
        Bootstrap DNS for DoH and DoT, can be specified multiple times (default: use system-provided).

The addresses from Quad9 for DoH and DoT are:

HTTPS
https://dns.quad9.net/dns-query
TLS
tls://dns.quad9.net

So the bootstrap DNS servers are the used for the getting the IP address of these addresses.

Also, someone correct me if I'm mistaken, but I think the tls.enabled option you have enabled is to connect to your dnsproxy server via tls, and not for connecting to your upstream server with tls (if that was what you wanted).

Other than that the config looks close to the defaults with the changes suggested by the wiki.

Hey nc26327,
I followed this howto: https://openwrt.org/docs/guide-user/services/dns/dot_dnsmasq_dnsproxy?s[]=links and took the info you'd provide.

My dnsproxysettings are now:

/ # uci show dnsproxy
dnsproxy.global=dnsproxy
dnsproxy.global.enabled='1'
dnsproxy.global.listen_addr='127.0.0.1' '::1'
dnsproxy.global.http3='0'
dnsproxy.global.insecure='0'
dnsproxy.global.ipv6_disabled='0'
dnsproxy.global.refuse_any='0'
dnsproxy.global.verbose='0'
dnsproxy.global.listen_port='5354'
dnsproxy.bogus_nxdomain=dnsproxy
dnsproxy.bogus_nxdomain.ip_addr=''
dnsproxy.cache=dnsproxy
dnsproxy.cache.enabled='0'
dnsproxy.cache.cache_optimistic='1'
dnsproxy.cache.size='2097152'
dnsproxy.dns64=dnsproxy
dnsproxy.dns64.enabled='0'
dnsproxy.dns64.dns64_prefix='64:ff9b::'
dnsproxy.edns=dnsproxy
dnsproxy.edns.enabled='0'
dnsproxy.hosts=dnsproxy
dnsproxy.hosts.enabled='0'
dnsproxy.hosts.hosts_files=''
dnsproxy.private_rdns=dnsproxy
dnsproxy.private_rdns.enabled='0'
dnsproxy.private_rdns.upstream='127.0.0.1:53'
dnsproxy.servers=dnsproxy
dnsproxy.servers.fallback='tls://116.202.176.26'
dnsproxy.servers.upstream='tls://9.9.9.9'
dnsproxy.servers.bootstrap='tls://dns.quad9.net'
dnsproxy.tls=dnsproxy
dnsproxy.tls.enabled='0'
dnsproxy.tls.https_port='8443'
dnsproxy.tls.tls_port='853'
dnsproxy.tls.quic_port='853'

My firewallsetting regarding to dnsproxy is:

config redirect
        option target 'DNAT'
        option name 'Intercept-DNS'
        option src 'lan'
        option src_dport '53'

But when I use the test webpage for Quad9, the message says ' No, you are NOT using quad9.' -> https://on.quad9.net/

The dnssec test is ok. -> http://dnssec-or-not.com/

The dns check passes everything. -> https://dnscheck.tools/

The dns leak test says my dns resolver is cloudflare, which is wrong (should be quad9 as set in the dnsproxy settings). -> https://dnsleaktest.com/results.html

Why is that? The how to is not giving more info for troubleshooting.

Browser-DNS is turned off. :slight_smile:

...and what is about ipv6 adresses for libredns and quad9? Where do I put those in the settings? I wish I had a gui to dnsproxy.

Did you reconfigure dnsmasq to forward to dnsproxy, as mentioned in the wiki article?

Have you made sure to set dnsmasq to forward to the set dnsproxy port of 5453?
This was from the wiki:

# Configure dnsmasq
service dnsmasq stop
uci set dhcp.@dnsmasq[0].noresolv="1"
uci set dhcp.@dnsmasq[0].cachesize="10000"
uci set dhcp.@dnsmasq[0].min_cache_ttl="3600"
uci set dhcp.@dnsmasq[0].max_cache_ttl="86400"
uci -q del dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5354"
uci add_list dhcp.@dnsmasq[0].server="::1#5354"
uci commit dhcp
service dnsmasq start

Also you have the bootstrap and upstream swapped around:
Bootstrap should be an ip dnsproxy can use to resolve the upstream address:

dnsproxy.servers.upstream='tls://dns.quad9.net'
dnsproxy.servers.bootstrap='tls://9.9.9.9'

From Quad 9

IPv6
2620:fe::fe
2620:fe::9

There's a GUI but not officially in repo: muink/luci-app-dnsproxy.

I repeat cofigure dnsmasq, but recieve an error which I oversee before:

udhcpc: started, v1.37.0
udhcpc: broadcasting discover
udhcpc: no lease, failing
udhcpc: started, v1.37.0
udhcpc: broadcasting discover
udhcpc: no lease, failing

Edit:This article here is quite similar: Guest Network Errors. "udhcpc: no lease, failing"

But my lan has a running dhcp server.

what I mean is: where to put this ipv6 adress in the settings of dnsproxy?

Looking at here: Guest Network Errors. "udhcpc: no lease, failing" - OpenWrt Forum, looks like this is normal dnsmasq behavior when restarting - it's checking to see there's other DHCP servers.

As for the IPV6 addresses, I assume they can be added to the list of options of bootstrap / fallback / upstream like IPV4 ones.

Like uci add_list dnsproxy.servers.bootstrap="2620:fe::fe"
Or in the config file: list bootstrap 'tls://1.1.1.1' '2620:fe::fe'

Ok, its intended this way. So the answer is: yes, I did configure dnsmasq as mentioned in the wiki. But the test is still saying, I dont have Quad9 DNS working, and its saying that cloudflare is working. (I think this is the default dns from my ISP.)

Can you run these queries on the router?

nslookup -type=txt proto.on.quad9.net 9.9.9.9
nslookup -type=txt proto.on.quad9.net 127.0.0.1:5354
nslookup -type=txt proto.on.quad9.net 192.168.1.1

If 192.168.1.1 isn’t your lan IP, use your lan IP in the last command.

/ # nslookup -type=txt proto.on.quad9.net 9.9.9.9
Server:         9.9.9.9
Address:        9.9.9.9:53 

Non-authoritative answer:
proto.on.quad9.net      text = "do53-udp"

Grrr, I made a mistake. I just tried dnsmasq reload and I cannot reach any hosts now. :confused:

/ # nslookup -type=txt proto.on.quad9.net 127.0.0.1:5354
nslookup: read: Connection refused
nslookup: read: Connection refused
;; connection timed out; no servers could be reached
/ # nslookup -type=txt proto.on.quad9.net 192.168.100.1
;; connection timed out; no servers could be reached

dnsproxy doesn’t appear to be running. Check the system log.

logread -e "dnsmasq\["
logread -e "dnsproxy"

Edit: Im just loading the backup right now.

/ # logread -e "dnsproxy"
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: 2026/05/05 02:45:12.739616 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: 2026/05/05 02:45:12.741040 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: jail: jail (2391) exited with exit: 1
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: 2026/05/05 02:45:17.794421 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: 2026/05/05 02:45:17.794747 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: jail: jail (3260) exited with exit: 1
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: 2026/05/05 02:45:22.864455 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: 2026/05/05 02:45:22.864771 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: jail: jail (3784) exited with exit: 1
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: 2026/05/05 02:45:27.934486 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: 2026/05/05 02:45:27.934797 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: jail: jail (3955) exited with exit: 1
Tue May  5 04:45:32 2026 daemon.info dnsproxy[3961]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: 2026/05/05 02:45:33.004485 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: 2026/05/05 02:45:33.004802 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: jail: jail (3986) exited with exit: 1
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: 2026/05/05 02:45:38.054433 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: 2026/05/05 02:45:38.054757 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: jail: jail (4017) exited with exit: 1
Tue May  5 04:45:38 2026 daemon.info procd: Instance dnsproxy::dnsproxy s in a crash loop 6 crashes, 0 seconds since last crash
/ # logread -e "dnsmasq\["
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: started, version 2.91 cachesize 10000
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-DNSSEC no-ID loop-detect inotify dumpfile
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#5354
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using nameserver ::1#5354
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for test
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for local
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:45:10 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 0 names
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: exiting on receipt of SIGTERM
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: started, version 2.91 cachesize 10000
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-DNSSEC no-ID loop-detect inotify dumpfile
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#5354
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using nameserver ::1#5354
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for test
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for local
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:45:17 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 4 names
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: exiting on receipt of SIGTERM
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: started, version 2.91 cachesize 10000
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-DNSSEC no-ID loop-detect inotify dumpfile
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#5354
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using nameserver ::1#5354
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for test
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for local
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:45:19 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 6 names
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: exiting on receipt of SIGTERM
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: started, version 2.91 cachesize 10000
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: DNS service limited to local subnets
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-nftset no-auth no-DNSSEC no-ID loop-detect inotify dumpfile
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: UBus support enabled: connected to system bus
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#5354
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using nameserver ::1#5354
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for test
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for local
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:45:20 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 6 names
Tue May  5 04:46:18 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:46:18 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 6 names
Tue May  5 04:46:23 2026 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue May  5 04:46:23 2026 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 6 names
Tue May  5 04:46:23 2026 daemon.info dnsmasq[1]: read /tmp/hosts/odhcpd.hosts.lan - 2 names

I dont know what happened. But as soon as I enter the config for dnsmasq, I cannot reach any hosts anymore. The logs saying something about crashing, but I dunno. And seriously I wouldnt go down this road any further. I cannot understand why this keyfeature has to be so difficult to set up. sigh

# Configure dnsmasq
service dnsmasq stop
uci set dhcp.@dnsmasq[0].noresolv="1"
uci set dhcp.@dnsmasq[0].cachesize="10000"
uci set dhcp.@dnsmasq[0].min_cache_ttl="3600"
uci set dhcp.@dnsmasq[0].max_cache_ttl="86400"
uci -q del dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5354"
uci add_list dhcp.@dnsmasq[0].server="::1#5354"
uci commit dhcp
service dnsmasq start

Something seems wrong with the config of dnsproxy. Please post:

uci export dnsproxy
service dnsproxy restart
logread -e dnsproxy

As I wrote in other thread, Quad-https now is usable. With new https-dns-proxy package situation improved. Still not up to “good level”, because slower than competitors because of the errors, but may be authors might help.

/ # uci export dnsproxy
package dnsproxy

config dnsproxy 'global'
        option enabled '1'
        list listen_addr '127.0.0.1'
        list listen_addr '::1'
        option http3 '0'
        option insecure '0'
        option ipv6_disabled '0'
        option refuse_any '0'
        option verbose '0'
        list listen_port '5354'

config dnsproxy 'bogus_nxdomain'
        list ip_addr ''

config dnsproxy 'cache'
        option enabled '0'
        option cache_optimistic '1'
        option size '2097152'

config dnsproxy 'dns64'
        option enabled '0'
        option dns64_prefix '64:ff9b::'

config dnsproxy 'edns'
        option enabled '0'

config dnsproxy 'hosts'
        option enabled '0'
        list hosts_files ''

config dnsproxy 'private_rdns'
        option enabled '0'
        list upstream '127.0.0.1:53'

config dnsproxy 'servers'
        option upstream 'tls://dns.quad9.net'
        list bootstrap '9.9.9.9'
        list bootstrap 'tls://9.9.9.9'
        list bootstrap '2620:fe::fe'
        list bootstrap 'tls://2620:fe::9'
        list fallback '116.202.176.26'
        list fallback 'tls://116.202.176.26'
        list fallback 'tls://2a01:4f8:1c0c:8274::1'

config dnsproxy 'tls'
        option enabled '0'
        option https_port '8443'
        option tls_port '853'
        option quic_port '853'

/ # service dnsproxy restart
/ # logread -e dnsproxy
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: 2026/05/05 02:45:12.739616 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: 2026/05/05 02:45:12.741040 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:12 2026 daemon.info dnsproxy[2339]: jail: jail (2391) exited with exit: 1
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: 2026/05/05 02:45:17.794421 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: 2026/05/05 02:45:17.794747 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:17 2026 daemon.info dnsproxy[3235]: jail: jail (3260) exited with exit: 1
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: 2026/05/05 02:45:22.864455 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: 2026/05/05 02:45:22.864771 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:22 2026 daemon.info dnsproxy[3759]: jail: jail (3784) exited with exit: 1
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: 2026/05/05 02:45:27.934486 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: 2026/05/05 02:45:27.934797 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:27 2026 daemon.info dnsproxy[3930]: jail: jail (3955) exited with exit: 1
Tue May  5 04:45:32 2026 daemon.info dnsproxy[3961]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: 2026/05/05 02:45:33.004485 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: 2026/05/05 02:45:33.004802 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:33 2026 daemon.info dnsproxy[3961]: jail: jail (3986) exited with exit: 1
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: 2026/05/05 02:45:38.054433 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: 2026/05/05 02:45:38.054757 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 04:45:38 2026 daemon.info dnsproxy[3992]: jail: jail (4017) exited with exit: 1
Tue May  5 04:45:38 2026 daemon.info procd: Instance dnsproxy::dnsproxy s in a crash loop 6 crashes, 0 seconds since last crash
Tue May  5 10:22:24 2026 daemon.info dnsproxy[15607]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 10:22:24 2026 daemon.info dnsproxy[15607]: 2026/05/05 08:22:24.844785 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 10:22:24 2026 daemon.info dnsproxy[15607]: 2026/05/05 08:22:24.845198 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 10:22:24 2026 daemon.info dnsproxy[15607]: jail: jail (15632) exited with exit: 1
Tue May  5 10:22:29 2026 daemon.info dnsproxy[15640]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 10:22:29 2026 daemon.info dnsproxy[15640]: 2026/05/05 08:22:29.914541 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 10:22:29 2026 daemon.info dnsproxy[15640]: 2026/05/05 08:22:29.914955 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 10:22:29 2026 daemon.info dnsproxy[15640]: jail: jail (15665) exited with exit: 1
Tue May  5 10:22:34 2026 daemon.info dnsproxy[15673]: jail: exec-ing /usr/bin/dnsproxy
Tue May  5 10:22:34 2026 daemon.info dnsproxy[15673]: 2026/05/05 08:22:34.974761 INFO dnsproxy starting version=v0.81.0 revision="" branch="" commit_time=""
Tue May  5 10:22:34 2026 daemon.info dnsproxy[15673]: 2026/05/05 08:22:34.975157 ERROR running dnsproxy err="creating proxy: general upstreams: no upstream specified"
Tue May  5 10:22:34 2026 daemon.info dnsproxy[15673]: jail: jail (15698) exited with exit: 1

First. It's not a key feature.
Second, if you wanna complain then talk to the package maintainer.
Third, read and follow the documentation. As you see there are users who have no issues running this setup.