ローカルLLMを外部PC/スマホで!【ngrok+Open WebUI+Ollama】
【全ての文章を、無料でお読みいただけます】
「家のGPU上で、Ollama + Open WebUIを用いてローカルLLMを動かしている。これを外部PC・スマホでも利用できるようにしたい!」
そんな方には良いメモかもしれません。
![](https://assets.st-note.com/img/1738172945-PtuNMri47UEvzWFbG3KATe21.png?width=1200)
1. はじめに
先日、DeepSeek社から高性能なLLM「R1」が発表され、話題になっています。しかし、DeepSeek ChatやAPIを使用する際には、サーバーが中国国内にある関係から情報流出の危険性があると指摘されています。
そこで、安全にローカルなLLMを運用しつつ、外部からもアクセスできるようにする方法として、ngrok を活用する手順を解説します。
本記事の目的:
✅ ngrokを使ってローカル環境を外部に公開する方法を学ぶ
✅ どこからでもアクセス可能なURLを作成する方法を学ぶ
✅ 外部からの継続的な接続を可能にする方法を学ぶ
注意:
Ollama + Open WebUIの詳細な使い方については、別記事に譲ります。これらを準備ができた前提で話を続けます。
システムの外観:
![](https://assets.st-note.com/img/1738182604-AyVmgE9LfNsS0jnaKqFO6C8P.png?width=1200)
実際にローカルLLMを推論しているPC・サーバーは別でもOKです。
これを利用しているローカルホストに接続できるマシン(上図におけるLocal Machine)さえあれば十分です。
2. ngrokのインストールと設定
2.1 ngrokの公式サイトでサインイン
ngrok公式サイトにアクセスし、サインイン
2.2 ngrokインストール
「Choose another platform」から使用するOSを選択
Ubuntuの場合:
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list \
&& sudo apt update \
&& sudo apt install ngrok
Windowsの場合:
choco install ngrok
2.3 ngrokの認証
公式サイトでAuthtokenを取得し、以下のコマンドを実行:
ngrok config add-authtoken <your_auth_token>
※ <your_auth_token>も準備された状態でコピペできるようになっているはずです。
3. ngrokでローカルサーバーを公開する
ローカルで動作しているサーバー(例: ポート8080)を外部に公開するには、以下のコマンドを実行します。
ngrok http localhost:8080
http~の様に、URL形式で投げるとエラーになります。
localhost:8080とありますが、例えば「127.00.00:8080」のような感じです。
実行後、以下のような情報が表示されます:
Session Status online
Account example@example.com (Plan: Free)
Version 3.19.1
Region Japan (jp)
Web Interface http://127.0.0.1:4040
Forwarding https://example.ngrok-free.app -> http://localhost:8080
この中で、https://example.ngrok-free.app が外部からアクセス可能なURLです。このURLを使用して、外部からローカルサーバーにアクセスできます。
これで一応、外部PC、スマホからローカルLLMを使用できるようになりました。
![](https://assets.st-note.com/img/1738175790-kl2a0WenSwAvm3sTbdGucXi4.png?width=1200)
4. URL固定
ユーザーごとに 1 つの無料の静的ドメインを取得できます。
公式サイトのサイドバーから、Domainsを開きます。
![](https://assets.st-note.com/img/1738179000-rFRS8HClXnyk4uxp17hsWvKd.png)
![](https://assets.st-note.com/img/1738179580-d2VzJoAw4yWXI1NMHuLcf9TR.png?width=1200)
ドメインを設定します。
ngrok http --url=domain-example.ngrok-free.app localhost:8080
のようにして、再度実行をすると、ドメインが固定されます。
URLをブックマークして大丈夫です。これで、毎回URLをコピペする必要がなくなりました。
5. 継続的な接続を可能にする
接続するトンネルを維持しておくためには、ngrokを継続的に実行しておく必要があります。通常の方法ではターミナルを開いたままにする必要がありますが、これでは他の作業がしにくくなります。そこで、tmuxを用いて、ターミナルウィンドウを閉じてもセッションが切れないように設定します。
tmuxセッションの作成
新しいtmuxセッションを作成します。今回は例として、セッション名を「ngrok_session」とします。
tmux new -s ngrok_session
ngrokの実行
tmuxセッション内でngrokコマンドを実行します。以下のコマンドを入力してください。
ngrok http --url=domain-example.ngrok-free.app 8080
tmuxセッションからのデタッチ
次のような情報を表示させたまま、tmuxセッションからデタッチします。
Session Status online
Account example@example.com (Plan: Free)
Version 3.19.1
Region Japan (jp)
Web Interface http://127.0.0.1:4040
Forwarding https://example.ngrok-free.app -> http://localhost:8080
これにより、ngrokプロセスはバックグラウンドで実行され続けます。
※デタッチの手順: Ctrl + B を押してから D を押します。
tmuxセッションへの再接続
後でngrokのログを確認したり、ngrokを停止したりする必要がある場合は、再度tmuxセッションに接続します。
tmux attach -t ngrok_session
これで、PCの電源を切らない限り、ローカルLLMを、毎回同じURLで、外部PC・スマホから利用することができるようになりました🎉
6. セキュリティに関する注意点
URLの取り扱い: 生成されたURLは公開されると誰でもアクセス可能になります。Basic認証を設定するなど、適切なアクセス制御を行いましょう。
一時的な利用: ngrokのURLは一時的なものです。永続的なサービス提供には向いていません。
アクセスログの確認: Web Interface(`http://127.0.0.1:4040`)で、誰がいつアクセスしたかを定期的に確認しましょう。
ファイアウォール設定: 必要なポートのみを開放し、不要なアクセスを制限することをお勧めします。
5. まとめ
ngrokで簡単にローカル環境を外部公開
SSHなしでどこからでもアクセス可能
セキュリティに十分注意して利用することが重要
おすすめ
未踏にて、僕のPMやボスが脳型人工知能(リザバー計算)のセミナーやるみたいです。
面白そう!
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?