[GH-ISSUE #222] When run in Podman newt tries to use the host's public IP as DNS #249

Closed
opened 2026-04-12 06:38:03 -05:00 by GiteaMirror · 3 comments
Owner

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]
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

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
Author
Owner

@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...
Author
Owner

@JadedBlueEyes commented on GitHub (Apr 4, 2026):

Hey, just coming back to this - it's likely that cd4782265a/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.

<!-- 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.
Author
Owner

@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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/newt#249