2026年6月24日
2026年6月24日
Tailscaleで接続が不安定なときの対処|中継(DERP)・NAT・MTU・鍵の期限を順に確認
Tailscale の接続が不安定なときは、まず tailscale ping で「相手と直接つながっているか、中継サーバー(DERP)を経由しているか」を確かめるのが近道です。遅い・ときどき固まるという症状の多くは中継経由で起きており、突然まったくつながらなくなる症状は鍵の有効期限切れや DNS・経路の競合で起きることが多いためです。この記事では、状態の確認方法を示したうえで、起きやすい順に原因と確認・対処の方法を説明します。
コマンドは Linux・macOS・Windows の Tailscale クライアントに共通するものを中心にしています。コマンドの出力の書式や管理画面の表記は版によって変わることがあるため(2026年10月現在)、手元の版の tailscale --help もあわせて確認してください。サーバーの設定を変える前には、Tailscale 以外の経路(コンソールや別の SSH 経路)で入れる状態を確保しておきます。Tailscale 経由でしか入れないサーバーで設定を誤ると、自分が締め出されます。
まず症状を3つに分ける
不安定と言っても、原因によって症状の出方が違います。どれに近いかを先に決めると、調べる範囲が絞れます。
- 遅い・遅延が大きい・ときどき途切れる:中継経由になっている、回線の品質、MTU の問題
- 一定期間ごと、またはある日突然つながらなくなる:鍵の有効期限切れ、ログアウト、ACL の変更
- 特定の宛先や特定の通信だけ届かない:サブネット経路の重複、DNS(MagicDNS)の競合、ファイアウォール
状態を確認するコマンド
次の3つで、現状のほとんどが分かります。
# 参加している端末の一覧と、それぞれの状態
tailscale status
# 相手との経路を確認する(相手の名前か 100.x.y.z の IP)
tailscale ping web-server
# 自分の回線の状態(UDP が通るか、NAT の種類、最寄りの中継サーバー)
tailscale netcheck
tailscale ping の結果に via DERP(tok) のように DERP の文字があれば中継経由、via 203.0.113.5:41641 のように IP とポートが出れば直接接続です。最初の数回は中継経由で、その後に直接接続へ切り替わるのは正常な動きです。何度実行しても DERP のままなら、直接つながらない理由があります。
tailscale netcheck では、UDP の項目が使えない(false)になっていないか、MappingVariesByDestIP が true になっていないかを見ます。後者が true の場合、宛先ごとに外側のポートが変わる NAT(対称型 NAT に近い動き)の内側にいることを示し、直接接続が難しくなります。
Linux では、クライアント本体(tailscaled)のログも確認できます。
sudo journalctl -u tailscaled --since "1 hour ago"
原因1:直接つながらず中継(DERP)経由になっている
遅い・途切れるという症状で最も多い原因です。DERP は直接つながらないときの「最後の手段」の中継で、混雑の影響を受けやすく、遅延も増えます。
直接つながらない主な理由は次のとおりです。
- 両方の端末が、宛先ごとにポートを変える NAT の内側にいる(モバイル回線や一部のルーター、キャリアグレード NAT の環境で起きやすい)
- 社内やホテルなどのネットワークが UDP の通信を止めている
- サーバー側のファイアウォールが、Tailscale の UDP 通信の受け付けを止めている
対処は、どちらか片方の端末を「外から UDP で届く」状態にすることです。
- クラウドの VM や VPS なら、セキュリティグループやファイアウォールで Tailscale の UDP ポート(既定は 41641 番)の受信を許可する
- 自宅や事務所のルーターなら、UPnP や NAT-PMP を有効にするか、41641 番 UDP をその端末に転送する設定を検討する
- 送信側で UDP を止めているネットワークは、利用者側では変えられないことが多いため、その環境では中継経由になる前提で使う
設定を変えたら、もう一度 tailscale ping を実行し、直接接続に変わったかを確認します。NAT 越えの仕組みそのものについては、関連記事でも詳しく扱っています。
原因2:鍵の有効期限が切れた・ログアウトされた
「ある日突然つながらなくなった」場合にまず疑う点です。Tailscale の端末の鍵には有効期限があり、既定では一定期間(180日程度)ごとに再ログインが必要になります。期限が切れると、その端末は tailnet から外れたのと同じ状態になります。
tailscale status で該当の端末に期限切れの表示が出ていないか、管理画面の端末一覧で期限の表示を確認します。
- 人が使う PC やスマートフォンは、再ログインすれば復旧する
- サーバーのように無人で動かす端末は、管理画面でその端末だけ鍵の期限を無効にする設定ができる。ただし期限を無効にした端末は、盗まれたときに使われ続けるおそれがあるため、対象を絞り、不要になったら端末を削除する
SSO 側(Google や Microsoft などのアカウント)でパスワード変更やアカウント停止があった場合も、再認証が必要になることがあります。
原因3:MTU が合わず、大きな通信だけ止まる
ping は通り、SSH のログインもできるのに、ファイルの転送や大きなページの表示だけが途中で固まる、という症状は MTU が原因のことがあります。Tailscale のインターフェースは既定で 1280 という小さめの MTU を使っていますが、途中の回線(PPPoE や別の VPN の内側など)でさらに小さな値しか通らない場合や、経路の途中で ICMP が止められていて MTU の調整が働かない場合に起きます。
確認は、サイズを変えた ping で行います。
# Linux:分割を禁止して、指定サイズのパケットが通るかを見る
ping -M do -s 1200 100.101.102.103
ping -M do -s 1252 100.101.102.103
小さいサイズは通り、ある程度大きくすると応答がなくなるなら MTU の問題です。Tailscale の外側の回線(物理回線側)の MTU 設定や、二重に VPN を重ねていないかを確認してください。
原因4:他のVPNやネットワークとの競合
- IP アドレスの範囲の重複:Tailscale は 100.64.0.0/10 の範囲を使います。これはキャリアグレード NAT 用に予約された範囲で、契約している回線や別の VPN が同じ範囲を使っていると、経路がぶつかって特定の宛先に届かなくなります。
ip route(Windows はroute print)で同じ範囲の経路が複数ないかを確認します - サブネットルーターの経路の重複:サブネットルーターで広告している社内 LAN の範囲(例:192.168.1.0/24)が、接続している側の自宅 LAN と同じだと、自宅側が優先されて届きません。広告する範囲を見直すか、どちらかの LAN の範囲を変えます
- DNS の競合:MagicDNS を使うと、端末の DNS 設定が Tailscale 側に書き換えられます。社内 DNS や別の VPN の DNS と取り合いになって名前解決が不安定になる場合は、その端末だけ Tailscale の DNS 設定を受け取らないようにする(
--accept-dns=false)ことで切り分けられます - 別の VPN クライアントの同時使用:複数の VPN が経路を書き換え合うと不安定になります。一度片方を止めて比べます
原因5:省電力やスリープで通信が止まる
スマートフォンやノート PC では、画面を消している間やスリープ中に Tailscale の通信が止まり、復帰直後にしばらくつながらないことがあります。OS の省電力設定で Tailscale アプリのバックグラウンド動作が制限されていないかを確認してください。サーバーとして使う端末では、OS のスリープを無効にします。
原因6:クライアントが古い、ACL が変わった
古い版のクライアントでは、改善された NAT 越えの処理や不具合の修正が入っていないことがあります。不安定さが続く場合は、まず全端末を最新版に更新してから比べます。
また、管理画面の ACL(アクセス制御ポリシー)を誰かが変更すると、特定の端末やポートへの通信が急に届かなくなります。ACL の変更履歴を確認し、変更の時刻と症状が出た時刻が合っていないかを見ます。
サービス全体の障害の可能性もあるため、どの端末でもつながらない場合は Tailscale の公式ステータスページも確認してください。
サーバー側のファイアウォールも確認する
Linux サーバーで UFW などを使っている場合、Tailscale の仮想インターフェース(tailscale0)からの通信をどう扱うかを決めておく必要があります。たとえば SSH を Tailscale 経由だけに限定するなら、次のように tailscale0 からの 22 番だけを許可します。
sudo ufw allow in on tailscale0 to any port 22 proto tcp
設定を変える前に、Tailscale 以外の経路で入れることを確認してから適用してください。
まとめ
- まず
tailscale pingで直接接続か中継(DERP)経由かを確認し、tailscale netcheckで UDP と NAT の状態を見る - 遅い・途切れるなら、片方を UDP 41641 番で外から届く状態にして直接接続を目指す
- 突然つながらないなら、鍵の有効期限切れと ACL の変更を確認する
- 大きな通信だけ止まるなら MTU、特定の宛先だけ届かないなら経路や DNS の競合を疑う
- 設定を変える前に、Tailscale 以外で入れる経路を確保しておく