格安VPS運用の実践

VPS運用 × AI支援DevOps。実際に壊したことしか書かない。

Tailscale MagicDNS はサーバーの DNS を無断で乗っ取る

tailscale up のデフォルトは --accept-dns=true。ドキュメントでは MagicDNS を便利機能として紹介している — IP の代わりに短い名前で Tailscale ノードを解決できる、と。あらゆるセットアップガイドが無害だと扱っている。ノート PC ならその通り。サーバーでは、唯一の DNS リゾルバが、起動時に準備できておらずパブリッククエリで断続的に失敗するユーザースペースフォワーダーに置き換えられる。 TL;DR: MagicDNS は /etc/resolv.conf を 100.100.100.100 に無断で書き換える。サーバーでは、パブリックドメインへの断続的な SERVFAIL と再起動後のクラッシュループを引き起こす。修正:DNS の受け入れを無効化し、自前のリゾルバを設定する。 症状 # Tailscale をメッシュネットワーキングに使用している複数の Linux サーバーで、不可解な挙動が見られました: 外向きリクエストがランダムにタイムアウト、エラーが返るまで 2-3 秒 リロードすると通る。パターンもなく症状が出たり消えたりする サービスログに散発する SERVFAIL と i/o timeout 再起動後、複数のサービスが同時に起動失敗 — すべて DNS 解決エラーを報告 ネットワーク障害なら全リクエストが失敗するはずです。アプリのバグなら、再起動で無関係な複数サービスが一斉に壊れることはありません。もっと根本的なもの — DNS を指しています。 resolv.conf の確認 # 該当サーバーで: cat /etc/resolv.conf # 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 your-tailnet.ts.net Tailscale のヘッダーとともに 100.100.100.100 が表示されていれば — それが原因です。MagicDNS はデフォルトで有効になっています。/etc/resolv.conf を乗っ取り、Tailscale 内蔵のフォワーダーをシステム全体の唯一の DNS リゾルバにします。アプリが api.example.com を解決するのも、apt が security.debian.org をチェックするのも — すべてここを通ります。 ...

2026年2月24日 · 3 分 · Z Cube