Mac 上で標準的な VNC サーバーを実行し、画面・クリップボード・ファイル、さらには IME まで QuickRemote と共有できます。すべてローカルネットワーク上で完結し、クラウドの中継サーバーは使いません。
使いはじめる
1. パスワードを設定する
設定(下部ツールバーの歯車アイコン)を開き、次の項目を入力します: VNC パスワード。標準的な VNC クライアントは RFB の DES チャレンジを使用し、ASCII 互換の先頭 8 バイトしか扱えません。8 文字以内のパスワードを選んでください。
短いパスワードについて: これは DeskVNCServer ではなく RFB プロトコル自体の制約です。より強固な認証が必要な場合は、サーバーをプライベートネットワークに限定するか、QREX フロー(PIN ペアリング後の Bearer トークン)を使い、VNC パスワードを無効にしてください。
2. サーバーを起動する
- メインウィンドウで 開始をクリックします。ステータスインジケーターが次に変わります: Running.
- 4 つのリスナーが同時に起動します: VNC
5900、QREX 制御5911、QREX メディア4010、ファイル API8766. - クリック 情報をコピー をクリックすると、ホスト・ポート・現在の PIN をまとめた 1 行の情報がクリップボードにコピーされます。
3. クライアントを接続する
標準的な VNC ビューアー(macOS の画面共有、RealVNC、TightVNC、モバイルの VNC アプリ)の場合:
- ビューアーを開き、アドレスとして
vnc://<your-mac-ip>:5900を入力します - 手順 1 で設定した VNC パスワードを入力します
- すぐに Mac を操作できます。キーボード、マウス、RFB 経由のコピー&ペーストが利用できます
QuickRemote アプリの場合:
- スマートフォンまたはタブレットで QuickRemote を開き、次を選びます: Add Mac
- DeskVNCServer に表示される 6 桁のペアリング PIN を入力します(お使いの QuickRemote が対応していれば QR コードの読み取りでも可)
- QuickRemote は返された Bearer トークンを保存し、IME・オーディオ・クリップボード同期・ファイル転送といった拡張機能が利用可能になります
画面の構成
ステータス行
| 要素 | 説明 |
|---|---|
| Server ラベル | このパネルを識別するためのものです。 |
| ステータスバッジ | Running リスナーが動作中は次を表示し、そうでない場合は Stopped になります。 |
操作ボタン
- 開始 — 4 つのリスナーをすべて起動します。
- 停止 — すべてのリスナーを閉じ、接続中のセッションを切断します。
- 情報をコピー — 接続情報の要約(ホスト、VNC ポート、制御ポート、PIN)をクリップボードにコピーします。クライアントへの共有に便利です。
接続パネル
バインド先のホスト、ポート、現在の Server ID、有効なペアリング PIN を表示します。設定を変更すると自動的に更新されます。
QuickRemote API パネル
サーバーが対応するプロトコルのクイックリファレンスです。対応する RFB のバージョン、QREX エンドポイントの形式、IME コマンドの一覧を表示するため、QuickRemote(や自作クライアント)から何が利用できるかが分かります。
プロトコルとポート
| サービス | 既定のポート | プロトコル | 利用するクライアント |
|---|---|---|---|
| VNC / RFB | TCP 5900 | RFB 3.8 / 3.7 / 3.3 | 標準的な VNC クライアント全般 |
| QREX 制御 | TCP 5911 | HTTP JSON RPC + WebSocket | QuickRemote およびその他の QREX クライアント |
| QREX メディア | UDP 4010 | QuickRemote 互換のパケット | IME メッセージ、オーディオストリーミング |
| ファイル API | TCP 8766 | QuickRemote 互換の HTTP | ファイルの参照と転送 |
認証
- VNC クライアント — RFB の DES パスワード(設定したパスワードのうち ASCII 互換の先頭 8 バイト)。
- QREX クライアント — 最初に 6 桁の PIN を
POST /qr/v1/pairで交換すると Bearer トークンが返されます。以降のすべての QREX HTTP 呼び出しと WebSocket フレームには次を含める必要があります:Authorization: Bearer <token>. - VNC パスワードが空の場合、サーバーは標準の RFB 無認証モードを提示します。信頼できる LAN セグメントでのみ使用してください。
QREX エンドポイントのクイックリファレンス
GET /qr/v1/capabilities # 公開。対応機能を返します
POST /qr/v1/pair # 公開。PIN を Bearer トークンと交換します
GET /qr/v1/ws # WebSocket。認証が必要
POST /qr/v1/ime/get # 認証が必要。有効な IME を取得
POST /qr/v1/ime/list # 認証が必要。利用可能な IME を一覧
POST /qr/v1/ime/set # 認証が必要。IME を切り替え
POST /qr/v1/ime/toggle # 認証が必要。IME のオン/オフを切り替え
POST /qr/v1/ime/commit # 認証が必要。テキスト文字列を確定
設定
| 設定 | 既定値 | 説明 |
|---|---|---|
| バインドホスト | 0.0.0.0 | 待ち受けるインターフェイスです。localhost のみに限定するには次を指定します: 127.0.0.1 を指定すると localhost のみになります。 |
| VNC ポート | 5900 | 標準の RFB リスナー用 TCP ポートです。 |
| QREX 制御ポート | 5911 | HTTP + WebSocket の QREX 通信用 TCP ポートです。 |
| QREX メディア UDP ポート | 4010 | IME とオーディオのサイドチャネルパケット用 UDP ポートです。 |
| QuickRemote ファイル API ポート | 8766 | ファイルの参照・転送 API 用 TCP ポートです。 |
| VNC パスワード | (空) | ASCII 互換で最大 8 バイトまで。空欄の場合、VNC チャネルは無認証になります。 |
| QREX Bearer トークン | (自動生成) | ペアリング時に発行された有効なトークンです。再ペアリングするか、この欄を編集すると再生成されます。 |
| ペアリング PIN | (自動生成) | ペアリング時に QuickRemote に表示される 6 桁の PIN です。再生成すると値が変わります。 |
| 固定サーバー ID | (自動生成) | QuickRemote がこの Mac を識別するために使う、長期間有効な識別子です。 |
| サーバーを自動起動 | オフ | アプリの起動時にリスナーを立ち上げます。 |
| リモートのキーボードとマウスを許可 | オン | オフにするとセッションが表示専用になります。 |
| IME ブリッジを有効にする | オン | QREX クライアントから macOS の入力メソッドを取得・操作できるようにします。 |
| オーディオ API を有効にする | オフ | QREX メディア UDP 経由で Opus オーディオのストリーミングを許可します。CPU 節約のため既定ではオフです。 |
| クリップボード同期を有効にする | オン | Mac とリモートクライアントの間でクリップボードの内容を同期します。 |
| ファイル転送を有効にする | オン | QuickRemote からのファイル一覧取得と読み取りを許可します。変更操作も有効にしない限り読み取り専用です。 |
| ファイルの変更を有効にする | オフ | アップロード、名前の変更、削除を許可します。既定ではオフです。信頼できるクライアントの場合のみオンにしてください。 |
| 最大フレーム幅 | 1440 | 画面キャプチャの幅の上限です。値を小さくすると帯域を節約できます。 |
| 最大フレーム高さ | 900 | 画面キャプチャの高さの上限です。 |
| フレームレート | 12 | クライアントに送信する 1 秒あたりのフレーム数の目標値です。 |
クライアントの例
macOS の画面共有
- Finder → 移動 → サーバへ接続
- 次を入力します:
vnc://<your-mac-ip>:5900 - VNC パスワードを入力します
cURL — 対応機能を確認する
curl http://<your-mac-ip>:5911/qr/v1/capabilities
cURL — ペアリングして IME ブリッジを呼び出す
# 1. PIN を Bearer トークンと交換します
TOKEN=$(curl -s http://<your-mac-ip>:5911/qr/v1/pair \
-H "Content-Type: application/json" \
-d '{"pin":"123456"}' | jq -r .token)
# 2. IME ブリッジ経由でテキストを確定します
curl http://<your-mac-ip>:5911/qr/v1/ime/commit \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"text":"hello from remote"}'
ヒント
- Wi-Fi の回線が遅い場合や VPN 経由で接続する場合は、フレームレートと最大フレームサイズを下げてください。
- デバイスごとに一度ペアリングしておきましょう。最初の PIN 交換後は Bearer トークンが再起動後も保持されるため、QuickRemote は自動的に再接続します。
- 次を使用: 情報をコピー を使うと、クライアントに必要な情報がすべて含まれた接続情報をチャットやメールで手軽に送れます。
- 次はオフのままにしてください: ファイルの変更を有効にする は、アップロードが本当に必要な場合を除いてオフのままにしてください。スクリーンショットやメモ、ダウンロードを閲覧するだけなら読み取り専用モードで十分です。
- 使用しないときはオーディオ API を無効にしてください。アイドル状態のコーデックでもエンコード処理で少量の CPU を消費します。
トラブルシューティング
サーバーが起動しない
- 他の VNC サーバー(macOS の画面共有など)がすでにポート 5900 を使用している可能性があります。システム設定 → 一般 → 共有 から停止するか、DeskVNCServer の設定でポートを変更してください。
- ポート 5911 / 4010 / 8766 はすべて空いている必要があります。次のようなコマンドで確認してください:
lsof -i :5911などのコマンドで確認できます。
VNC クライアントの認証に失敗する
- パスワードが ASCII 互換で 8 バイト以内であることを確認してください。マルチバイト文字や長い文字列は RFB の DES 認証によって黙って切り詰められます。
- 意図的にパスワードなしにしたい場合は、欄を空のままにして、VNC の無認証に対応したビューアーで接続してください。
QuickRemote がペアリングできない
- スマートフォンやタブレットが Mac と同じ Wi-Fi に接続されているか確認してください。
- 接続パネルを開いて PIN を確認し直してください。PIN は設定から再生成できます。
- macOS のファイアウォール設定を確認してください。QREX ポートへの受信接続を許可する必要があります。
リモート操作の反応が遅い
- 設定でフレームレートと最大フレームサイズを下げてください。
- 使用していない機能(オーディオ、クリップボード、IME)を無効にして CPU を空けてください。
ファイルが転送されない
- 次を確認してください: ファイル転送を有効にする がオンになっていることを確認してください。読み取り専用の一覧取得は次がなくても動作します: ファイルの変更を有効にする.
- アップロードが失敗する場合は、次も有効にしてください: ファイルの変更を有効にする。有効にしないと、ファイル API は読み取りリクエストにしか応答しません。
プライバシー
- すべてのセッションはクライアントと Mac の間で直接行われます。クラウドの中継サーバー、テレメトリ、アナリティクスはいずれもありません。
- VNC パスワード、QREX Bearer トークン、ペアリング PIN、固定サーバー ID は、ローカルのアプリ設定内にのみ保存されます。
- ファイルの変更操作は既定でオフです。書き込み権限を明示的に付与するまで、リモートクライアントは読み取りしかできません。
- 拡張機能(オーディオ、クリップボード、ファイル転送、IME、リモート入力)はいつでも無効にでき、その機能はただちに取り消されます。
- サーバーを Mac 内だけに閉じたい場合は、バインドホストに次を設定してください:
127.0.0.1.