WSL2で動かしたOllamaにWindowsから接続できない問題の解決法
問題の内容
Windows環境において、WSL2(Windows Subsystem for Linux 2)にインストールしたOllamaを実行した後、Windowsホスト側からローカルネットワーク経由でOllamaにアクセスしようとすると接続できないエラーが発生する場合があります。具体的には、WSL2のOllamaには127.0.0.1:11434でアクセスできるものの、0.0.0.0:11434やWindowsホスト側からアクセスできないという症状が見られます。
結論
環境変数OLLAMA_HOSTとOLLAMA_ORIGINSを適切に設定することで、WSL2上のOllamaをローカルネットワーク含む外部からの接続できるようになります。
具体的な解決手順
ステップ1:WSL2環境の準備
まず、WSL2が正しくインストールされていることを確認します。PowerShellまたはコマンドプロンプトで以下を実行してください:
wsl --list --verbose
WSL2がデフォルトのバージョンとして設定されていることを確認します。
ステップ2:WSL2にOllamaをインストール
WSL2(UbuntuなどのLinuxディストリビューション)にログインし、Ollamaをインストールします:
curl -fsSL https://ollama.com/install.sh | sh
ステップ3:環境変数の設定
WSL2のシェル(~/.bashrcまたは~/.zshrc)に以下の環境変数を追加します:
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_ORIGINS="*"
変更を反映させます:
source ~/.bashrc
ステップ4:Ollamaの起動確認
Ollamaサービスを起動します:
ollama serve
別のターミナルタブまたはバックグラウンドでモデルを実行します:
ollama run llama2
ステップ5:Windowsホストからの接続確認
Windows側のコマンドプロンプトまたはPowerShellで、WSL2のOllamaに接続できるか確認します:
curl http://localhost:11434
「Ollama is running」というメッセージが表示されれば成功です。
ステップ6:WSL2のIPアドレス確認(必要な場合)
もしlocalhostで接続できない場合、WSL2のIPアドレスを直接指定してください:
ip addr show eth0 | grep inet
表示されたIPアドレス(例:172.x.x.x)を使ってWindows側からアクセスできます:
curl http://172.x.x.x:11434
補足・注意点
- Windows 10の制限:Windows 10ではWSL2のミラードネットワークモードがサポートされていないため、上記の方法で接続できない場合があります。その場合はWSL2のIPアドレスを直接使用してください。
- ファイアウォールの設定:セキュリティソフトが接続をブロックしている可能性があります。Windows Defenderやファイアウォール設定で許可が必要な場合があります。
- モデルのダウンロード:初回のモデル実行時にはダウンロードが行われるため、安定したインターネット接続が必要です。
- リソース要件:Ollamaの実行には十分なRAMとVRAMが必要です。16GB以上のRAM積載を推奨します。
- Dockerを使用する場合:Docker Desktop for Windowsをインストールし、WSL2バックエンドを使用することで、Dockerコンテナ内でOllamaを実行することも可能です。
参考元
- How to run Ollama in Windows via WSL | by Tanzim
- How to Access Ollama Running on Windows from WSL2
- WSL 2: Exposing ollama via 0.0.0.0 on local network
おすすめ環境
🔧 快適な開発環境のために
本記事の手順をスムーズに進めるために、以下のスペックを推奨します。
- GPU: NVIDIA RTX 4070 Ti Super(AI開発のコスパ最強GPU)
- メモリ: DDR5 64GB(LLMのローカル推論に必須)