0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenClawを使う前にTailscaleをおさらいする

0
Posted at

OpenClawを使う前にTailscaleをおさらいする

OpenClawをUbuntuのローカルサーバーで動かし、Windows 11から利用する構成を考えています。

今回の構成では、OpenClawをインターネットへ直接公開せず、Windows 11とUbuntu 24.04の間をTailscaleでつなぎます。OpenClawはUbuntuの127.0.0.1:18789で待ち受け、Tailscale Serveを入口にする予定です。

Tailscaleは設定が簡単なので、使い始めるだけならそれほど難しくありません。ただ、tailnetMagicDNSServeDERPなど独自の用語がいくつかあります。OpenClawの構築へ進む前に、今回使う範囲を一度整理しておきます。

この記事の内容は、2026年9月9日時点のTailscale公式ドキュメントを確認してまとめています。

今回想定している構成

最終的には次のような形にします。

ChatGPT Image 2026年9月9日 10_05_10.png

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 PlaneData Planeを分けて考えると分かりやすいです。

Control Planeは、端末の登録、認証、公開鍵、接続情報、アクセス制御などを管理します。

Data Planeは、実際の通信データを運ぶ部分です。

ChatGPT Image 2026年9月9日 10_05_57.png

端末間で実際に流れるデータはData Plane側でWireGuardによって暗号化されます。

Tailscaleのコーディネーションサービスは端末同士を接続するための情報を管理し、実際の通信は可能なら端末間を直接流れます。


Tailscale Serve

今回のOpenClaw構成で特に重要なのがTailscale Serveです。

OpenClawはUbuntu上で、

127.0.0.1:18789

だけに待ち受けさせます。

このままではUbuntu自身からしかアクセスできません。

そこでTailscale Serveを使い、tailnet内のWindows PCからOpenClawへアクセスできるHTTPSの入口を作ります。

ChatGPT Image 2026年9月9日 10_08_45.png

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公式ドキュメントです。


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?