このページではLinuxで構築した自宅サーバーVNCを利用するためのvncserverの便利な設定について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
VNCサーバーの構築

VNCについて

サーバー機の環境について

VNCクライアントの準備

VNCサーバーの基本設定

VNCサーバーのお便利設定

VNCサーバーの一括起動

SSH転送による暗号化接続


デフォルトの画面解像度と表示カラーの設定

WBEL CentOS に標準で インストール される vnc-server は、 VNC クライアント 側で開く X-Window デフォルト のサイズとカラーが、

1024×768ピクセル(XGAモード)・16 ビット カラー(最大65536色)

に設定されています。

この設定で実用上問題がなければそのままでも構わないのですが、VNCクライアント側のモニタがXGAあるいはそれよりも小さい場合には使い勝手が悪くなるでしょうし、非常に解像度の高い大きなモニタをお使いの場合はもっと広いX-Window画面を開きたいと思うかもしれません。

ところがVNCを利用する場合は、画面の大きさは使い勝手だけで決めてしまうわけにはいかないという事情があります。

なぜならX-Windowの画面が広くなり、更に色数が多くなるほど 構築中のLinuxサーバー からパソコンへのデータ転送量が増えてしまい、使い勝手と引き換えに快適さが犠牲になってしまうことになるからです。

例えば低速な無線 LAN で接続しなければならない場合、デフォルトのXGA+16ビットの設定でも画面の反応が遅くて使いづらいかもしれません。

VNCで利用する画面の解像度と表示カラーは "vncserver" を実行するときにオプションで指定できます(このページの後半で説明します)。

そして実際に条件を変えながら何度かテストをやってみて、操作性と快適性のバランスから一番良く利用すると思われる条件を見つけたら、これをデフォルトの設定としておくと後々面倒がありません。

そしてその設定値は "vncserver"(正確には"/usr/bin/vncserver") Perl スクリプト の一部として記述されていますので、この部分を書き換えればOKです。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド アカウント "root" に変更し、 cp コマンドでバックアップを作成した後、 nano エディタで "/usr/bin/vncserver" を開きます nanoエディタでファイルを開く

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /usr/bin/vncserver /usr/bin/vncserver.orgEnter
[root@web1 ~]# nano /usr/bin/vncserverEnter


nanoで/usr/bin/vncserverを開く
nanoで"/usr/bin/vncserver"を開く

Xvnc 起動時の画面のデフォルト設定は、このファイルの 36行目 37行目 に記述されています。

#
# Global variables. You may want to configure some of these for your site.
#

$geometry = "1024x768";
$depth = 16;

$vncJavaFiles = (((-d "/usr/share/vnc/classes") && "/usr/share/vnc/classes") ||
         ((-d "/usr/local/vnc/classes") && "/usr/local/vnc/classes"));
$vncUserDir = "$ENV{HOME}/.vnc";
$xauthorityFile = "$ENV{XAUTHORITY}" || "$ENV{HOME}/.Xauthority";

この部分を、

"x" はアルファベット小文字の エックス です。

$geometry = "[画面の横ピクセル数]x[画面の縦ピクセル数]";

$depth = [画面のビットカラー];

として書き換えればOKです。

"$geometry" の値は任意に設定できます。

もちろんモニタとして常識的な解像度を設定するようにしましょう。

実機を使う場合にはグラフィックカードやモニタがサポートできる解像度以外は指定できませんが、VNCの場合はウィンドウの中に画面を表示するだけですのでそういった制約はありません。

"$depth" は通常、 8 (256色)、 16 (最大65536色)、 24 (最大約1600万色)のいずれかを指定するようにします。

vnc-serverの仕様では、8〜32の範囲で任意に設定することができるようになっていますが、実際には8、16、24以外の値を設定するときちんと表示されないことが多いようです。

また、最近のパソコンは8 ビット カラーを標準でサポートしていないものが多くなっていますから、お使いのパソコンによっては 8 を指定するとパソコン側で減色処理(ディザリング処理)を行わなければならないケースがあり、かえって動作速度が遅くなってしまうことがありますので注意してください。

