tailscale 引发的 QNAP DNS 解析故障

2024-12-24 14:27:21
This post is also available in English and alternative languages.

今日发现位于 QNAP NAS 上的 QbitTorrent 无法抓取 RSS 订阅,本以为是 PT 站域名被污染,但 NAS 执行 dig/ping 均无法解析域名,因而断定是 DNS 问题。

less /etc/resolv.conf 查看 DNS 配置,发现被 tailscale 覆盖,如下所示:

1
2
3
4
5
6
# resolv.conf(5) file generated by tailscale
# For more info, see https://tailscale.com/s/resolvconf-overwrite
# DO NOT EDIT THIS FILE BY HAND -- CHANGES WILL BE OVERWRITTEN

nameserver 100.100.100.100
search [redacted].ts.net

简单来说,tailscale 会劫持本地 DNS 配置,以将 VPN 子网内的计算机名解析至对应 IP。不知出于什么原因,上游挂了,但本地客户端超时未 fallback 至 local DNS,导致全部 DNS 请求失败。时间宝贵,暂时不想深究,直接禁用 MagicDNS 完事。

两个途径

  1. 全局禁用 MagicDNS:在 tailscale Admin Console 中关闭 MagicDNS 功能。
  2. 单机禁用 resolv.conf 覆盖:tailscale set --accept-dns=false。QNAP QTS 中 tailscale 以软件包形式安装,因此对应二进制文件不在常见 binsbin 路径下,而是在特定存储池(安装 QPKG 时必须勾选)的 .qpkg 隐藏目录下。直接使用 ps 查看 tailscale 二进制文件路径。我这安装在 DataVol1 下,因此执行 /share/CACHEDEV1_DATA/.qpkg/Tailscale/tailscale set --accept-dns=false
Prev
2024-12-24 14:27:21