[GH-ISSUE #2232] DoH / DoT support #4694

Open
opened 2026-08-05 00:59:15 -04:00 by saavagebueno · 18 comments
Owner

Originally created by @mrbluecoat on GitHub (Jul 3, 2024).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/2232

Any plans to support DNS over HTTPS (DoH) or DNS over TLS (DoT)?

https://docs.netbird.io/how-to/manage-dns-in-your-network

Originally created by @mrbluecoat on GitHub (Jul 3, 2024). Original GitHub issue: https://github.com/netbirdio/netbird/issues/2232 Any plans to support DNS over HTTPS (DoH) or DNS over TLS (DoT)? https://docs.netbird.io/how-to/manage-dns-in-your-network
saavagebueno added the feature-requestdns labels 2026-08-05 00:59:15 -04:00
Author
Owner

@v1rusnl commented on GitHub (Oct 10, 2024):

Used Twingate with it's integration of NextDNS as DoH Resolver in the past, but recently migrated from Twingate to Netbird and was surprised that this feature (DoH/DoT) isn't supported as a built-in solution, e.g. that I can setup not only IP nameservers, but also use DOH with them and set profiles for clients like e.g. Tailscale does.

<!-- gh-comment-id:2404168793 --> @v1rusnl commented on GitHub (Oct 10, 2024): Used Twingate with it's integration of NextDNS as DoH Resolver in the past, but recently migrated from Twingate to Netbird and was surprised that this feature (DoH/DoT) isn't supported as a built-in solution, e.g. that I can setup not only IP nameservers, but also use DOH with them and set profiles for clients like e.g. Tailscale does.
Author
Owner

@Alexj12 commented on GitHub (Mar 9, 2025):

Adding a comment here to echo support for this feature. Would be great to be able to use this to get all the benefits of NextDNS.

<!-- gh-comment-id:2709056369 --> @Alexj12 commented on GitHub (Mar 9, 2025): Adding a comment here to echo support for this feature. Would be great to be able to use this to get all the benefits of NextDNS.
Author
Owner

@slimshizn commented on GitHub (Mar 16, 2025):

I see this request has been open for a while, would love to see this. I know adding a thumbs up is generally good enough, but sometimes it gets lost.

<!-- gh-comment-id:2727488688 --> @slimshizn commented on GitHub (Mar 16, 2025): I see this request has been open for a while, would love to see this. I know adding a thumbs up is generally good enough, but sometimes it gets lost.
Author
Owner

@stalane commented on GitHub (Apr 20, 2025):

joining the me too movement

<!-- gh-comment-id:2817101463 --> @stalane commented on GitHub (Apr 20, 2025): joining the me too movement
Author
Owner

@dontshootitsme commented on GitHub (Jun 19, 2025):

+1

<!-- gh-comment-id:2986862579 --> @dontshootitsme commented on GitHub (Jun 19, 2025): +1
Author
Owner

@antraxbr666 commented on GitHub (Jul 8, 2025):

nobody want use google and others insecure dns servers, i dont understand why netbird staff no permit dns doh or tls

<!-- gh-comment-id:3048515063 --> @antraxbr666 commented on GitHub (Jul 8, 2025): nobody want use google and others insecure dns servers, i dont understand why netbird staff no permit dns doh or tls
Author
Owner

@SebbesApa commented on GitHub (Jul 28, 2025):

Migrated from tailscale with NextDNS and was suprised to see that doh/dot was not supported as well.

<!-- gh-comment-id:3128451274 --> @SebbesApa commented on GitHub (Jul 28, 2025): Migrated from tailscale with NextDNS and was suprised to see that doh/dot was not supported as well.
Author
Owner

@ryo9999 commented on GitHub (Sep 11, 2025):

I am also unable to switch to Netbird because it lacks this feature.

<!-- gh-comment-id:3283369186 --> @ryo9999 commented on GitHub (Sep 11, 2025): I am also unable to switch to Netbird because it lacks this feature.
Author
Owner

@evilhamsterman commented on GitHub (Jan 22, 2026):

It would be nice to have this integrated, I could see a way around using an internal name server pointing to CoreDNS with DoH/T forward

<!-- gh-comment-id:3785848047 --> @evilhamsterman commented on GitHub (Jan 22, 2026): It would be nice to have this integrated, I could see a way around using an internal name server pointing to CoreDNS with DoH/T forward
Author
Owner

@coxde commented on GitHub (Jan 24, 2026):

Just like NextDNS, it'd be great to support Control D Profiles as well. Ref: https://tailscale.com/kb/1403/control-d

<!-- gh-comment-id:3795815003 --> @coxde commented on GitHub (Jan 24, 2026): Just like NextDNS, it'd be great to support Control D Profiles as well. Ref: https://tailscale.com/kb/1403/control-d
Author
Owner

@xangelix commented on GitHub (Mar 7, 2026):

this is the last needed feature for us to fully switch to NetBird!

<!-- gh-comment-id:4017573309 --> @xangelix commented on GitHub (Mar 7, 2026): this is the last needed feature for us to fully switch to NetBird!
Author
Owner

@tiki1980 commented on GitHub (Mar 25, 2026):

Yet this would be a really great feature to integrate netbird with nextdns or controld

<!-- gh-comment-id:4124154869 --> @tiki1980 commented on GitHub (Mar 25, 2026): Yet this would be a really great feature to integrate netbird with nextdns or controld
Author
Owner

@dasunsrule32 commented on GitHub (Apr 22, 2026):

While DoT isn't enabled locally in the Netbird Resolver or in the Netbird Nameserver:

❯ dig @100.93.47.233 +tls infra.domain.co
;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused.
;; no servers could be reached
;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused.
;; no servers could be reached
;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused.
;; no servers could be reached

I can confirm that when I have DoT configured on my local client in systemd-resolved as Opportunistic, the traffic passes from the local Netbird resolver upstream to my server as TLS encrypted. I've confirmed all DNS traffic coming from my Netbird Routing Peers are TLS encrypted. So it is working. I don't see any reason it wouldn't work anywhere else.

This works because of how I think it is working is below without a Netbird Nameserver defined. Any records/zones defined will be forced to 53/udp:

Netbird Resolver -> DNS Client -> Netbird Routing Peer -> Upstream DNS Resolver -> Internet Resolver

For this to work directly through Netbird's Nameserver feature, the devs would need to allow forwarding the ports for DoT, DoH, etc. For the time being, passthrough is how it seems to be accomplishing this. I've attempted to set the ports to 53, 443, and 853 in the Netbird Nameserver and it only works with 53. See example below:

Nameservers: 
  [192.168.0.8:853] for [infra.domain.co] is Unavailable, reason: 1 error occurred:
        * with udp: read udp 100.93.47.233:48536->192.168.0.8:853: i/o timeout

Nameservers: 
  [192.168.0.8:53] for [infra.domain.co] is Available

Traceroute:

❯ traceroute dns
traceroute to dns (192.168.0.8), 30 hops max, 60 byte packets
 1  erbridge02.nb.domain.lan (100.93.4.51)  2.604 ms  2.568 ms  2.553 ms
 2  dns.domain.lan (192.168.0.8)  2.541 ms  2.525 ms  2.511 ms

Routes:

❯ ip route show table all
192.168.0.0/24 dev wt0 table 7120 
default via 192.168.2.1 dev wlan0 proto dhcp src 192.168.2.91 metric 600 
100.93.0.0/16 dev wt0 proto kernel scope link src 100.93.47.233 
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.91 metric 600 
local 100.93.47.233 dev wt0 table local proto kernel scope host src 100.93.47.233 
broadcast 100.93.255.255 dev wt0 table local proto kernel scope link src 100.93.47.233 
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1 
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1 
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1 
local 192.168.2.91 dev wlan0 table local proto kernel scope host src 192.168.2.91 
broadcast 192.168.2.255 dev wlan0 table local proto kernel scope link src 192.168.2.91 

NetworkManager DoT config:

❯ cat /etc/NetworkManager/conf.d/90-dns-over-tls.conf
[connection]
connection.dns-over-tls=1

Query:

❯ resolvectl query google.com
google.com: 142.251.35.238                     -- link: wlan0

-- Information acquired via protocol DNS in 36.8ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: yes
-- Data from: network

Netbird Routing Peer

root@erbridge02:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0@if123: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:ee:ea:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.0.16/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:feee:ea7d/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
3: wt0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 100.93.4.51/16 brd 100.93.255.255 scope global wt0
       valid_lft forever preferred_lft forever

Client IP in the logs below are from my Netbird Routing Peers on the network.

Image

Netbird Status:

❯ netbird status -dA
Peers detail:
 erbridge02.nb.anon-gryf4.domain:
  NetBird IP: 100.93.4.51
  Public key: 7Om7TrWwZgUS6i96yjiCKhySO5r81dHyYoFHrp4LwF8=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/prflx
  ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.0.16:51820
  Relay server address: rels://nb.anon-Uec7f.domain:443
  Last connection update: 53 minutes, 18 seconds ago
  Last WireGuard handshake: 1 minute, 12 seconds ago
  Transfer status (received/sent) 10.3 MiB/14.9 MiB
  Quantum resistance: false
  Networks: 192.168.0.0/24
  Latency: 2.271624ms

 phone.nb.anon-gryf4.domain:
  NetBird IP: 100.93.64.179
  Public key: HAU8LvgpIN2HDquFoP/M3GpnUJ+SIA7EmurVA7d3Ims=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/prflx
  ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.2.95:51820
  Relay server address: rels://nb.anon-Uec7f.domain:443
  Last connection update: 53 minutes, 16 seconds ago
  Last WireGuard handshake: 1 minute, 35 seconds ago
  Transfer status (received/sent) 4.1 KiB/11.5 KiB
  Quantum resistance: false
  Networks: -
  Latency: 8.986495ms

 erbridge01.nb.anon-gryf4.domain:
  NetBird IP: 100.93.152.145
  Public key: gn/o1BFcHkcBLqyAviZLVMjcv93jHjSPu5/sZ6X6zgM=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/prflx
  ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.0.15:51820
  Relay server address: rels://nb.anon-Uec7f.domain:443
  Last connection update: 53 minutes, 17 seconds ago
  Last WireGuard handshake: 53 seconds ago
  Transfer status (received/sent) 79.0 KiB/58.7 KiB
  Quantum resistance: false
  Networks: -
  Latency: 2.162517ms

Events:
  [INFO] SYSTEM (aaf50209-3384-458b-8835-0262c50234fc)
    Message: Network map updated
    Time: 1 hour, 23 minutes ago
  [INFO] SYSTEM (7e8e8860-388c-457f-90f4-e7f683907e8e)
    Message: Network map updated
    Time: 1 hour, 21 minutes ago
  [INFO] SYSTEM (079e8023-109c-488a-9058-34e899494c2a)
    Message: Network map updated
    Time: 1 hour, 20 minutes ago
  [INFO] SYSTEM (7cfe0571-acad-4c7b-b63f-654a416ad36b)
    Message: Network map updated
    Time: 1 hour, 19 minutes ago
  [INFO] SYSTEM (a8fa6b25-9945-4423-a2d7-4aad0550eea0)
    Message: Network map updated
    Time: 1 hour, 18 minutes ago
  [INFO] SYSTEM (a146adad-d1f1-46d8-a626-0d4a74505e95)
    Message: Network map updated
    Time: 1 hour, 17 minutes ago
  [INFO] SYSTEM (61e7d8b1-c6b9-4b43-bcc1-06eec3d96cf0)
    Message: Network map updated
    Time: 1 hour, 14 minutes ago
  [INFO] SYSTEM (83561f26-da47-44be-a130-31a6e6fc176b)
    Message: Network map updated
    Time: 1 hour, 13 minutes ago
  [INFO] SYSTEM (be1b1748-52d2-4d34-b096-784bbaa93130)
    Message: Network map updated
    Time: 58 minutes, 51 seconds ago
  [INFO] SYSTEM (b77182b7-f86b-4652-a977-b2cedc8a7c85)
    Message: Network map updated
    Time: 58 minutes, 19 seconds ago
OS: linux/amd64
Daemon version: 0.69.0
CLI version: 0.69.0
Profile: default
Management: Connected to https://nb.anon-Uec7f.domain:443
Signal: Connected to https://nb.anon-Uec7f.domain:443
Relays: 
  [stun:nb.anon-Uec7f.domain:3478] is Available
  [rels://nb.anon-Uec7f.domain:443] is Available
Nameservers: 
  [192.168.0.8:53] for [infra.anon-Uec7f.domain] is Available
FQDN: laptop.nb.anon-gryf4.domain
NetBird IP: 100.93.47.233/16
Interface type: Kernel
Quantum resistance: false
Lazy connection: false
SSH Server: Disabled
Networks: -
Peers count: 3/3 Connected

PS - It would be nice to have integrated DoT/DoH in Netbird so all DNS can be encrypted across all routes where available without workarounds, not just services like Cloudflare or NextDNS. Passthrough is a start though.

<!-- gh-comment-id:4297361609 --> @dasunsrule32 commented on GitHub (Apr 22, 2026): While DoT isn't enabled locally in the Netbird Resolver or in the Netbird Nameserver: ``` ❯ dig @100.93.47.233 +tls infra.domain.co ;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused. ;; no servers could be reached ;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused. ;; no servers could be reached ;; Connection to 100.93.47.233#853(100.93.47.233) for infra.domain.co failed: connection refused. ;; no servers could be reached ``` I can confirm that when I have DoT configured on my local client in `systemd-resolved` as `Opportunistic`, the traffic passes from the local Netbird resolver upstream to my server as TLS encrypted. I've confirmed all DNS traffic coming from my Netbird Routing Peers are TLS encrypted. So it is working. I don't see any reason it wouldn't work anywhere else. This works because of how I _think_ it is working is below without a Netbird Nameserver defined. Any records/zones defined will be forced to `53/udp`: ``` Netbird Resolver -> DNS Client -> Netbird Routing Peer -> Upstream DNS Resolver -> Internet Resolver ``` For this to work directly through Netbird's Nameserver feature, the devs would need to allow forwarding the ports for DoT, DoH, etc. For the time being, passthrough is how it seems to be accomplishing this. I've attempted to set the ports to 53, 443, and 853 in the Netbird Nameserver and it only works with 53. See example below: ``` Nameservers: [192.168.0.8:853] for [infra.domain.co] is Unavailable, reason: 1 error occurred: * with udp: read udp 100.93.47.233:48536->192.168.0.8:853: i/o timeout Nameservers: [192.168.0.8:53] for [infra.domain.co] is Available ``` Traceroute: ``` ❯ traceroute dns traceroute to dns (192.168.0.8), 30 hops max, 60 byte packets 1 erbridge02.nb.domain.lan (100.93.4.51) 2.604 ms 2.568 ms 2.553 ms 2 dns.domain.lan (192.168.0.8) 2.541 ms 2.525 ms 2.511 ms ``` Routes: ``` ❯ ip route show table all 192.168.0.0/24 dev wt0 table 7120 default via 192.168.2.1 dev wlan0 proto dhcp src 192.168.2.91 metric 600 100.93.0.0/16 dev wt0 proto kernel scope link src 100.93.47.233 192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.91 metric 600 local 100.93.47.233 dev wt0 table local proto kernel scope host src 100.93.47.233 broadcast 100.93.255.255 dev wt0 table local proto kernel scope link src 100.93.47.233 local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1 local 192.168.2.91 dev wlan0 table local proto kernel scope host src 192.168.2.91 broadcast 192.168.2.255 dev wlan0 table local proto kernel scope link src 192.168.2.91 ``` NetworkManager DoT config: ``` ❯ cat /etc/NetworkManager/conf.d/90-dns-over-tls.conf [connection] connection.dns-over-tls=1 ``` Query: ``` ❯ resolvectl query google.com google.com: 142.251.35.238 -- link: wlan0 -- Information acquired via protocol DNS in 36.8ms. -- Data is authenticated: no; Data was acquired via local or encrypted transport: yes -- Data from: network ``` Netbird Routing Peer ``` root@erbridge02:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: eth0@if123: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether bc:24:11:ee:ea:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.0.16/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::be24:11ff:feee:ea7d/64 scope link proto kernel_ll valid_lft forever preferred_lft forever 3: wt0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 100.93.4.51/16 brd 100.93.255.255 scope global wt0 valid_lft forever preferred_lft forever ``` Client IP in the logs below are from my Netbird Routing Peers on the network. <img width="1117" height="270" alt="Image" src="https://github.com/user-attachments/assets/81b163ee-9721-4917-a43c-9f8b09b26465" /> Netbird Status: ``` ❯ netbird status -dA Peers detail: erbridge02.nb.anon-gryf4.domain: NetBird IP: 100.93.4.51 Public key: 7Om7TrWwZgUS6i96yjiCKhySO5r81dHyYoFHrp4LwF8= Status: Connected -- detail -- Connection type: P2P ICE candidate (Local/Remote): host/prflx ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.0.16:51820 Relay server address: rels://nb.anon-Uec7f.domain:443 Last connection update: 53 minutes, 18 seconds ago Last WireGuard handshake: 1 minute, 12 seconds ago Transfer status (received/sent) 10.3 MiB/14.9 MiB Quantum resistance: false Networks: 192.168.0.0/24 Latency: 2.271624ms phone.nb.anon-gryf4.domain: NetBird IP: 100.93.64.179 Public key: HAU8LvgpIN2HDquFoP/M3GpnUJ+SIA7EmurVA7d3Ims= Status: Connected -- detail -- Connection type: P2P ICE candidate (Local/Remote): host/prflx ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.2.95:51820 Relay server address: rels://nb.anon-Uec7f.domain:443 Last connection update: 53 minutes, 16 seconds ago Last WireGuard handshake: 1 minute, 35 seconds ago Transfer status (received/sent) 4.1 KiB/11.5 KiB Quantum resistance: false Networks: - Latency: 8.986495ms erbridge01.nb.anon-gryf4.domain: NetBird IP: 100.93.152.145 Public key: gn/o1BFcHkcBLqyAviZLVMjcv93jHjSPu5/sZ6X6zgM= Status: Connected -- detail -- Connection type: P2P ICE candidate (Local/Remote): host/prflx ICE candidate endpoints (Local/Remote): 192.168.2.91:51820/192.168.0.15:51820 Relay server address: rels://nb.anon-Uec7f.domain:443 Last connection update: 53 minutes, 17 seconds ago Last WireGuard handshake: 53 seconds ago Transfer status (received/sent) 79.0 KiB/58.7 KiB Quantum resistance: false Networks: - Latency: 2.162517ms Events: [INFO] SYSTEM (aaf50209-3384-458b-8835-0262c50234fc) Message: Network map updated Time: 1 hour, 23 minutes ago [INFO] SYSTEM (7e8e8860-388c-457f-90f4-e7f683907e8e) Message: Network map updated Time: 1 hour, 21 minutes ago [INFO] SYSTEM (079e8023-109c-488a-9058-34e899494c2a) Message: Network map updated Time: 1 hour, 20 minutes ago [INFO] SYSTEM (7cfe0571-acad-4c7b-b63f-654a416ad36b) Message: Network map updated Time: 1 hour, 19 minutes ago [INFO] SYSTEM (a8fa6b25-9945-4423-a2d7-4aad0550eea0) Message: Network map updated Time: 1 hour, 18 minutes ago [INFO] SYSTEM (a146adad-d1f1-46d8-a626-0d4a74505e95) Message: Network map updated Time: 1 hour, 17 minutes ago [INFO] SYSTEM (61e7d8b1-c6b9-4b43-bcc1-06eec3d96cf0) Message: Network map updated Time: 1 hour, 14 minutes ago [INFO] SYSTEM (83561f26-da47-44be-a130-31a6e6fc176b) Message: Network map updated Time: 1 hour, 13 minutes ago [INFO] SYSTEM (be1b1748-52d2-4d34-b096-784bbaa93130) Message: Network map updated Time: 58 minutes, 51 seconds ago [INFO] SYSTEM (b77182b7-f86b-4652-a977-b2cedc8a7c85) Message: Network map updated Time: 58 minutes, 19 seconds ago OS: linux/amd64 Daemon version: 0.69.0 CLI version: 0.69.0 Profile: default Management: Connected to https://nb.anon-Uec7f.domain:443 Signal: Connected to https://nb.anon-Uec7f.domain:443 Relays: [stun:nb.anon-Uec7f.domain:3478] is Available [rels://nb.anon-Uec7f.domain:443] is Available Nameservers: [192.168.0.8:53] for [infra.anon-Uec7f.domain] is Available FQDN: laptop.nb.anon-gryf4.domain NetBird IP: 100.93.47.233/16 Interface type: Kernel Quantum resistance: false Lazy connection: false SSH Server: Disabled Networks: - Peers count: 3/3 Connected ``` PS - It would be nice to have integrated DoT/DoH in Netbird so all DNS can be encrypted across all routes where available without workarounds, not just services like Cloudflare or NextDNS. Passthrough is a start though.
Author
Owner

@alexsyw commented on GitHub (May 5, 2026):

Hey everyone! Joining the "me too" crowd here :)
I use NextDNS with my own Headscale setup and really miss having DoH in NetBird.

<!-- gh-comment-id:4378879559 --> @alexsyw commented on GitHub (May 5, 2026): Hey everyone! Joining the "me too" crowd here :) I use NextDNS with my own Headscale setup and really miss having DoH in NetBird.
Author
Owner

