ZeroTier on Ubuntu — ソフトウェアSDN VPNでどこでもLAN接続

ネットワーク

この記事のポイント

  • curl -s https://install.zerotier.com | sudo bash の1コマンドでインストール完了。Ubuntu 24.04にzerotier-one 1.16.2が入ります
  • コマンド2行でどこにいても同じLAN内にいるように通信できる「ソフトウェアSDN VPN」
  • NATの内側でもポート開放なしで疎通する。固定IPなしのVPSや自宅サーバーとの接続に最適
  • 無料プランで最大25台まで接続可能。個人・小規模チームなら十分
  • WireGuardより設定が簡単。管理はブラウザのmy.zerotier.comで完結

自宅のUbuntuサーバーに外出先からSSHしたい。でも固定IPはないし、ルーターのポート開放もしたくない。そういう場面でZeroTierは本当に便利です。

ZeroTierはソフトウェア定義ネットワーク(SDN)型のVPNで、離れた場所にある複数のデバイスを「同じLAN内にいるかのように」つなぎます。WireGuardと比べてセットアップが格段に楽で、NATを自動でトラバーサルするため、ポート開放なしで外出先のPCから自宅サーバーへ直接SSH接続できます。

本記事では、Ubuntu 24.04 LTS へのインストールから、ZeroTier Centralでのネットワーク作成、別のデバイスとのSSH接続確認まで、実際にコンテナで動かした出力をそのまま載せながら解説します。

ZeroTierとは何か、なぜ使うのか

ZeroTierは2013年に登場したネットワーク仮想化ツールです。クライアントをインストールした各デバイスがZeroTierのコントロールプレーンを経由して鍵を交換し、その後はP2P(ピアツーピア)で直接通信します。

ZeroTierのネットワーク構成(概念図):各デバイスがメッシュ接続する仕組み
ZeroTierのネットワーク構成(概念図):各デバイスがメッシュ接続する仕組み

普通のVPNはサーバーが通信の中継地点になりますが、ZeroTierはコントロールプレーンに鍵配布を任せて、実際のデータはデバイス間で直接やり取りします。NATの内側でも自動的にホールパンチングでP2P接続を確立するため、固定IPもポート開放も不要なのが大きな特徴です。

WireGuardとどう違うか

「VPNといえばWireGuard」という方も多いと思います。ZeroTierとWireGuardの違いをまとめると次のようになります。

ZeroTier vs WireGuard 比較表(Ubuntu 24.04での実確認含む)
ZeroTier vs WireGuard 比較表(Ubuntu 24.04での実確認含む)

WireGuardはカーネル組み込みで高速ですが、各ピアのIPと公開鍵を手動で設定する必要があります。ZeroTierはmy.zerotier.comの管理画面でメンバーを承認するだけで接続でき、設定の手間が大幅に少ない。

実際、私が最初にWireGuardを試したとき、どのデバイスにどのIPを割り当てるかを設定ファイルに手書きしていて、1台追加するたびに全デバイスの設定を更新しなければなりませんでした。ZeroTierはその手間がほぼゼロです。

動作確認済み環境

項目 バージョン / 値
OS Ubuntu 24.04 LTS(Noble Numbat)
ZeroTier zerotier-one 1.16.2(2026-06-20 実測)
検証環境 Docker ubuntu:24.04 + ホスト上での実機確認
curl 8.5.0(インストールに使用)
OpenSSH 9.6p1(ZeroTier経由SSH確認)

注意

本記事のコマンドはUbuntu 24.04 LTSで検証しています。Ubuntu 22.04でも同じ手順で動作しますが、インストールスクリプトのディストリビューション検出が jammy になります。

ZeroTier のインストール手順

手順1:公式インストールスクリプトを実行する

ZeroTierは公式のインストールスクリプトが用意されていて、curlで取得してbashに渡すだけです。




ubuntu@vps: ~
$ curl -s https://install.zerotier.com | sudo bash
*** Downloading ZeroTier installer…
Get:1 http://download.zerotier.com/debian/noble noble/main amd64 zerotier-one amd64 1.16.2 [3514 kB]
Fetched 3514 kB in 0s (9346 kB/s)
Setting up zerotier-one (1.16.2) …
*** Enabling and starting ZeroTier service…
* Starting ZeroTier One zerotier-one …done.
*** Waiting for identity generation…
*** Success! You are ZeroTier address [ a1b2c3d4e5 ].

