PR

Tailscaleで自宅サーバーへ外部接続する方法|設定手順と接続トラブルの対処

Tailscaleで自宅サーバーへ外部接続する方法|設定手順と接続トラブルの対処 pc-setup
記事内に広告が含まれています。

固定IPがない自宅回線でも、Tailscaleを使えば外出先のスマホやタブレットから自宅サーバーへ接続できます。通常はルーターの受信ポートを手動で開放する必要もありません。

必要なのは、自宅サーバーと接続端末をTailscaleでつなぐことです。導入条件から接続手順、つながらないときの切り分け方まで順に説明します。

Tailscaleで自宅サーバーへ外部接続するための条件

外出先の端末と自宅サーバーをTailscaleで接続するための条件を示した図

自宅サーバーと外出先で使う端末は、同じTailscaleネットワーク(tailnet)へ参加させます。

Tailscaleが提供するのは端末同士をつなぐネットワークです。SSHやWeb管理画面、ファイル共有などの機能が追加されるわけではないため、利用したいサービスは自宅サーバー側で動作している必要があります。自宅サーバー用PCの構成や運用条件から整理したい場合は、ホームサーバー用PCの選び方も確認できます。

固定IPやポート開放なしで接続できる

Tailscaleでは各端末にTailscale用のIPアドレスが割り当てられるため、自宅回線の固定グローバルIPアドレスを接続先にする必要はありません。

Tailscale公式のファイアウォールに関する説明では、通常はルーターやファイアウォールの受信ポートを手動で開放しなくても利用できるとされています。端末同士を直接つなげない環境では、リレーを経由して接続します。

リレー接続になっても通信はできますが、直接接続より性能が低下する可能性があります。

自宅サーバーと接続端末の両方にTailscaleを導入する

通常の構成では、自宅サーバーだけでなく、外出先から操作するスマホやタブレットにもTailscaleを導入します。

  • 自宅サーバーにTailscaleをインストールする
  • 外出先で使うスマホやタブレットにTailscaleをインストールする
  • 両方の端末を同じtailnetへ参加させる
  • 自宅サーバーで利用したいサービスを動作させておく

Tailscale公式のインストール情報では、WindowsやLinux、iOS・iPadOS、Androidなどへの導入方法が案内されています。自宅サーバーへ直接Tailscaleを導入できない場合は、別のTailscale端末をSubnet Routerとして利用する方法もあります。

Tailscaleを使って自宅サーバーへ外部接続する手順

Tailscaleで自宅サーバーへ接続できないときの確認ポイントを示した図

設定は自宅サーバー側から始めます。サーバーをtailnetへ参加させたあと、外出先で使う端末を追加し、Tailscale上の接続先を指定します。

自宅サーバーにTailscaleをインストールしてログインする

自宅サーバーへTailscaleをインストールし、認証してtailnetへ参加させます。OSによってインストール方法は異なります。

Linuxでは、Tailscale公式のLinux向け手順に従ってインストールし、tailscale upを実行して認証します。WindowsもTailscaleをインストールしてログインし、端末をtailnetへ追加します。

認証が終わったら、Tailscaleの管理画面にあるMachinesに自宅サーバーが表示されているかを見ます。

無人で長期間動かす自宅サーバーでは、端末キーの有効期限も運用に関わります。Tailscaleのキー期限に関する説明では、キーが期限切れになると、その端末との接続は停止します。運用方法に合わせてキー期限の設定を確認します。

スマホやタブレットにTailscaleをインストールして同じtailnetへ参加する

外出先で使うスマホやタブレットにもTailscaleアプリをインストールし、自宅サーバーと同じtailnetへ参加させます。iPhone・iPad、Androidともに、アプリで必要な設定と認証を行います。

必要なのは、自宅サーバーへアクセスできる同じtailnetへの参加です。「自宅サーバーと必ず同じアカウントでログインする」という条件ではなく、Tailscaleでは複数ユーザーをtailnetへ参加させることもできます。

TailscaleのIPアドレスや端末名を使って自宅サーバーへアクセスする

両方の端末がtailnetへ参加したら、自宅サーバーに割り当てられたTailscale IPアドレスを接続先に指定できます。

MagicDNSが利用できる環境なら、IPアドレスの代わりに端末名でも接続できます。自宅回線のグローバルIPアドレスを指定する必要はありません。

接続先を指定したら、SSHやWeb管理画面、ファイル共有など、自宅サーバーですでに動作している目的のサービスへアクセスします。

外出先から自宅サーバーへ接続できないときの確認ポイント

外出先から自宅サーバーへ接続できないときの確認ポイント
Tailscaleで自宅サーバーへ接続できない場合の確認項目を示した図
接続できない場合は、Tailscale側の通信と自宅サーバー側の設定を順番に切り分けます。

つながらないときは、Tailscale側と自宅サーバー側を分けて調べます。先に端末同士の通信状態を見れば、原因を絞り込みやすくなります。

Tailscaleで両方の端末が接続済みになっているか確認する

  1. 自宅サーバーがtailnetへ参加しているか見る
  2. 外出先の端末がtailnetへ参加しているか見る
  3. Tailscale上で端末間の通信が成立するか調べる

コマンドを利用できる環境では、tailscale pingでTailscale上の端末間通信を調べられます。ネットワーク状態はtailscale netcheckで確認できます。

ここで直接接続ではなくリレー接続と表示されても、それだけで異常とは判断できません。リレー経由で通信できていれば接続自体は成立しています。

接続先サービスとOSのファイアウォール設定を確認する

Tailscale上では通信できるのに目的のサービスへアクセスできないなら、自宅サーバー側へ切り分けます。

  • SSHやWeb管理画面など、接続したいサービスが起動しているか
  • 接続先のIPアドレスや端末名、サービスのポートが正しいか
  • OSのファイアウォールで必要な通信が遮断されていないか
  • Tailscaleのアクセス制御ポリシーで通信が許可されているか

Tailscale公式の接続トラブルシューティングでも、ローカルファイアウォールやTailscaleのアクセス制御が確認項目として挙げられています。

通常のpingが失敗しただけでは、Tailscale全体の接続失敗とは判断できません。Windowsなどではファイアウォールによってpingに使われる通信が遮断されることがあるため、Tailscale上の疎通と目的のサービスへの接続は分けて調べます。

まとめ

Tailscaleを使えば、固定IPがない自宅回線でも外出先から自宅サーバーへ接続できます。自宅サーバーとスマホやタブレットを同じtailnetへ参加させ、TailscaleのIPアドレスや端末名から目的のサービスへアクセスする仕組みです。

つながらない場合は、Tailscale上で端末同士が通信できるかを調べ、それから接続先サービス、ファイアウォール、アクセス制御へ範囲を絞ると原因を切り分けられます。

タイトルとURLをコピーしました