Cloudflare と Unsloth を使って安全なリモートアクセスでローカル LLM をどこでも提供する方法
ローカルAIモデルをどこでも提供・デプロイできます。Cloudflareトンネルを介してHTTPS経由で、別のデバイスからローカルLLMに安全にアクセスできます。 Unsloth。Cloudflareアカウント、ドメイン設定、ポートフォワーディングは不要です。自身のハードウェア、サーバー、またはクラウドGPU上でプライベートAIモデルを実行し、スマートフォンのようにどこからでも接続できます。
Unslothは、LLMをローカルでトレーニングおよび実行できるオープンソースプロジェクトです。Cloudflareトンネルと併用すれば、モバイルデバイスからUnslothにアクセスしたり、友人や同僚とアクセスを共有したり、Google Colab、AWS、さらには個人サーバーなどのサーバーでUnslothをホストしたりできます。
Unslothはお使いのコンピューター上で100%オフラインで実行できます。リモートアクセスを有効にすると、次のようなWebリンクを取得できます。 https://known-plates-desire-turkey.trycloudflare.com。スマートフォン、ノートPC、または任意のブラウザーで、どこからでも開けます。

無料です。登録や支払いは不要で、ルーターやファイアウォールに触れる必要もありません。Unslothをインストールすると、コンピューターがCloudflareに接続し、Cloudflareが訪問者をコンピューターへ中継します。リンクはHTTPSなので、接続は暗号化されています。
有効にする方法は2つあります:
Unslothを起動するとき: 追加
--secureあなたのunsloth studioコマンドUnslothの実行中: 設定 → API → に移動 リモートアクセス を選択して、次を押します 開始
Unslothプロセスごとに存在するトンネルは1つだけで、それを停止できるのは所有者だけです。
⚡ クイックスタート
まず、次をダウンロードする必要があります Unsloth Desktop アプリ。
アプリを起動
次に、設定 → リモートとLAN → リモートアクセスに移動します。