編集が終わったらファイルを保存して nano エディタを閉じてください nanoエディタでファイルを閉じる

次の "vncserver" の実行から設定が有効になります。

このページの先頭へ↑

デフォルトのデスクトップ環境を指定する

VNCのデフォルトのデスクトップ環境の設定 で説明したとおり、 vnc-server では "twm" デフォルト のデスクトップ環境です。

従って新規の ユーザーアカウント に対して "vncserver" を実行した後には、必ず ホームディレクトリ 以下の ".vnc/xstartup" の修正を行わなければ、そのユーザーアカウントは GNOME を利用することができません。

これはあまりにも面倒なので、新規に "vncserver" を実行したときからGNOMEが指定されるように設定を変更しましょう。

編集する設定ファイルはデフォルト画面の設定と同じく "vncserver"(正確には"/usr/bin/vncserver") ですので、同じ要領でファイルを開きます。

該当する記述は 43行目〜52行目 です。

$defaultXStartup
  = ("#!/bin/sh\n\n".
    "# Uncomment the following two lines for normal desktop:\n".
    "# unset SESSION_MANAGER\n".
    "# exec /etc/X11/xinit/xinitrc\n\n".
    "[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
    "xsetroot -solid grey\n".
    "vncconfig -iconic &\n".
    "xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
    "twm &\n");

この記述を見て「あっ!」と思われる方も多いと思います。

実はこの部分が ".vnc/xstartup" のへ テキスト を出力するための変数の設定値になっています。

デフォルトの.vnc/xstartup
デフォルトの".vnc/xstartup"

というわけですから、この部分を次のように書き換えておけば、最初から WBEL CentOS の標準デスクトップ環境であるGNOMEが起動する ".vnc/xstartup" が作成されるようになります。

$defaultXStartup
  = ("#!/bin/sh\n\n".
    "# Uncomment the following two lines for normal desktop:\n".
    "unset SESSION_MANAGER\n".
    "exec /etc/X11/xinit/xinitrc\n\n".
    "#[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
    "#xsetroot -solid grey\n".
    "#vncconfig -iconic &\n".
    "#xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
    "#twm &\n");

"unset" "exec" の前のコメント記号 "#" の削除を忘れないようにしてください。

編集が終わったらファイルを保存して nano エディタを閉じてください nanoエディタでファイルを閉じる

次回からユーザーアカウントに対して新規に "vncserver" を実行したときから設定が有効になります。

このページの先頭へ↑

vncserverの起動オプションについて

このページの最初の項目で、 "vncserver" が実行されるときの デフォルト の画面解像度と表示カラーの設定を行いましたが、この設定は 構築中のLinuxサーバー VNC サーバー として利用する クライアント すべてに対して有効になります。

ですから、画面の大きなデスクトップパソコンと画面の小さなモバイルパソコンを使い分けている方や、複数のユーザーがVNCを共用するような場合は、それぞれのパソコンや通信環境に応じて画面解像度と表示カラーを変更したいところです。

また、 "vncserver" は実行した順に ディスプレイ番号 がセットされますから VNCのディスプレイ番号について 、複数の接続が行われる環境ではVNCを利用しようとするたびにディスプレイ番号が変化してしまう可能性があります。

しかし "vncserver" は、適当なオプションを追加して実行することで、これらの条件を強制的に指定して実行することができるようになっています。一般式は、

vncserver :[ディスプレイ番号] -geometry [横解像度]x[縦解像度] -depth [カラービット] Enter

となります。

[tanaka@web1 ~]$ vncserver :2 -geometry 900x500 -depth 24Enter

New 'web1.obenri.com:2 (tanaka)' desktop is web1.obenri.com:2

Starting applications specified in /home/tanaka/.vnc/xstartup
Log file is /home/tanaka/.vnc/web1.obenri.com:2.log

[tanaka@web1 ~]$

