Xvfbで作った仮想ディスプレイにリモートデスクトップ接続する

昨日の続き

仮想ディスプレイのスクリーンショットを撮って中の様子がわかるようになったのはよいですが、確認するたびにxwdでキャプチャしてconvertで変換してってやるのは大変です。静止画だとよくわからないってのもあります。

調べてたらどうやらVNCリモートデスクトップ接続のようなことができそうだったのでやってみました。

必要なもの

  • fluxbox
  • x11vnc

fluxboxはウィンドウマネージャ。x11vncはきっとX Windows System用のVNCサーバなのだと思います。

この2つをインストールします。

makoto@hp-laptop:~$ sudo apt-get install fluxbox x11vnc


CentOSだと標準リポジトリには入っていなかったので、rpmforgeからインストールします。

makoto@hp-laptop:~$ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
makoto@hp-laptop:~$ sudo rpm -Uhv rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
makoto@hp-laptop:~$ sudo yum install fluxbox x11vnc --enablerepo=rpmforge

fluxboxとx11vncを起動

その前にXvfbを起動しておきます。「-screen」オプションの後にスクリーン番号と解像度と色数を指定しました。これでフルカラーな感じになるはずです。
起動する前に環境変数DISPLAYに「:1」を設定しておきます。

makoto@hp-laptop:~$ export DISPLAY=:1
makoto@hp-laptop:~$ Xvfb :1 -screen 0 1024x768x24 &


fluxboxをバックグラウンドで起動します。

makoto@hp-laptop:~$ fluxbox &


x11vncをこれまたバックグラウンドで起動します。

makoto@hp-laptop:~$ x11vnc -display :1 -bg -nopw -listen localhost -xkb

オプション

-display ディスプレイ番号を指定
-bg バックグラウンドで起動
-nopw パスワードなし
-listen 接続を待ち受けるIPアドレス
-xkb XKEYBOARDという拡張機能を有効にする

「-listen」は「localhost」だと外から接続できないみたいです。「0.0.0.0」を指定したら外から接続できました。

VNC Viewerでリモートデスクトッ付接続

VNCが起動したので、リモートデスクトップ接続をしてみます。リモートデスクトップ・ビュアーというアプリを起動して、localhostに接続します。

接続したところです。ディスプレイに何も起動していないので何もないですね。

コマンドラインからfirefoxを起動したところです。マウスやキーボードが普通に使えるので、ここからURLを指定してページを開くこともできます。

yahooのページを開いてみました。色数を24bitに指定したので、キレイに写っています。