Unslothがすでに実行中で、スマートフォンや別のマシンから使いたい場合に使用します。次を押します 開始、次にこれをコピーします: リモートURL または次をスキャンします: QR コード。 オンライン は、単に要求されたということではなく、リンクがすでに応答していることを意味します。
知っておくべき3つのこと:
URLとパスワードを知っている人は誰でもサインインできます。リモートブラウザーは次のユーザーとしてログインします:
unsloth。これは次の項目で設定します: リモートパスワード.URLは起動するたびに新しくなり、固定することはできません。
生の
0.0.0.0ポートは開いたままです。閉じられるのは--secureだけです。
もし 開始 がグレーアウトしている場合、カードには理由が表示されます。通常は管理者パスワードをまだ変更する必要があるか、トンネルが起動コマンドに属しているためです。
開始を利用できない場合
server_starting
Unslothはまだ起動中です。
admin_password_change_required
このサーバーを公開する前に、リモートパスワードを設定してください。 (デスクトップ) / このサーバーを公開する前に、管理者パスワードを変更してください。デスクトップアプリでは、次を実行します: unsloth studio reset-password. (ブラウザー)
explicitly_disabled
この起動では次が使用されました: --no-cloudflare。これを付けずに再起動すると、リモートアクセスを有効にできます。
launch_managed
このトンネルは起動コマンドによって管理されています。
colab_managed
このトンネルはColabランタイムによって管理されています。
colab
リモートアクセス設定はColabランタイムによって管理されています。
UIの残りの部分にあるトンネルURL
トンネルがオンラインになると、2か所が自動的に切り替わります:
設定 → API → 使用例 に次の項目が追加されます: 安全なHTTPS 切り替え。オンにすると、すべてのcurl/Python/JavaScriptスニペットおよびコーディングエージェントコマンドが、次のものを対象に書き換えられます:
trycloudflare.comベース(次の代わり)localhost。次のオプションを付けて起動しなかった場合:--secure、情報ツールチップで次のように通知されます: 「0.0.0.0ポートには引き続きグローバルに到達可能です。完全なセキュリティのためには、Unslothを次のオプションで起動してください:--secureHTTPSリンクのみを公開するには。」次の APIモニター ページの ベースURL 表示にはトンネルのオリジンが示されるため、そこからコピーしたスニペットはリモートデバイスから動作し、トンネル経由で到着するすべてのリクエストがリアルタイムで一覧表示されます。
CLI:HTTPS専用の方法
Unslothを手動でインストールした後、ターミナルで次を実行します:
Unslothは次にのみバインドされたままです: 127.0.0.1 そして公開されるのは のみです トンネル経由です。トンネルを開始できない場合、Unslothは フォールバックせずに終了します 生のポートへ。バナーには次のように表示されます:
CLI:生のLANポートとパブリックリンク
生のポートはネットワーク上から到達可能なままです そして パブリックCloudflare URLが公開されます。これは最もプライバシー性の低いモードであるため、バナーでまさにこの点について警告されます。
UI:すでに実行中のサーバーでリンクを開始する
開く 設定 → API.
次を見つけます: リモートアクセス カード。
クリック 開始.
ステータスが次のように表示されたら: オンライン、次をコピーします: リモートURL または次をスキャンします: QR スマートフォンでコードを読み取ります。
🖥️ CLIリファレンス
両方のフラグは次で受け付けられます: unsloth studio (プレーンサーバーのパス)および unsloth studio run.
--secure / --no-secure
オフ
公開 のみです Cloudflare経由で公開します。ループバックバインドを強制し、次を暗黙的に指定します: --cloudflare。トンネルを開始できない場合はフェイルクローズします。
--cloudflare / --no-cloudflare
オフ
次のためにパブリックCloudflare URLも公開します: 非--api-only ワイルドカードバインド (0.0.0.0 または ::)。ループバックバインドには効果がありません。 --no-cloudflare これを強制的にオフにしますが、 ません ワイルドカードバインドをプライベートにすることは。
フラグ処理に関する注意:
--secureは次を無視します:-H。別のホストを渡すと、注意を表示してバインドします:127.0.0.1それでも。--secure --no-cloudflareは矛盾しており、次のコードで終了します:2.これらのフラグはプレーンサーバーのパスに属します。これらを 前に サブコマンドの(
unsloth studio --secure run ...)に置くと終了します2修正済みコマンドとともに終了します。これは、そうしないとTyperがそれらを黙って破棄するためです。次を使用してください:unsloth studio run --secure ....この選択は、Unslothの内部re-execをまたいで3状態として引き継がれます(
有効/無効/未設定)ので、古いDocker ENVまたはsystemd Environment=によって、この呼び出しで無効にしたトンネルが再び有効になることはありません。
各起動で実際に公開されるもの
unsloth studio
このマシン上のみ
いいえ
unsloth studio --cloudflare
このマシン上のみ
いいえ、このフラグはループバックでは何もしません
unsloth studio -H 0.0.0.0
あなたのネットワーク
いいえ
unsloth studio -H 0.0.0.0 --cloudflare
あなたのネットワーク
はい
unsloth studio --secure
このマシン上のみ
はい、そしてこれが唯一のアクセス経路です
unsloth studio --api-only (デスクトップバックエンド)
バインドされた状態のまま
いいえ。ただし、 --secure
Google Colab
Colabプロキシ
経由のみ start(cloudflare=True)
バックエンドが適用するルール:Colabは起動パスからトンネルを作成しません。 --secure 常にトンネルを作成します( --api-only、ヘッドレスのセキュアAPI提供の場合も含む)。それ以外では、トンネルは次ではないワイルドカードバインドに対してのみ開始されます: --api-only.
--secure フェイルクローズする
トンネルが開始されない場合、 --secure は実行を継続することを拒否します:
そして終了します 1。これは意図的な動作です: --secure は「生のパブリックポートなし」を意味するため、公開されていると信じているループバック専用サーバーへ黙って劣化させるよりは、停止する方がましです。
起動バナーの行
ワイルドカードバインドでは、Unslothは常にトンネルの状態を表示するため、ネットワークから到達可能な起動が無表示になることはありません:
Cloudflareトンネル: オン。これはパブリックなインターネットURLです。このURLを知っている人は誰でもこのUnslothに到達できます。
Cloudflareトンネル: オン。このCloudflare URLはパブリックであり、生のポートにもパブリックに到達可能です。
Cloudflareトンネル: 要求されましたが、開始に失敗しました。
Cloudflareトンネル: オフ(デフォルト)。/ オフ(--no-cloudflare)。/ このモードではオフ。
各バリアントは、生のポートがインターネットから独立して到達可能であると検出されたかどうかに応じて変化します。その到達可能性プローブは次に接続します: ifconfig.me そして check-host.net; を設定 UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK=1 両方をスキップするには。
パスワードゲート
起動が公開 URL で Unsloth を公開しようとする最初のときに、管理者アカウントが自動生成されたブートストラップ用パスワードをまだ保持している場合、Unsloth は停止し、マスク表示された新しいパスワードの入力と確認を求めます、 サーバーやトンネルが存在する前に.
ターミナル接続あり: プロンプトが表示されます。中止 (Ctrl+C) すると起動は拒否されます。
ターミナルなし: 代わりに Unsloth は警告し、ブートストラップ認証情報を公開ページに決して注入せず、ブートストラップ期限を設定し、次の後にシャットダウンします
UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT(デフォルト 1 時間)、ただしパスワードが変更されない限り。ターミナルなし、かつ期限なし (
--api-only、またはUNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT=0): 何も保護しないため、起動は完全に拒否されます。--secureとcloudflared確実に利用不可: 初期設定されたパスワードは保持されたまま拒否されるため、トンネル失敗で締め出されることはありません。
ヘッドレス環境では、初期パスワードを対話なしで設定します(まだ設定されていない場合にのみ有効です):
文字通りの --password VALUE は表示されます: ps およびシェル履歴に表示されるため、環境変数または標準入力を優先してください。後でローテーションするには unsloth studio reset-password.
📓 Google Colab
run_server Colab ではすでにポートがプロキシされているため、起動経路のトンネルを抑制します。共有可能な公開リンクを明示的に要求します:
Colab は、管理者アカウントにブートストラップ用パスワードが残っている間はリンクを開くことを拒否します。その認証情報は、ページを読み込める人なら誰でも見えてしまいます。ログインしてパスワードを変更し、再実行してください。失敗するとすべて「リンクなし」に収束し、Colab プロキシは動き続けます。
🔒 セキュリティ
Unsloth を公開するということは、URL を持っている誰でも そして その認証情報を使えるということです。
サーバー側ツールはあなたのユーザーとして実行されます。 Web 検索、Python、ターミナル実行はデフォルトで有効になっているため、あなたの API キーでサーバーに到達した誰でもそのマシン上でコードを実行できます。Unsloth を公開する際は
--disable-toolsを指定し、API キーは秘密にしてください。ネットワーク到達可能な起動では、バナーにもこの内容が表示されます。管理者パスワードゲート 上記は、起動管理されたトンネルでは任意ではありません。
レート制限は訪問者ごとに維持されます。 トンネルの終端は
127.0.0.1であるため、本来ならトンネル経由の各呼び出し元は 1 つのバケットを共有します。ソケットの対向がループバックの場合、Unsloth は Cloudflare のCF-Connecting-IPを尊重します。これはエッジが設定し、トンネルクライアントは偽装できません。独自のリバースプロキシの背後では、次を有効にしてください:X-Forwarded-ForとUNSLOTH_STUDIO_TRUST_FORWARDED=1.トンネルが有効な間、ローカルの stdio MCP サーバーは取り消されます。 stdio MCP はループバックの利便性としてのみ自動有効化されます。リモート接続はその信頼境界を壊すため、自動既定は自動的にオフになります。明示的な
UNSLOTH_STUDIO_ALLOW_STDIO_MCP=1を明示すると、それが優先されます。URL はランダムで使い捨てです。 Quick Tunnel は起動のたびに新しいホスト名を取得します。URL 自体を秘密として扱い、固定できないことを覚えておいてください。
❔ トラブルシューティング
これらは Remote access カードに表示される正確なステータスです。それ以外は一般的な Cloudflare トンネルに失敗しました.
cloudflared を利用できません
存在しません PATH、キャッシュもなく、ダウンロードにも失敗しました。
外向きアクセスを確認してください: github.com、またはインストールしてください cloudflared 自分で行い、これが PATH.
cloudflared が URL を生成しませんでした
生成される前にプロセスが終了しました。
通常は外向きネットワークがありません。再試行し、プロキシまたは送信フィルタを確認してください。
cloudflared は接続を登録しませんでした
URL は生成されたが、次の後もエッジ接続がありませんでした: http2 再試行。
ネットワークが QUIC をブロックしています そして Cloudflare のエッジへの HTTP/2。
Cloudflare の URL に到達できませんでした
登録はされたが、ヘルスプローブが公開 URL 経由で一度も応答しませんでした。
一時的なエッジ/DNS 伝播です。もう一度 Start を押してください。
cloudflared が終了しました
コネクタがオンライン中に停止しました。
もう一度開始し、OOM killer や子プロセスを回収するプロセス監視を確認してください。
cloudflared を停止できませんでした
終了確認が一度も取れなかったため、スロットはまだ占有されています。
もう一度 Stop を押してください。続く場合は Unsloth を再起動してください。
その他の症状:
--secureすぐに終了します。 トンネルに失敗しました。メッセージは--no-secureを代替として示しています。まず接続性を修正してください。なぜなら--no-secure未加工のポートを公開するからです。UI で Start がグレーアウトしています。 カード下のメッセージを読んでください。上の表のブロック理由が示されています。
🌱 環境変数
UNSLOTH_STUDIO_HOME
インストール先ルート; cloudflared キャッシュの保存先は <root>/bin.
UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT
保護されていない公開起動が自動停止するまでの秒数。デフォルト 3600; 0 を無効にします(また、ヘッドレス公開起動は拒否されるようになります)。
UNSLOTH_STUDIO_PASSWORD
ヘッドレス起動用の初期管理者パスワード。
UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK
1 ワイルドカードバインド時に、サードパーティの生ポート到達可能性プローブをスキップします。
UNSLOTH_STUDIO_TRUST_FORWARDED
1 従います X-Forwarded-For 独自のリバースプロキシの背後で。
UNSLOTH_STUDIO_ALLOW_STDIO_MCP
1 トンネルが有効でもstdio MCPサーバーを有効のままにします; 0 強制的に無効化します。
🌐 HTTP API
4つすべてに UIセッションが必要で、 APIキーは次のエラーで拒否されます 403 リモートアクセスにはUIセッションが必要です。 拒否された操作は 409 詳細としてブロック理由を返します。
GET
/api/settings/remote-access
現在の状態、URL、所有者、 開始可能 / 停止可能, ブロック理由.
POST
/api/settings/remote-access/start
設定所有の開始を予約します。冪等です。
POST
/api/settings/remote-access/stop
設定所有の停止を予約します。自動開始設定は変更しません。
PUT
/api/settings/remote-access/auto-start
{"enabled": true|false}。Colabでは拒否されます。
最終更新
役に立ちましたか?