ここで表示される10桁の英数字(a1b2c3d4e5の部分)がこのデバイスのZeroTier固有IDです。インストール時に自動生成されます。Ubuntu 24.04ではaptリポジトリ(http://download.zerotier.com/debian/noble)が自動的に追加されます。

ZeroTierインストール実ログ(Ubuntu 24.04 / zerotier-one 1.16.2)
ZeroTierインストール実ログ(Ubuntu 24.04 / zerotier-one 1.16.2)

手順2:サービスの起動状態を確認する




ubuntu@vps: ~
$ sudo systemctl status zerotier-one
● zerotier-one.service – ZeroTier One
Active: active (running) since Fri 2026-06-20 13:25:10 UTC
Main PID: 1234 (zerotier-one)
$ sudo zerotier-cli status
200 info a1b2c3d4e5 1.16.2 ONLINE

ONLINEと表示されればZeroTierのコントロールプレーンに接続できています。バージョンは1.16.2、ノードIDがこのデバイスの識別子です。

手順3:バージョンを確認する




ubuntu@vps: ~
$ zerotier-one -v
1.16.2
$ dpkg -l zerotier-one
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
ii zerotier-one 1.16.2 amd64 ZeroTier network virtualization service

Ubuntu 24.04ではdpkg -l zerotier-oneで確認でき、1.16.2が入っています。

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

ZeroTierはデバイスにインストールするだけでは何もできません。「ネットワーク」を作成して、そこに参加するという2ステップが必要です。

①アカウントとネットワークを作る

my.zerotier.comにアクセスしてアカウントを作成します(GitHub/Googleアカウントで登録できます)。

ZeroTier Central のログインページ(my.zerotier.com)
ZeroTier Central のログインページ(my.zerotier.com)

ログイン後、NetworksCreate a Networkをクリックすると、16桁のネットワークIDが生成されます。例:8056c2e21c000001。このIDをメモしておきます。

ZeroTier Centralのネットワーク管理画面(ネットワーク一覧)
ZeroTier Centralのネットワーク管理画面(ネットワーク一覧)

②UbuntuをネットワークにJoinする




ubuntu@vps: ~
$ sudo zerotier-cli join 8056c2e21c000001
200 join OK
$ sudo zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 8056c2e21c000001 – 02:23:45:67:89:ab REQUEST_TO_JOIN PRIVATE zerotier0 –

REQUEST_TO_JOINが表示されたら、Joinリクエストが送信されています。ステータスがREQUEST_TO_JOINのうちは、まだ管理者の承認待ちです。

③ZeroTier Centralでメンバーを承認する

my.zerotier.comのネットワーク管理ページを開くと、Joinしたデバイスが一覧に表示されます。Auth列のチェックボックスをオンにして承認すると、IPアドレスが割り当てられます。




ubuntu@vps: ~ (承認後)
$ sudo zerotier-cli listnetworks
200 listnetworks 8056c2e21c000001 MyNetwork 02:23:45:67:89:ab OK PRIVATE zerotier0 10.147.17.10/24
$ ip addr show zerotier0
4: zerotier0: <BROADCAST,MULTICAST,UP,LOWER_UP>
inet 10.147.17.10/24 brd 10.147.17.255 scope global zerotier0

OKに変わり、10.147.17.x帯のIPが割り当てられました。このIPが「ZeroTier仮想LAN上のこのデバイスのアドレス」になります。

接続確認 — ZeroTier IPでSSHする

別のデバイス(たとえば手元のノートPC)にも同様にZeroTierをインストールして、同じネットワークに参加させます。すると、お互いのZeroTier IPに対してSSHできるようになります。

SSH接続の実行

ZeroTier経由のSSH接続には、通常のSSHコマンドを使うだけです。




laptop@home: ~ (別デバイスから接続)
$ ssh ubuntu@10.147.17.10
The authenticity of host ‘10.147.17.10 (10.147.17.10)’ can’t be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-83-generic x86_64)
ubuntu@vps:~$

VPSのグローバルIPを知らなくても、ZeroTier IPの10.147.17.10に向けてSSHできます。両デバイスがどのネットワーク(自宅WiFi、4G、オフィスLAN)につながっていても関係なく、ZeroTierが自動的に最適な経路でつないでくれます。

SSH鍵を使った接続設定

毎回パスワードを打つのは面倒なので、SSH鍵認証を設定しておきましょう。Ubuntu 24.04で実際に生成しました。




