AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1174739
Accepted
wolfsblu
wolfsblu
Asked: 2025-03-10 19:25:47 +0800 CST2025-03-10 19:25:47 +0800 CST 2025-03-10 19:25:47 +0800 CST

防止 Podman 容器内的 Tailscale DNS 解析

  • 772

背景:我在我的主机上使用 (rootful) Podman 容器,该主机也连接到 Tailscale VPN。主机的 DNS 是通过 进行配置的systemd-resolved。

从昨天开始,我一直在努力解决Roundcube(Web 邮件客户端)容器连接到邮件服务器容器的速度极慢的问题,每个操作(登录、列出文件夹、打开消息)至少需要 5 秒钟才能加载。然后我意识到,/etc/resolv.conf在启用 Tailscale 的情况下,每次启动容器时,每个容器都会以以下几行开头:

search headscale.ts.net
nameserver 100.100.100.100
...

我认为这就是为什么 Roundcube 容器首先尝试通过 Tailscale 解析邮件服务器的域名,这需要一段时间然后失败,然后他最终使用其他 DNS 服务器正确解析域。

一旦我关闭 Tailscale 并重新启动容器,一切都会正常运行,并且/etc/resolv.conf不再包含 Tailscale DNS 服务器。

我不确定如何解决这个问题,所以我的问题是:

  1. 是否有某种方法可以配置容器以跳过非 Tailscale 域的 Tailscale DNS 解析
  2. 我如何告诉容器不要使用 Tailscale DNS 服务器,同时仍在主机上启用它
domain-name-system
  • 1 1 个回答
  • 60 Views

1 个回答

  • Voted
  1. Best Answer
    wolfsblu
    2025-03-11T05:16:02+08:002025-03-11T05:16:02+08:00

    我实际上在Tailscale 的 GitHub 上的这个讨论中找到了解决方案:

    tailscale up --stateful-filtering=false通过在我的主机上运行,​​问题得到了解决

    现在 Tailscale DNS 服务器仍包含在容器中,resolv.conf但请求又立即通过。此问题的原因可以通过以下评论很好地解释:

    [..] Docker 默认使用主机的 resolv.conf,将 100.100.100.100(由本地 tailscaled 提供服务)指向名称服务器。由于此 IP 位于tailscale0接口中,DNS 请求数据包将受到状态过滤。由于源 IP 不是 localhost,而是 172.17.0.2(来自 docker 网络范围),因此它被解释为“来自另一台主机的传入请求”,因此被拒绝。

    • 0

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve