OpenClawを使う前にTailscaleをおさらいする
OpenClawをUbuntuのローカルサーバーで動かし、Windows 11から利用する構成を考えています。
今回の構成では、OpenClawをインターネットへ直接公開せず、Windows 11とUbuntu 24.04の間をTailscaleでつなぎます。OpenClawはUbuntuの127.0.0.1:18789で待ち受け、Tailscale Serveを入口にする予定です。
Tailscaleは設定が簡単なので、使い始めるだけならそれほど難しくありません。ただ、tailnet、MagicDNS、Serve、DERPなど独自の用語がいくつかあります。OpenClawの構築へ進む前に、今回使う範囲を一度整理しておきます。
この記事の内容は、2026年9月9日時点のTailscale公式ドキュメントを確認してまとめています。
今回想定している構成
最終的には次のような形にします。
OpenClawの18789やOllamaの11434をルーターで外部公開する構成にはしません。
WindowsとUbuntuの両方をTailscaleへ参加させ、OpenClawへのブラウザ接続とUbuntuの管理用SSHをTailscale経由にまとめます。
Tailscaleとは
Tailscaleは、WireGuardを基盤にしたプライベートネットワークを端末間に作る仕組みです。
WireGuardそのものは暗号化されたトンネルを作るプロトコルですが、Tailscaleはその上に端末認証、NAT越え、名前解決、アクセス制御などを追加しています。
例えば、自宅のUbuntu Serverと外出先のWindows PCが別々のネットワークにいても、両方が同じTailscaleネットワークへ参加していれば、Tailscale経由で通信できます。
Windows 11
│
│ WireGuardで暗号化
│
▼
Ubuntu 24.04 Server
一般的なVPNのように「まずVPNサーバーへ入り、そこから社内LANへ入る」という使い方だけではありません。Tailscaleは、条件が合えば端末同士を直接接続します。
今回のように、特定のWindows PCから特定のUbuntu Serverへ接続したい用途とは相性がよいです。
tailnet
Tailscaleで作るプライベートネットワークをtailnetと呼びます。
Tailscaleへ最初の端末を登録するとtailnetが作られ、その後Windows、Ubuntu、スマートフォンなどを同じtailnetへ追加していきます。
今回なら、最低限この2台が入ります。
tailnet
├─ Windows 11 PC
└─ Ubuntu 24.04 Server
tailnetは公開インターネットとは別のプライベートな空間として扱われます。
各端末にはTailscale用のIPアドレスが割り当てられるので、物理的なLANのIPアドレスとは別にTailscale上のアドレスを持つことになります。
イメージとしては次のようになります。
Windows 11
LAN IP : 192.168.x.x
Tailscale IP : 100.x.x.x
Ubuntu Server
LAN IP : 192.168.x.x
Tailscale IP : 100.x.x.x
実際のアドレスは環境ごとに異なるため、ここでは固定値にはしません。
Tailscale IPは次のコマンドで確認できます。
tailscale ip -4
tailnetに参加している端末は、
tailscale status
で確認できます。
MagicDNS
Tailscale IPを毎回覚えて接続するのは面倒なので、TailscaleにはMagicDNSがあります。
MagicDNSは、tailnet内の端末名を自動的にDNS名として使えるようにする仕組みです。
Ubuntuの端末名が例えば、
ubuntu-openclaw
なら、Windowsから次のように名前で接続できます。
ping ubuntu-openclaw
SSHでも同じ名前を使えます。
ssh user@ubuntu-openclaw
MagicDNSでは完全修飾名も割り当てられます。
ubuntu-openclaw.<tailnetのDNS名>.ts.net
<tailnetのDNS名>は利用しているtailnetごとに異なるため、記事中では固定しません。
今回のOpenClawでも、Tailscale Serveが発行するHTTPSのアクセス先にはこの.ts.netの名前が使われます。
通信はできるだけ直接つながる
Tailscaleの接続方式は、現在大きく次の3種類があります。
| 接続方式 | 内容 |
|---|---|
| Direct | 端末同士をUDPで直接接続 |
| Peer Relay | tailnet内の別端末を中継 |
| DERP Relay | TailscaleのDERPサーバーを中継 |
基本的にはDirect接続が最も効率がよいです。
Windows
│
│ Direct
▼
Ubuntu
ただし、NATやファイアウォールなどの条件によって直接接続できないこともあります。その場合はPeer RelayやDERP Relayへ切り替わります。
Windows
│
▼
DERP / Peer Relay
│
▼
Ubuntu
どの接続方式でも、端末間の通信はWireGuardでエンドツーエンド暗号化されます。違いは主に通信経路と性能です。
現在どの経路を使っているかは、次のコマンドで確認できます。
tailscale status
より分かりやすく確認したい場合は、
tailscale ping <接続先>
を使います。
例えば、
tailscale ping ubuntu-openclaw
として、directになっているか、中継経由になっているかを確認します。
OpenClawの応答速度を確認するときにも、この接続状態は一度見ておいた方がよいです。
Control PlaneとData Plane
Tailscaleを理解するときは、Control PlaneとData Planeを分けて考えると分かりやすいです。
Control Planeは、端末の登録、認証、公開鍵、接続情報、アクセス制御などを管理します。
Data Planeは、実際の通信データを運ぶ部分です。
端末間で実際に流れるデータはData Plane側でWireGuardによって暗号化されます。
Tailscaleのコーディネーションサービスは端末同士を接続するための情報を管理し、実際の通信は可能なら端末間を直接流れます。
Tailscale Serve
今回のOpenClaw構成で特に重要なのがTailscale Serveです。
OpenClawはUbuntu上で、
127.0.0.1:18789
だけに待ち受けさせます。
このままではUbuntu自身からしかアクセスできません。
そこでTailscale Serveを使い、tailnet内のWindows PCからOpenClawへアクセスできるHTTPSの入口を作ります。
UbuntuでOpenClawが18789で動いている場合は、例えば次のように設定できます。
tailscale serve --bg localhost:18789
--bgを付けるとServe設定はバックグラウンドで動作し、Tailscaleまたは端末を再起動した後も設定が復元されます。
状態確認は、
tailscale serve status
設定をすべて解除する場合は、
tailscale serve reset
を使います。
Serveを設定すると、tailnet内からHTTPSでアクセスできるURLが表示されます。
https://<Ubuntuのマシン名>.<tailnetのDNS名>.ts.net/
実際のホスト名とtailnet名は環境ごとに異なります。
Serveで何がうれしいのか
今回の構成では、OpenClawを、
0.0.0.0:18789
でLAN全体へ公開する必要はありません。
Ubuntu内部では、
127.0.0.1:18789
のままにしておき、
Windows
↓
Tailscale
↓
Tailscale Serve
↓
127.0.0.1:18789
↓
OpenClaw
という経路だけを作ります。
ルーターでOpenClaw用のポートをインターネットへ転送する必要もありません。
ServeとFunnelは別物
名前が似ているので、ここは分けて覚えておいた方がよいです。
Tailscale Serveはtailnet内へサービスを公開する機能で、Tailscale Funnelはインターネット側からアクセスできるようにする機能です。
| 機能 | 公開範囲 |
|---|---|
| Tailscale Serve | tailnet内 |
| Tailscale Funnel | 公開インターネット |
今回のOpenClawではServeを使います。
Funnelは使いません。
OpenClawを自分のWindows PCなど、許可した端末から使うことが目的なので、一般公開する理由はありません。
今回
Windows
↓
tailnet
↓
Serve
↓
OpenClaw
使わない
Internet
↓
Funnel
↓
OpenClaw
この区別は、OpenClawの構成を決めるうえで重要になります。
アクセス制御はGrantsが現在の推奨
Tailscaleでは、tailnet内で「誰が、どの端末へ、どの通信を許可されるか」をポリシーで制御できます。
従来はACLが中心でしたが、現在の公式ドキュメントでは新しい設定にはGrantsが推奨されています。
Grantsでは、例えば次のような考え方で通信を絞れます。
Windows仕事PC
↓
Ubuntu OpenClaw
OK
スマートフォン
↓
Ubuntu OpenClaw
OK
スマートフォン
↓
Ubuntu SSH
NG
一点注意があります。
Tailscaleのアクセスルールそのものは明示的に許可する方式ですが、新しく作成したtailnetには、最初は端末間通信を広く許可するデフォルトポリシーが設定されます。
そのため、
Tailscaleを入れた
=
自動的に必要最小限の通信だけに制限された
ではありません。
最初は接続確認を優先し、OpenClawが動いた後にGrantsで必要な通信へ絞る予定にしています。
今回のr001では、
1. Windows ↔ UbuntuのTailscale接続を確認
2. OpenClawへのServe接続を確認
3. SSHを確認
4. 動作確認後にGrantsを整理
という順番が分かりやすいです。
SSHは2通り考えられる
WindowsからUbuntuを管理する場合もTailscaleを利用できます。
方法は大きく2つあります。
普通のSSHをTailscale上で使う
現在のOpenSSHをそのまま使い、通信経路だけTailscaleにする方法です。
Windows OpenSSH
↓
Tailscale
↓
Ubuntu sshd
Windowsからは、
ssh user@ubuntu-openclaw
のように接続します。
SSH鍵やUbuntu側のsshd設定は従来どおり管理します。
Tailscale SSHを使う
Tailscale自身にSSHの認証と認可を管理させるTailscale SSHという機能もあります。
この場合はTailscaleのIDとアクセス制御ポリシーを使ってSSH接続を管理します。
ただし今回のr001では、まず普通のOpenSSHをTailscale上で利用する予定です。
理由は、OpenClaw、Ollama、Tailscaleを一度に変更せず、問題が起きたときに切り分けやすくするためです。
構成が安定してから、Tailscale SSHへ移行するかを改めて検討します。
OllamaはTailscaleへ公開しない
今回の構成では、Windows PCからOllamaへ直接アクセスする必要はありません。
Windows
↓
Tailscale Serve
↓
OpenClaw
↓
Ollama
↓
NVIDIA GPU
OpenClawとOllamaは同じUbuntu上に置くので、Ollamaは、
127.0.0.1:11434
だけで利用します。
Windowsから必要なのはOpenClawへの入口だけです。
したがって、
OpenClaw 127.0.0.1:18789
Ollama 127.0.0.1:11434
を基本にします。
サービスごとに外部公開範囲を広げない方が、構成も管理も単純になります。
Windows 11からの接続
Windows側にもTailscaleをインストールし、Ubuntuと同じtailnetへ参加させます。
接続状態はPowerShellで確認できます。
tailscale status
Ubuntuへの疎通確認は、
tailscale ping ubuntu-openclaw
MagicDNSが有効なら、
ping ubuntu-openclaw
でも名前解決できます。
OpenClawはブラウザからTailscale ServeのHTTPS URLを開きます。
https://<Ubuntuのマシン名>.<tailnetのDNS名>.ts.net/
Ubuntuの管理は、
ssh user@ubuntu-openclaw
とします。
普段の利用は最終的に、
Windows起動
↓
Tailscale接続
↓
Edge / Chrome
↓
Tailscale ServeのURL
↓
OpenClaw
くらいの流れになります。
r001で覚えておくコマンド
今回よく使うコマンドは多くありません。
# Tailscaleの接続状態
tailscale status
# 自分のTailscale IPv4
tailscale ip -4
# 相手への接続確認
tailscale ping <接続先>
# localhost:18789をtailnet内へHTTPS公開
tailscale serve --bg localhost:18789
# Serveの状態
tailscale serve status
# Serve設定を解除
tailscale serve reset
まずはこの程度で十分だと思います。
OpenClaw構成の中での役割を整理する
今回使うソフトウェアの担当を最後に整理しておきます。
| 要素 | 担当 |
|---|---|
| Tailscale | WindowsとUbuntuのプライベート通信 |
| WireGuard | Tailscaleの暗号化通信基盤 |
| MagicDNS | tailnet内の名前解決 |
| Tailscale Serve | OpenClawへのHTTPS入口 |
| Grants | tailnet内のアクセス制御 |
| OpenSSH | Ubuntuの遠隔管理 |
| OpenClaw | AIエージェント |
| Ollama | ローカルLLMの実行 |
| NVIDIA GPU | LLMの推論処理 |
| systemd | OpenClaw、Ollamaなどの常駐 |
今回のr001でTailscaleに求めている役割は、かなり明確です。
OpenClawをインターネットへ直接公開せず、Windows 11からUbuntu上のOpenClawへ接続するための通信基盤として使います。
最初はこの理解で十分だと思います。
TailscaleにはExit Node、Subnet Router、App Connectorなど他にも機能がありますが、今回のOpenClaw構成では使いません。必要になった段階で追加すればよいです。
今回の方針
r001では次の形から始めます。
Windows 11
│
│ Tailscale
▼
Tailscale Serve
│
▼
OpenClaw
127.0.0.1:18789
│
▼
Ollama
127.0.0.1:11434
│
▼
RTX 2080 SUPER 8GB
OpenClawやOllamaのポートをインターネットへ直接公開しません。
Ubuntu管理用のSSHもTailscale経由にします。
構築後はtailscale pingでDirect接続になっているかを確認し、OpenClawの動作が安定してからGrantsによるアクセス制御を整理します。
この方針であれば、OpenClaw、Ollama、ネットワークをそれぞれ分けて確認できるので、最初のローカルAIサーバー構築として扱いやすいです。
参考リンク
すべてTailscale公式ドキュメントです。
- What is a tailnet?
- About WireGuard
- Control and data planes
- MagicDNS
- Connection types
- Tailscale Serve
- tailscale serve command
- Tailscale Funnel
- Access control
- Grants
- Grant examples
- Tailnet policy file
- Tailscale SSH