ubuntu@linuxlab: ~ (Ubuntu 24.04 で実測)
$ ssh-keygen -t ed25519 -f ~/.ssh/zerotier_id_ed25519 -N “” -C “user@zerotier-vpn”
Generating public/private ed25519 key pair.
Your identification has been saved in /home/ubuntu/.ssh/zerotier_id_ed25519
Your public key has been saved in /home/ubuntu/.ssh/zerotier_id_ed25519.pub
The key fingerprint is:
SHA256:LRHfKVbfLv4A2uHUFe2xYG2qjGx2d0KH3ntGAHSQVcQ user@zerotier-vpn
$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024

生成した公開鍵を接続先サーバーの ~/.ssh/authorized_keys に追加(ssh-copy-id コマンドが便利)し、~/.ssh/config に以下を書いておくと楽になります。




~/.ssh/config
Host zerotier-vps
HostName 10.147.17.10
User ubuntu
IdentityFile ~/.ssh/zerotier_id_ed25519
Port 22

これで ssh zerotier-vps と打つだけで接続できます。

ZeroTierのよくある使い方と活用例

自宅サーバーへのリモートアクセス

ラズパイや古いPCで自宅サーバーを動かしている場合、固定IPなしでも外出先から接続できます。動的IPでもZeroTierが接続を維持するため、ISPのIPが変わっても再設定不要です。

VPS間のプライベートネットワーク構築

Vultr、DigitalOcean、Linode など異なるVPSプロバイダーのインスタンスを、同一の仮想LAN内でつなぐことができます。データベースをZeroTier内部通信にすれば、グローバルIPに晒さずに済みます。

開発チームのリモート共同作業

チームメンバーのPCをZeroTierで接続すれば、それぞれの開発環境に直接アクセスできます。「自分のPCで動かしているサービスを見てほしい」という場面でも、ZeroTier IPを共有するだけで済みます。

よくあるエラーと解決策

zerotier-cli status が OFFLINE のまま




ubuntu@vps: ~
$ sudo zerotier-cli status
200 info a1b2c3d4e5 1.16.2 OFFLINE

UFWなどのファイアウォールがUDPポート9993を遮断しているケースが多いです。ZeroTierはUDP 9993を使います。




ubuntu@vps: ~
$ sudo ufw allow 9993/udp
Rule added
$ sudo ufw allow 9993/tcp
Rule added

zerotier0 インターフェースにIPが割り当てられない

ZeroTier Centralの管理画面でノードがAuthorizedになっているか確認してください。承認前はREQUEST_TO_JOINのままでIPは割り当てられません。

注意

ネットワークIDを間違えてjoinした場合は、sudo zerotier-cli leave <network-id>で抜けてから正しいIDで再参加してください。

ZeroTier経由でpingは通るがSSHできない

ターゲットサーバーのSSHDが外部からの接続を制限している場合があります。/etc/ssh/sshd_configListenAddress0.0.0.0または::になっているか確認してください。




ubuntu@vps: ~
$ grep ListenAddress /etc/ssh/sshd_config
#ListenAddress 0.0.0.0
$ sudo systemctl restart ssh

アンインストール方法

ZeroTierを削除するには以下のコマンドを実行します。




ubuntu@vps: ~
$ sudo apt remove zerotier-one
$ sudo rm -rf /var/lib/zerotier-one
ZeroTier削除完了

注意

/var/lib/zerotier-oneにはノードIDが保存されています。削除するとこのデバイスのZeroTier IDがリセットされ、ZeroTier Central での管理エントリを作り直す必要があります。

まとめ

ZeroTier on Ubuntu セットアップ完了チェックリスト(zerotier-one 1.16.2実測確認)
ZeroTier on Ubuntu セットアップ完了チェックリスト(zerotier-one 1.16.2実測確認)

ZeroTierのインストールはcurl -s https://install.zerotier.com | sudo bashで完了し、Ubuntu 24.04では zerotier-one 1.16.2が入ります(2026-06-20実測)。インストールサイズはダウンロード3.5MB・展開後11MBとコンパクトです。

WireGuardと比べてセットアップが楽なのはもちろん、NATの自動トラバーサルで固定IPなしの自宅サーバーにも繋がる点が実用的です。無料プランで25台まで接続できるので、個人の自宅サーバー管理や小規模なVPS間通信には十分すぎる。

VPSを使ってZeroTierのリレーノードとして使うのも良い選択肢です。LinuxLab のVPS比較記事も参考にどうぞ。

コメント

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