For some reason, newt tries to look up internal dns names using the host's public IP instead of Podman's DNS service. Hardcoding the IP works correctly. This is frustrating for dynamic IPs and ones set via the docker template.
Environment
OS Type & Version: Fedora Linux 42 (Server Edition)
When set with the internal host as PANGOLIN_ENDPOINT:
Jan 04 00:09:33 personal2 newt[17847]: ERROR: 2026/01/04 00:09:33 Failed to connect: failed to get token: failed to request new token: Post "http://pangolin:3001/api/v1/auth/newt/get-token": dial tcp: lookup pangolin on 213.186.33.99:53: no such host. Retrying in 3s...
etc
external host starts correctly, but with internal host as target:
Jan 04 00:06:49 personal2 newt[1673]: ERROR: 2026/01/04 00:06:49 Error connecting to target: dial tcp: lookup jaeger-ui on 213.186.33.99:53: no such host
etc
Expected Behavior
entering the container names should correctly look up the internal IP as it does in other containers
Originally created by @JadedBlueEyes on GitHub (Jan 4, 2026).
Original GitHub issue: https://github.com/fosrl/newt/issues/222
### Describe the Bug
For some reason, newt tries to look up internal dns names using the host's public IP instead of Podman's DNS service. Hardcoding the IP works correctly. This is frustrating for dynamic IPs and ones set via the docker template.
### Environment
- OS Type & Version: Fedora Linux 42 (Server Edition)
- Pangolin Version: 1.14.1
- Gerbil Version: 1.3.0
- Traefik Version: 3.6.6
- Newt Version: 1.8.1
- Podman version: 5.7.1
### To Reproduce
```unit
[Unit]
Description=Newt container
[Container]
ContainerName=newt
Image=docker.io/fosrl/newt
Environment=PANGOLIN_ENDPOINT=https://pangolin.ellis.link
; Environment=PANGOLIN_ENDPOINT=http://pangolin:3001
Environment=NEWT_ID=cc
Environment=NEWT_SECRET=cc
# Secret=newt-secret,type=env,target=NEWT_SECRET
Environment=DOCKER_SOCKET=/var/run/docker.sock
Volume=/run/podman/podman.sock:/var/run/docker.sock:z
[Service]
Restart=always
[Install]
WantedBy=default.target
```
When set with the internal host as PANGOLIN_ENDPOINT:
```
Jan 04 00:09:33 personal2 newt[17847]: ERROR: 2026/01/04 00:09:33 Failed to connect: failed to get token: failed to request new token: Post "http://pangolin:3001/api/v1/auth/newt/get-token": dial tcp: lookup pangolin on 213.186.33.99:53: no such host. Retrying in 3s...
etc
```
external host starts correctly, but with internal host as target:
```
Jan 04 00:06:49 personal2 newt[1673]: ERROR: 2026/01/04 00:06:49 Error connecting to target: dial tcp: lookup jaeger-ui on 213.186.33.99:53: no such host
etc
```
### Expected Behavior
entering the container names should correctly look up the internal IP as it does in other containers
@oschwartz10612 commented on GitHub (Jan 20, 2026):
I think this is a podman issue! Newt just does a normal DNS lookup to the host. Closing for now...
<!-- gh-comment-id:3770614781 -->
@oschwartz10612 commented on GitHub (Jan 20, 2026):
I think this is a podman issue! Newt just does a normal DNS lookup to the host. Closing for now...
<!-- gh-comment-id:4187618181 -->
@JadedBlueEyes commented on GitHub (Apr 4, 2026):
Hey, just coming back to this - it's likely that https://github.com/fosrl/newt/blob/cd4782265a57ac48b75243d2b141e90c7360438f/main.go#L308 defaults to 9.9.9.9 rather than the contents of resolv.conf - which includes the needed nameservers for things to work correctly.
@LaurenceJJones commented on GitHub (Apr 6, 2026):
That dns option is only for clients and wireguard tunnel not when resolving the Pangolin IP address that still uses the default resolver.
<!-- gh-comment-id:4191753221 -->
@LaurenceJJones commented on GitHub (Apr 6, 2026):
That `dns` option is only for clients and wireguard tunnel not when resolving the Pangolin IP address that still uses the default resolver.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @JadedBlueEyes on GitHub (Jan 4, 2026).
Original GitHub issue: https://github.com/fosrl/newt/issues/222
Describe the Bug
For some reason, newt tries to look up internal dns names using the host's public IP instead of Podman's DNS service. Hardcoding the IP works correctly. This is frustrating for dynamic IPs and ones set via the docker template.
Environment
To Reproduce
When set with the internal host as PANGOLIN_ENDPOINT:
external host starts correctly, but with internal host as target:
Expected Behavior
entering the container names should correctly look up the internal IP as it does in other containers
@oschwartz10612 commented on GitHub (Jan 20, 2026):
I think this is a podman issue! Newt just does a normal DNS lookup to the host. Closing for now...
@JadedBlueEyes commented on GitHub (Apr 4, 2026):
Hey, just coming back to this - it's likely that https://github.com/fosrl/newt/blob/cd4782265a57ac48b75243d2b141e90c7360438f/main.go#L308 defaults to 9.9.9.9 rather than the contents of resolv.conf - which includes the needed nameservers for things to work correctly.
@LaurenceJJones commented on GitHub (Apr 6, 2026):
That
dnsoption is only for clients and wireguard tunnel not when resolving the Pangolin IP address that still uses the default resolver.