@Extra-Citron-7630 commented on GitHub (May 26, 2026):

Looking for this as well

<!-- gh-comment-id:4546529802 --> @Extra-Citron-7630 commented on GitHub (May 26, 2026): Looking for this as well
Author
Owner

@truejcrive commented on GitHub (Jun 4, 2026):

Yeah joining the movement i cant believe they dont have this i come from Tailscale very surprised

<!-- gh-comment-id:4624222880 --> @truejcrive commented on GitHub (Jun 4, 2026): Yeah joining the movement i cant believe they dont have this i come from Tailscale very surprised
Author
Owner

@mauvehed commented on GitHub (Jun 30, 2026):

Two years later... this is still desperately needed.

<!-- gh-comment-id:4847429567 --> @mauvehed commented on GitHub (Jun 30, 2026): Two years later... this is still desperately needed.
Author
Owner

@GustavoKatel commented on GitHub (Jun 30, 2026):

Two years later... this is still desperately needed.

I proposed an implementation here but it didn't get much traction from maintainers :(

<!-- gh-comment-id:4847484159 --> @GustavoKatel commented on GitHub (Jun 30, 2026): > Two years later... this is still desperately needed. I proposed an implementation [here](https://github.com/netbirdio/netbird/discussions/6365) but it didn't get much traction from maintainers :(
Sign in to join this conversation.
No Label dns feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#4694