2026年4月28日
Ken Suzuki
技術

Isaac Sim をリモートで操作する環境を構築した話——WebRTC に詰まって NoMachine + Tailscale に落ち着くまで

WebRTC によるブラウザ接続を試みたが Mac 非対応と判明。VPN に Tailscale、リモートデスクトップに NoMachine を組み合わせて Isaac Sim を外出先の Mac から安全に操作できる構成にたどり着くまでの記録。

Isaac SimTailscaleNoMachineリモートアクセスUbuntu
Isaac Sim をリモートで操作する環境を構築した話——WebRTC に詰まって NoMachine + Tailscale に落ち着くまで

Isaac Sim をリモートで操作する環境を構築した話——WebRTC に詰まって NoMachine + Tailscale に落ち着くまで

はじめに

事務所に置いてある Isaac Sim マシン(Ubuntu 24)を、外出先の Mac からリモート操作したい——そんな要件から始まった構築作業の記録です。

「WebRTC でブラウザ接続できる」という情報を頼りに進めたものの、最終的には別の方法に落ち着きました。同じ構成で詰まっている方の参考になれば幸いです。


構成

  • リモート先: Ubuntu 24 / NVIDIA GPU / Isaac Sim(pip インストール、conda 環境)
  • 接続元: macOS
  • 目標: GUI を含む Isaac Sim をリモートで操作できること

Step 1: VPN 層の選定——Tailscale に決めた理由

リモートアクセスにはまず VPN が必要です。候補を比較しました。

方式 特徴
OpenVPN 枯れているが設定が複雑
WireGuard 高速・軽量だがルーター設定が必要
Tailscale WireGuard ベース。アカウントだけで即使える

Tailscale を選んだ決め手は「固定 IP 不要」「NAT 越え自動」「セットアップが数分で終わる」の3点です。

仕組みとしては、各デバイスが Tailscale のコーディネーションサーバーに公開鍵を登録し、デバイス同士が WireGuard で直接 P2P 接続します。通信データ自体は Tailscale のサーバーを通りません。

# Ubuntu 側(公式インストールスクリプト)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

注意: curl | sh 形式のスクリプトは実行前に内容を確認する習慣をつけるのが安全です。公式サイト(tailscale.com/download)からパッケージを直接ダウンロードする方法もあります。

# Mac 側(Homebrew でインストール後、サービスを起動)
brew install tailscale
brew services start tailscale
tailscale up

Mac App Store 版または tailscale.com からの dmg 版を使う場合は、アプリを起動してログインするだけで完了です。

同じアカウントでログインするだけで、100.64.x.x 系の仮想 IP が割り当てられ、インターネット越しに同じ LAN にいるように見えます。


Step 2: Isaac Sim の WebRTC ストリーミングを試みる

Isaac Sim(Kit ベース)には WebRTC ストリーミング機能が内蔵されており、ブラウザから接続できると思っていました。

2-1. kit ファイルを探す

pip インストール版では起動スクリプトが isaacsim コマンドになっており、kit ファイルを明示する必要があります。

find ~/miniconda3/envs/env_isaacsim -name "*.kit" 2>/dev/null

ストリーミング関連として見つかったのは1つ:

isaacsim.exp.full.streaming.kit

2-2. 起動してみると……NVCF 向けだった

isaacsim --experience /path/to/isaacsim.exp.full.streaming.kit

ポート 8011 でサーバーが起動し、ブラウザでアクセスすると {"detail":"Not Found"}/docs を開いたところ、Kit services core という FastAPI ベースの REST API サーバーでした。

これは NVIDIA Cloud Functions(NVCF)向けのサービス API であり、ブラウザで視聴するものではありませんでした。

2-3. WebRTC 拡張を直接有効化してみる

find ~/miniconda3/envs/env_isaacsim -name "*webrtc*" 2>/dev/null

omni.kit.livestream.webrtc 拡張が存在したので、--enable フラグで追加してみました。

isaacsim \
  --experience /path/to/isaacsim.exp.full.kit \
  --enable omni.kit.livestream.webrtc \
  --/app/streaming/enabled=1

ポート 49100 が新たに開きましたが、ブラウザでアクセスすると 501 エラー。UDP ポートも開かず、WebRTC メディアストリームが動いていない状態でした。

2-4. 結論:このバージョンの WebRTC は Mac 非対応

調査の結果、omni.kit.livestream.webrtcOmniverse Streaming Client(NVIDIA 公式のデスクトップクライアント)向けであり、Windows・Linux のみ対応。Mac からのブラウザ接続には対応していないことが分かりました。


Step 3: NoMachine + Tailscale に切り替え

GPU アプリのリモートデスクトップとして、NoMachine を選択しました。

NoMachine を選んだ理由

ツール Mac 対応 GPU 描画 手軽さ
NoMachine
NICE DCV △(設定複雑)
VNC

Ubuntu 側のセットアップ

# nomachine.com から .deb をダウンロード
sudo dpkg -i nomachine_*.deb
sudo systemctl enable nxserver
sudo systemctl start nxserver

Mac 側のセットアップ

nomachine.com から macOS 用クライアントをダウンロード・インストール。

接続

NoMachine を起動 → New → Protocol: NX / Host: <Ubuntu の Tailscale IP(100.64.x.x)> / Port: 4000 → Ubuntu のユーザー名・パスワードでログイン。

Isaac Sim の GUI がそのまま操作できる状態になりました。

セキュリティ上のポイント: Tailscale 経由で接続するため、NoMachine のポート 4000 をインターネットに公開する必要はありません。Ubuntu のファイアウォールはデフォルト(ポート 4000 は LAN または Tailscale ネットワーク内のみ許可)のままで問題ありません。


最終的な構成

[Mac]
  ↓ Tailscale(WireGuard P2P 暗号化)
[Ubuntu 24 / Isaac Sim マシン]
  ↓ NoMachine(GPU レンダリング転送)
[Isaac Sim GUI]

ローカルネットワークでも Tailscale 経由でも同じ手順で接続できます。出張中でも自宅からでも、Isaac Sim を手元の Mac で操作できるようになりました。


まとめ

項目 結果
Isaac Sim WebRTC(ブラウザ) Mac 非対応・断念
NoMachine 動作確認済み ✓
Tailscale 動作確認済み ✓

Isaac Sim の WebRTC ストリーミングはバージョンや用途によって挙動が大きく異なります。pip インストール版では「ブラウザで見られる」という前提が成立しないケースがあるため注意が必要です。

同じ構成で試している方の参考になれば幸いです。

Isaac Sim をリモートで操作する環境を構築した話——WebRTC に詰まって NoMachine + Tailscale に落ち着くまで | Shirokuma.online