↓ VNCクライアントから"web1.obenri.com:2"で接続

VNCクライアントからの接続画面
VNCクライアントからの接続画面

ここで指定する画面解像度と表示カラーは "vncserver" の中に書かれている設定よりも優先されるようになっています。

「いちいちオプションをタイプするのが面倒!。」という方は、専用の起動 スクリプト を作成しておくという方法があります。

例えば ホームディレクトリ の中に、

#!/bin/bash
/usr/bin/vncserver :2 -geometry 900x500 -depth 24

条件を指定してvncserverを実行するスクリプト"myvnc.bash"

という内容のテキストファイルをnanoエディタで作成し nanoエディタでファイルを開く 、例えば "myvnc.bash" のような名前をつけて保存します nanoエディタでファイルを開く

そして chmod コマンド で実行属性を与えます 実行属性のパーミッションについて

次回からはこれを起動すれば面倒なオプションの設定は不要でvncserverを間接的に実行できるようになります。

[tanaka@web1 ~]$ cat myvnc.bashEnter  ←ファイルの内容を確認してみます。 catコマンドについて
#!/bin/bash
/usr/bin/vncserver :2 -geometry 900x500 -depth 24
[tanaka@web1 ~]$ chmod 700 myvnc.bashEnter
[tanaka@web1 ~]$ ./myvnc.bashEnter  ←実行には先頭に"./"が必要です パスが通っていない場所の実行ファイル

New 'web1.obenri.com:2 (tanaka)' desktop is web1.obenri.com:2

Starting applications specified in /home/tanaka/.vnc/xstartup
Log file is /home/tanaka/.vnc/web1.obenri.com:2.log

[tanaka@web1 ~]$

起動スクリプトを作ったら、同じディスプレイ番号に対応する終了スクリプト "myvncstop.bash" も作っておきましょう。

#!/bin/bash
/usr/bin/vncserver -kill :2

vncserverの終了スクリプト"myvncstop.bash"

これで解像度やディスプレイ番号を意識しないで Xvnc の起動/終了ができるようになりました。

このページの先頭へ↑

X-Windowはできるだけシンプルな画面にするのがコツ

直接の サーバー 設定というわけではありませんが、 VNC を快適に利用したいときの定石として、

「表示画面をできるだけシンプルにする。」

というのがあります。

お便利サーバー.com管理人もその例外ではありません。
きれいなデスクトップ画面よりも、サクサクキビキビ使えるデスクトップ画面のほうが絶対楽しいです。

WBEL CentOS に限らず、最近の OS のデスクトップ画面は必要以上に華美になる傾向にありますが、パソコンをバリバリ使いこなしている方の多くは、動作を少しでも早くするためにできるだけシンプルな画面になるように設定を変更しているはずです。

特に、画面のデータをネットワークで転送しなければならないVNCにとって、転送すべきデータ量は少ないに越したことはありません。

転送すべきデータ量が少なければ、それだけ クライアント での操作が滑らかになり、同時にネットワーク上に流れるデータ量も少なくなりますから他の通信の妨げになりにくくなります。

もちろん、画面解像度を小さくして表示カラーを減らすのが最も効果は高いのですが、特に画面解像度については必要以上に小さくしてしまうと作業性が悪くなりますので、これには自ずから限度というものがあります。

しかし、画面上の効果や装飾は少なくとも操作上になんら影響を与えるものではなく、あくまで「気分」の問題ですから無効にして構わないはずです。

例えば、

1.デスクトップの背景に画像やグラデーションを使わない。

2.ウインドウのテーマはできるだけシンプルなものを選択する。

3.フォントのアンチエイリアスを無効にする。

の三つだけでも、VNCクライアント側の動作は驚くほど高速化します。

画面はできるだけシンプルにする(GNOME/WBEL3)
画面はできるだけシンプルにする(GNOME/WBEL3)

見かけはあまり良いとはいえませんが、それと引き換えに手に入る「快適性」には余りあるものがあると思います。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System