ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

さくらVPSのVNCコンソールを手動で開く

さくらVPSには、仮想マシンのコンソールにVNCでアクセスする機能があります。
以前は重宝していたのですが、Java7 に対応していないので使えなくなっていました。


しかし、Java6 は既にメンテナンスされておらず、
このためだけに既にメンテナンスが切れた古い JRE をインストールするのも流石に……


というわけで、手作業で無理やり接続してみました。


今回は普段使っている PuTTY と、
さくらVPSでも使っているという TightVNC の、Windows バイナリ版で動作確認しました。

VNCサーバの準備

Webから通常通りVNCコンソールを開こうとすれば、
サーバ側の接続設定は完了します。


HTMLページのソースを開くと、applet タブに接続のための情報が載っています。

  <applet archive="../applet/TightVncViewer.jar"
    code="com.tightvnc.vncviewer.VncViewer"
    width="500" height="0">
    <param name="CODEBASE" value="./" />
    <param name="SOCKETFACTORY" value="com.tightvnc.vncviewer.SshTunneledSocketFactory" />
    <param name="SSHHOST" value="vnc@210.224.172.111" />
    <param name="HOST" value="localhost" />
    <param name="PORT" value="55304" />
    <param name="PASSWORD" value="abcpass" />
    <param name="Open new window" value="Yes" />
    <param name="Offer relogin" value="No" />
  </applet>

こんな感じ。ポート番号とパスワードは毎回変わるようです。
上のは例示のために適当な番号と文字を埋めました。

SSHトンネルの準備

SSHHOST の行の通り、210.224.172.111 に vnc ユーザで接続します。
この時のパスワードは不要です。IP の末尾は 110 になることもあるようです。


この際にシェル・コマンドの実行をしないよう、設定する必要があるので注意です。
これを忘れると接続確立後に即クローズされます。


トンネルの設定は、ローカルの適当なポート番号を、リモートの localhost:55304 に設定します。
リモート側の設定はHTMLに埋めてあったHOST:PORTの通りです。

VNCクライアントから接続

VNCクライアントを立ち上げて、localhost のトンネルで設定したポートに接続します。
この時、VNCのパスワードを聞かれるので、PASSWORDの欄にあった文字列を打ち込みます。


これで、VPSマシンのコンソールが表示されました。


2014/05/07追記

HTML5モードが実装されたようなので、
もうこの記事は不要になりました。
http://support.sakura.ad.jp/mainte/mainteentry.php?id=13146