Munim, Inc. の MV2 による。2026 年 10 月 12 日に Ollama FAQ、Ollama のサーバーのソースコード(server/routes.go)、Tailscale Serve のドキュメント、Open WebUI の HTTPS using Tailscale のページ、LM Studio のサーバーのドキュメントと照合済み。ご自身のマシンにのみ使ってください。このページは英語の原文から AI で翻訳したものです。内容に食い違いがある場合は原文が優先します。
よくある助言は「OLLAMA_HOST=0.0.0.0 を設定する」(または macOS・Windows のアプリで Settings → Expose Ollama to the network をオンにする)です。これで動きますが、Ollama の API にはログインがないため、そのネットワーク上のすべての端末があなたのモデルを使い、ダウンロードや削除をし、今年の Ollama の CVE(英語)が見つかったエンドポイントにアクセスできるようになります。ルーターでポートを転送したことがあれば、それはインターネット全体を意味します。用途を満たす中で最も範囲の狭い方法を選んでください:
| やりたいこと | 使う方法 | ほかに Ollama に届くのは誰か |
|---|---|---|
| 自分のノート PC 1 台から、ときどき使う | A. SSH トンネル | 誰もいません。新しく開くものはありません。 |
| 自宅でも外出先でも、スマートフォンからチャットする | B. Tailscale Serve 経由の Open WebUI | あなたの tailnet だけで、しかも Open WebUI のログインを通った場合のみ。Ollama は localhost のままです。 |
| ほかの端末のアプリから Ollama API を使う(別の PC のツール、n8n、スマホアプリ) | C. tailnet 上の Ollama | tailnet 内の端末 |
| 同じ家庭内ネットワークのほかのマシン | D. LAN とファイアウォールルール | そのネットワーク上のすべての端末(ログインなし) |
やってはいけないこと: ルーターでポート 11434 を転送する。提供元のアクセス制御なしで Ollama に tailscale funnel、ngrok、cloudflared を使う(3 つともインターネットに公開します)。「とりあえず動かすため」に OLLAMA_ORIGINS=* を設定する。最後のものは、どのWeb サイトから呼び出せるかを変えるだけで、どの端末から使えるかは変わりません(ブラウザチェック(英語)を参照)。
GPU マシンの Ollama は既定の 127.0.0.1:11434 のままにします。ノート PC から:
ssh -N -L 11434:127.0.0.1:11434 you@gpu-box
これを実行している間は、ノート PC の http://127.0.0.1:11434 が GPU マシンの Ollama になるので、ollama list、Open WebUI、既定で localhost を使うものはそのまま動きます。curl http://127.0.0.1:11434/api/version で確認してください。ノート PC でも Ollama を 11434 で動かしている場合は、別のポートを転送し(-L 11435:127.0.0.1:11434)、クライアントをそちらに向けます。たとえば OLLAMA_HOST=127.0.0.1:11435 ollama list です。
(コマンドの you@gpu-box は、ご自身のユーザー名と GPU マシンの名前に置き換えてください。)GPU マシンには SSH サーバーが必要です。Linux ではたいてい最初から動いています。macOS では システム設定 → 一般 → 共有 → リモートログイン をオンにします。Windows ではオプション機能の「OpenSSH サーバー」を追加します。ssh クライアントは Windows 10/11、macOS、Linux に標準で入っています。リクエストの宛先が 127.0.0.1 になるので、Ollama の Host チェック(後述)も通ります。
スマートフォンからチャットするなら、スマートフォンとサーバーを同じプライベートネットワークに入れ、Ollama ではなく Open WebUI にアクセスします。Ollama は localhost から出ず、Open WebUI のアカウントが入り口の鍵になります。
-p 127.0.0.1:3000:8080(Compose では ports: [ "127.0.0.1:3000:8080" ])とし、Ollama にはこれまでどおり OLLAMA_BASE_URL で接続します。tailscale serve --bg 3000 tailscale serve statusステータスにあなたのアドレス
https://<machine>.<tailnet>.ts.net が表示されます(マシン名と tailnet 名が入ります)。Tailscale Serve を使うには、tailnet で HTTPS 証明書が有効になっている必要があります。無効の場合、最初の実行で同意ページに案内されます。--bg を付けると再起動後も動き続けます。WEBUI_URL=https://<machine>.<tailnet>.ts.net と CORS_ALLOW_ORIGIN=https://<machine>.<tailnet>.ts.net。コンテナを作り直してください。(これらが重要な理由と、Cookie や秘密鍵の設定については Open WebUI behind a proxy(英語)を参照。)確認: スマートフォンの Wi-Fi をオフにして再読み込みします。モバイルデータ通信でも使えれば成功です。tailnet に入っていない端末では、そのアドレス自体が開けないはずです。Open WebUI で新規登録が開いている場合は、自分のアカウントを作成した後で閉じてください(ENABLE_SIGNUP=False)。元に戻すには tailscale serve reset です。
tailscale funnel は使わないでください。Funnel は同じアドレスをインターネットに公開します。Open WebUI のドキュメントもこれを警告しており、Open WebUI の 9 月のアドバイザリー(英語)を考えると、プライベートな tailnet のほうが安全な既定の選択です。
生の API が必要なクライアントもあります。別の PC の Ollama、別のサーバー上の n8n やスクリプト、Ollama の URL に直接つなぐスマホアプリなどです。
tailscale serve 11434 が 403 を返す理由すぐ思いつく方法、つまり localhost だけで待ち受ける Ollama の前に tailscale serve を置くと、すべてのリクエストが 403 Forbidden になります。原因は Tailscale ではありません。Ollama がループバックアドレスで待ち受けているとき、その allowedHostsMiddleware がリクエストの Host ヘッダーを確認します。受け付けるのは localhost、そのマシン自身のホスト名、.localhost・.local・.internal で終わる名前、そしてループバック・プライベート・ローカルインターフェースの IP だけです。このチェックは Web サイトからの DNS リバインディングを防ぐためのものです。Serve は <machine>.<tailnet>.ts.net をそのまま渡しますが、これはリストにありません。サーバー上で確かめられます: curl http://127.0.0.1:11434/api/version は応答しますが、curl -H "Host: gpu-box.example.ts.net" http://127.0.0.1:11434/api/version は 403 になります。Ollama がループバック以外のアドレスで待ち受けている場合、このチェックは行われません。
tailscale ip -4(例: 100.101.102.103)。OLLAMA_HOST=100.101.102.103:11434 を設定します。Linux: sudo systemctl edit ollama.service を実行し、[Service] の下に Environment="OLLAMA_HOST=100.101.102.103:11434" を追加してから sudo systemctl daemon-reload && sudo systemctl restart ollama。macOS アプリ: launchctl setenv OLLAMA_HOST "100.101.102.103:11434" の後、Ollama を終了して開き直します。Windows: Ollama を終了し、「アカウントの環境変数を編集」で OLLAMA_HOST を設定してから、スタートメニューで起動します。アプリの「Expose Ollama to the network」はオフのままにしてください。ss -tlnp | grep 11434、macOS lsof -nP -iTCP:11434 -sTCP:LISTEN、Windows netstat -ano | findstr :11434)。0.0.0.0 や * ではなく、100.x のアドレスが出れば正しい状態です。http://100.101.102.103:11434、またはマシンの MagicDNS 名(http://gpu-box:11434 など)を使います。別のコンピューターの Ollama CLI からは OLLAMA_HOST=http://gpu-box:11434 ollama list です。副作用が 2 つあります。(1)サーバー自身で localhost:11434 が応答しなくなります。ローカルのツールも 100.x のアドレスに向けてください。たとえば OLLAMA_HOST=100.101.102.103:11434 ollama run ... や、同じマシンの Open WebUI の OLLAMA_BASE_URL です。(2)Tailscale がアドレスを得る前に Ollama が起動すると、バインドに失敗します。Ollama のインストーラーが書く Linux のユニットには Restart=always と RestartSec=3 があるので、バインドできるまで再試行し続けます。macOS と Windows では、Tailscale の接続後に Ollama を再起動してください。
この方法なら localhost:11434 も使えたままです。OLLAMA_HOST=0.0.0.0:11434 を(上記の方法で)設定してから:
sudo ufw allow OpenSSH # first, if you manage this box over SSH sudo ufw default deny incoming sudo ufw allow in on tailscale0 to any port 11434 proto tcp sudo ufw enable sudo ufw status verbose # no other rule should allow 11434
(コメントの意味: このマシンを SSH で管理しているなら最初の行を先に実行すること。ステータスでは、ほかに 11434 を許可するルールがないこと。)これはネイティブにインストールした Ollama が対象です。Ollama を Docker でポートを公開して動かしている場合、ufw は効きません。Docker が独自のファイアウォールルールを書き込むためです(Docker can't reach Ollama(英語)を参照)。
どちらの場合も: 既定では、tailnet 内のすべての端末がほかのすべての端末に届きます。マシンをほかの人と共有している場合や、信頼度の低い端末がある場合は、tailnet のアクセスポリシーでポート 11434 を自分の端末だけに制限してください。アプリにもキーを要求したい場合は、前段に Bearer キーのプロキシ(英語)を置きます。
信頼できる家庭内ネットワークなら問題ありません。オフィス、寮、ホテル、カフェの Wi-Fi では不適切です。ゲストを含め、そのネットワークの誰もがログインなしであなたの Ollama を使えてしまいます。
OLLAMA_HOST=0.0.0.0:11434 を設定する(手順は対処法 1 と同じで、値を 0.0.0.0 にする)か、アプリの「Expose Ollama to the network」をオンにします。Ollama を完全に終了してから開き直してください。default deny incoming にしたうえで sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp(サブネットはご自身のものに)。New-NetFirewallRule -DisplayName "Ollama LAN only" -Direction Inbound -Protocol TCP -LocalPort 11434 -RemoteAddress LocalSubnet -Profile Private -Action AllowWindows の許可ルールは足し算で効くので、Windows Defender ファイアウォール → 詳細設定 → 受信の規則 も開き、パブリック ネットワークや任意のアドレスを許可している古い Ollama のルールを削除するか、範囲を狭めてください。
確認: ネットワーク上の別の端末から curl http://<server LAN IP>:11434/api/version(サーバーの LAN 内 IP に置き換え)を実行すると応答があるはずです。モバイルデータ通信のスマートフォン(Wi-Fi オフ)からは、同じアドレスが応答してはいけません。
LM Studio には Developer → Server Settings に独自のスイッチがあります。0.4.0 以降では、Serve on Local Network をオンにする前に Require Authentication をオンにし、Manage Tokens でクライアントに必要な権限だけを持つトークンを作成して、クライアントに Authorization: Bearer <token> を送らせます。認証は既定でオフです。Web ページが本当に必要としない限り Enable CORS はオフのままにしてください(ブラウザチェック(英語)はポート 1234 も確認します)。方法 A、C、D はポート 1234 でも同じように使えます。たとえば ssh -N -L 1234:127.0.0.1:1234 you@gpu-box です。
無料のスクリプト local-ai-checkup は、ネットワークから届いてしまう AI 関連のポートを指摘し、Ollama のバージョン、OLLAMA_ORIGINS、Docker のポート公開も確認します。読み取り専用で、マシンの外には何も送信しません。その後、CVE チェッカー(英語)でバージョンを確認してください。締めるためのチェックリストは「Ollama が外部に公開されていないか?」にあります。
Munim, Inc. の MV2 は、マシン 1 台のローカル AI ヘルスチェック(49 米ドル)と、最大 5 台または共有の Ollama・Open WebUI サーバー 1 台を対象にした小規模オフィス向けチェック(199 米ドル)を提供しています。何が公開されていて、何が危険または遅いのか、何から直すべきかをまとめた報告書を、お使いの OS 向けの正確なコマンドと、GPU に合うモデルの提案とともにお届けします。報告書は英語です。報告書のサンプル(英語)をご覧ください。Stripe で 49 ドルを支払うか 199 ドルを支払うと、その後 munimversion2@gmail.com へ、python3 local_ai_checkup.py --json の出力、お使いの OS、用途をメールで送ってください。MV2 がパスワード、キー、リモートアクセスを求めることはありません。