さくらのVPSを利用していてVNCコンソールのHTML5版を利用しようとしたところ、「noVNC ready: native WebSockets, canvas rendering」というメッセージが表示されてしばらく待つと「Server disconnected (code: 1006)」というエラーになり繋がりませんでした。
原因
パケットキャプチャをするなどして確認してみたところ、どうやら変なポートで接続にいってる感じです。
解決策
SSL(443ポート)でのやり取りの後に、VNCの段階ではランダムなポート(32768~61000)を自動割当されて接続するみたいです。 というわけで社内からの利用の場合は、VNCコンソール用のサーバ(例えば vncgw1.vps.sakura.ad.jp
)宛の接続でポート(32768~61000)宛の接続ポリシーを追加する必要があります。
すなわち接続するための条件として下記の事前設定が必要となります。
- ウェブブラウザの443番ポート、VNCプロキシサーバへの22番ポートへのアクセスを許可しているかどうか
- novnc サーバ(vncgw1.vps.sakura.ad.jp と vncgw2.vps.sakura.ad.jp)へのアクセスを許可しているかどうか
- WebSocketの番号をランダムで発行しているため、32768~61000までのアクセスを許可しているかどうか
ただ、あまりに広範囲なのでANYとするのが得策かもしれませんね‥。