ZeroTierで仮想LANを構築:ルーターのポート開放不要でサーバーとPCをリモート接続

Network tutorial - IT technology blog
Network tutorial - IT technology blog

ZeroTierでNATや固定IPの悩みを解消する

Home Labの構築やサーバーのリモート管理に興味があるなら、「カフェにいる時に、どうやって自宅のPCにアクセスするか?」という問題に直面したことがあるはずです。従来の方法では、ルーターのポート開放(ポートフォワーディング)を行ったり、通信事業者に別途料金を払って固定IPを契約したりする必要がありました。しかし、4Gネットワークを利用していたり、CGNAT(キャリアグレードNAT)環境下にあったりする場合、ポート開放はほぼ不可能です。

ZeroTierは、そうした障壁を取り除くために生まれました。OpenVPNのような設定の複雑な従来のクライアント・サーバー型VPNとは異なり、ZeroTierはすべてのデバイスを「グローバルな仮想スイッチ」に変身させます。SD-WAN技術を使用して、地理的な距離に関係なく、あなたのコンピュータを同じローカルネットワーク内に配置します。

その仕組みは、インターネット上にオーバーレイネットワーク(レイヤー2)を構築することです。インターネットに繋がってさえいれば、SSH接続、Samba経由のファイルアクセス、リモートデスクトップなどをローカルIPで行えます。低遅延で、まるで同じLANケーブルに繋がっているかのようなスムーズな操作感を実現します。

ZeroTier CentralでネットワークIDを作成する

まず、ネットワーク内のメンバーを管理するためのコントロールセンターが必要です。ZeroTier Centralにアクセスし、アカウントを登録してください(最大25台のデバイスまで無料です)。

  1. ログイン後、Create A Networkをクリックします。
  2. システムから16文字のID(例:80562fdbc1234567)が発行されます。これが各デバイスを繋ぐ鍵となるネットワークIDです。
  3. Access ControlがPrivateに設定されていることを確認してください。このモードでは、ネットワークへの参加を完全にコントロールでき、承認したデバイスのみがアクセス可能になります。
  4. IPv4 Auto-Assignセクションでは、一般的なルーターのデフォルトIP(192.168.1.xなど)との重複を避けるため、10.147.17.*のような範囲を選択することをお勧めします。

LinuxおよびWindowsへの迅速なインストール

ZeroTierのインストールは非常に高速です。Linuxなら、コマンドラインを使って30秒足らずで完了します。

Linuxサーバー(Ubuntu/Debian)へのデプロイ

時間を節約するために、公式のインストールスクリプトを使用します:

curl -s 'https://install.zerotier.com' | sudo bash

インストール後、作成したIDを使ってネットワークに参加させます:

sudo zerotier-cli join 80562fdbc1234567

次に、ZeroTier Centralの管理画面に戻ります。Membersセクションまでスクロールすると、新しいデバイスが表示されているはずです。Authのチェックボックスをオンにしてください。即座にデバイスに内部IP(例:10.147.17.100)が割り当てられます。

Windows/macOSへのインストール

個人用PCの場合は、公式サイトからインストーラーをダウンロードして実行するだけです。インストール後、システムトレイのZeroTierアイコンを右クリックし、Join New Networkを選択してIDを入力します。ウェブ管理画面で承認(Authorize)するのを忘れないでください。

接続確認とトラブルシューティングのヒント (Monitoring)

仮想ネットワークが正常に機能しているか確認するために、ノートPCからサーバーのZeroTier IPに対してpingを試してみましょう。

ping 10.147.17.100

応答(Reply)があれば成功です。これで、サーバーがスマートフォンのテザリング(4G)を使用している場合でも、どこからでもこのIPでSSH接続が可能になります。

P2P接続品質の確認

接続が最大速度で動作しているか確認するためのテクニックです。以下のコマンドを入力してください:

sudo zerotier-cli listpeers

PATHLINKの列に注目してください:

  • DIRECT: 理想的な状態です。2台のデバイスが直接接続(P2P)されており、国内同士ならpingは通常10〜40ms程度です。
  • RELAY: デバイス間が中継サーバーを経由しています。ファイアウォールや厳しいNAT(Symmetric NAT)が原因で発生します。この場合、pingが200〜300msに跳ね上がり、コマンド入力にラグが生じることがあります。

実体験からのアドバイス:以前、IDCのサーバー群で不安定なパケットロスに遭遇したことがあります。listpeersを確認したところ、ルーターがUDPをブロックしていたため、接続がDIRECTとRELAYの間で頻繁に切り替わっていました。ネットワークが遅いと感じたら、すぐにピアの状態を確認して対処法を判断しましょう。

セキュリティとパフォーマンスの最適化

便利さに甘んじて安全性を忘れないようにしましょう。私が常に適用している3つのルールを紹介します:

  • デバイス名の設定: 管理画面でServer-Web-ProdLaptop-Devのような分かりやすい名前を付けて、IPアドレスの山に埋もれないようにしましょう。
  • ファイアウォールの厳格化: Linuxのufwなどを使用して、SSH(22番ポート)やデータベース(3306番ポート)などの重要なポートへのアクセスを、ZeroTier의 IP範囲(10.147.17.0/24)のみに制限します。
  • Moonの自前構築: さらに安定したpingを求めるなら、国内に中継ノード(Moonと呼ばれます)を自前で構築できます。これにより、海外サーバーを経由する200msのpingを、国内接続なら20ms以下に短縮できます。

ZeroTierを使うのは、カバンの中に常に「見えないLANケーブル」を入れているようなものです。インターネットさえあれば、複雑なVPN設定に悩まされることなく、すべてのデジタルリソースを手元に置くことができます。ぜひ試してみてください。もっと早く知っておけばよかったと思うはずです。

Share: