Local Unbound not used #1117

Closed
opened 2025-12-29 02:28:21 +01:00 by adam · 2 comments
Owner

Originally created by @rucksman on GitHub (Oct 26, 2025).

Is this a support request?

  • This is not a support request

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Headscale is running on a VPS. Goal is to connect my internal server and my Android smartphone to the Headscale network with my smartphone using the Unbound resolver which is running on my internal server (Docker). With the smartphone I want to connect to services that run on the internal server. I have tried multiple variations already, but none of them succeeded. I also read all the issues mentioned here, but nothing helped.

I can ping the internal server from my smartphone over the internal IP adress (192.168.100.10). Services are resolved if I do "dig @<192.168.100.10> some.internal-service.tld", but not if I do the same without explicitly using the internal DNS.

I also tried extra_records in the Headscale config, didn't help either.

The relevant settings are (current config, changeld all of them more or less randomly):
Headscale (VPS):

magic_dns: true
override_local_dns: false
nameservers:
    global:
      - 192.168.100.10

Tailscale internal server:
docker-compose.yml:
TS_EXTRA_ARGS=--login-server=https://my.headscale.tld --advertise-routes=192.168.100.0/24 --accept-dns=false --advertise-exit-node network_mode: "host"

Smartphone:
"Use Tailscale DNS" is switched on

Expected Behavior

Smartphone should use the DNS resolver running on the internal server.

Steps To Reproduce

Run Headscale on a VPS, an internal server with Unbound and Tailscale as well as a smartphone running tailscale. Try to connect to a domain name that is used by a service that is running in the internal server.

Environment

- OS:Ubuntu 24.04
- Headscale version: 0.26.1
- Tailscale version: 1.88.4 (Smartphone), 1.86.5 (internal server)

Runtime environment

  • Headscale is behind a (reverse) proxy
  • Headscale runs in a container

Debug information

I have also a regular Wireguard container running on the internal server, and when connecting from my smartphone it is using the internal Unbound resolver. But due to various reasons I would like to use Headscale instead of the Wireguard VPN.

Originally created by @rucksman on GitHub (Oct 26, 2025). ### Is this a support request? - [x] This is not a support request ### Is there an existing issue for this? - [x] I have searched the existing issues ### Current Behavior Headscale is running on a VPS. Goal is to connect my internal server and my Android smartphone to the Headscale network with my smartphone using the Unbound resolver which is running on my internal server (Docker). With the smartphone I want to connect to services that run on the internal server. I have tried multiple variations already, but none of them succeeded. I also read all the issues mentioned here, but nothing helped. I can ping the internal server from my smartphone over the internal IP adress (192.168.100.10). Services are resolved if I do "dig @<192.168.100.10> some.internal-service.tld", but not if I do the same without explicitly using the internal DNS. I also tried extra_records in the Headscale config, didn't help either. The relevant settings are (current config, changeld all of them more or less randomly): **Headscale (VPS):** ```` magic_dns: true override_local_dns: false nameservers: global: - 192.168.100.10 ```` **Tailscale internal server:** docker-compose.yml: `TS_EXTRA_ARGS=--login-server=https://my.headscale.tld --advertise-routes=192.168.100.0/24 --accept-dns=false --advertise-exit-node network_mode: "host"` **Smartphone:** "Use Tailscale DNS" is switched on ### Expected Behavior Smartphone should use the DNS resolver running on the internal server. ### Steps To Reproduce Run Headscale on a VPS, an internal server with Unbound and Tailscale as well as a smartphone running tailscale. Try to connect to a domain name that is used by a service that is running in the internal server. ### Environment ```markdown - OS:Ubuntu 24.04 - Headscale version: 0.26.1 - Tailscale version: 1.88.4 (Smartphone), 1.86.5 (internal server) ``` ### Runtime environment - [x] Headscale is behind a (reverse) proxy - [x] Headscale runs in a container ### Debug information I have also a regular Wireguard container running on the internal server, and when connecting from my smartphone it is using the internal Unbound resolver. But due to various reasons I would like to use Headscale instead of the Wireguard VPN.
adam added the bug label 2025-12-29 02:28:21 +01:00
adam closed this issue 2025-12-29 02:28:21 +01:00
Author
Owner

@rucksman commented on GitHub (Oct 26, 2025):

I think I got it to work. Obviously I had to add the route to my local network manually in the Android app.

@rucksman commented on GitHub (Oct 26, 2025): I think I got it to work. Obviously I had to add the route to my local network manually in the Android app.
Author
Owner

@rucksman commented on GitHub (Oct 27, 2025):

Unfortunately not solved. It is still not using the local Unbound. I was only working because of the "extra_records" in the config.yaml. So still any help would be appreciated to get the local Unbound to work.

@rucksman commented on GitHub (Oct 27, 2025): Unfortunately not solved. It is still not using the local Unbound. I was only working because of the "extra_records" in the config.yaml. So still any help would be appreciated to get the local Unbound to work.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#1117