背景:我在我的主机上使用 (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 服务器。
我不确定如何解决这个问题,所以我的问题是:
- 是否有某种方法可以配置容器以跳过非 Tailscale 域的 Tailscale DNS 解析
- 我如何告诉容器不要使用 Tailscale DNS 服务器,同时仍在主机上启用它
我实际上在Tailscale 的 GitHub 上的这个讨论中找到了解决方案:
现在 Tailscale DNS 服务器仍包含在容器中,
resolv.conf
但请求又立即通过。此问题的原因可以通过以下评论很好地解释: