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

VNCについて

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

VNCクライアントの準備

VNCサーバーの基本設定

VNCサーバーのお便利設定

VNCサーバーの一括起動

SSH転送による暗号化接続


常にVNC接続でサーバーを管理したい場合には

構築中のLinuxサーバー に対してパソコンから VNC で接続するには、通常、

1. SSH クライアント から サーバー に接続する。

2. プロンプト から "vncserver" を実行する。

3.VNCクライアントを起動して接続する。

という手順が必要です。

VNCはたまにしか使わない、というのであれば大した手間でもありませんが、サーバー設定の基本インターフェースとしてVNCを利用したいのであれば、もっと簡単に接続できたほうが便利です。

WBEL CentOS に標準で インストール される vnc-server には、他の多くのサーバー アプリケーション と同様に ホスト機 の起動時に自動的に Xvnc デーモン 起動する仕組みが準備されていますから、この方法を使えば 3. の手順だけでVNC接続を行うことができるようになります。

方法は比較的簡単で、

1.vnc-serverの利用設定が完了している ユーザーアカウント "/etc/sysconfig/vncservers" に登録する。

2. ntsysv コマンド "vncserver" (正確には"/etc/rc.d/init.d/vncserver")の起動を有効にする。

だけで済みます。

この方法はWBELとCentOSのいずれでも使えますが、WBEL4及びCentOS4では個々のvncserverについてディスプレイ番号の他に画面解像度と表示カラーを指定して起動できるのですが、残念ながら WBEL3やCentOS3ではディスプレイ番号のみの指定しかできない という仕様上の制約があります。

そこでこのページではWBEL3やCentOS3をお使いの方の不便を解消する意味で、ntsysvを利用したvncserverの自動起動設定の他に、 "/etc/rc.local" への記述で同様の自動起動を実現する方法も合わせて解説します。

このページの先頭へ↑

"/etc/sysconfig/vncserver"の編集とVNCの起動設定

WBEL4及びCentOS4の場合の設定

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

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

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /etc/sysconfig/vncservers /etc/sysconfig/vncservers
.org
Enter
[root@web1 ~]# nano /etc/sysconfig/vncserversEnter


nanoで/etc/sysconfig/vncserversを開く
nanoで"/etc/sysconfig/vncservers"を開く

"#" でコメント化されていますが、最後の二行が例文です。

この例文を参考にして、ファイル末尾に以下のような記述を書き加えてください。

VNCSERVERS="ディスプレイ番号:ユーザーアカウント名"

解像度とカラービットの設定値については 解像度とカラービットの設定値 を参考にしてください。

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

"VNCSERVERARGS" が設定されない場合、画面解像度と表示カラーは "/usr/bin/vncserver" 内の記述に従うことになります /usr/bin/vncserverの解像度とカラービットの記述について

例えば "tanaka" に対してディスプレイ1番で Xvnc を起動したい場合は、

VNCSERVERS="1:tanaka"
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
ユーザーアカウントはスペースで区切って横に並べますが、解像度とカラービットはディスプレイ番号毎に行を変えて記述します。
なんだか変な感じですが。

のように記述します。また、

VNCSERVERS="1:tanaka 2:root"
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
VNCSERVERARGS[2]="-geometry 1280x960 -depth 16"

のように、複数のユーザーアカウントに対して設定を行うこともできます。

もちろん、ここで指定するユーザーアカウントに対しては VNCサーバーの基本設定 以降の方法で予めVNC接続のための設定が行われていなければならないことに注意してください。

設定が終わったらファイルを保存して nano エディタを閉じます nanoエディタでファイルを閉じる

次に、テスト起動を行ってみましょう。

[root@web1 ~]# /etc/init.d/vncserver startEnter
VNC サーバー を起動中: 1:tanaka 2:root          [ OK ]
[root@web1 ~]#

このように起動のメッセージが確認できたら、VNCクライアントからの接続を行ってみましょう。

エラーメッセージが表示される場合は、 "/etc/sysconfig/vncservers" および各ユーザーアカウントの個別のvnc-serverの設定に誤りがないかどうかを確認してみてください。

最後に ntsysv コマンド で設定画面を開き、 "vncserver" にチェックを入れます。

vncserverをntsysvで自動起動登録する
"vncserver"を"ntsysv"で自動起動登録する

設定が終わったら念のため一度 構築中のLinuxサーバー reboot コマンドで再起動し、VNCクライアントから接続を行ってみてきちんと起動しているかどうかをチェックしてみてください。

CentOS5の場合の設定

CentOS5 の場合でも基本的な設定方法は WBEL4 やCentOS4と変わりはありません。

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

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

[tanaka@web1 ~]$ su -Enter
パスワード: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /etc/sysconfig/vncservers /etc/sysconfig/vncservers
.org
Enter
[root@web1 ~]# nano /etc/sysconfig/vncserversEnter


nanoで/etc/sysconfig/vncserversを開く
nanoで"/etc/sysconfig/vncservers"を開く

"#" でコメント化されていますが、最後の二行が例文です。

CentOS5で インストール されているバージョンの vnc-server には、例文にあるように セキュリティ 向上のためのオプションが追加されています。

"-nolisten tcp": 接続に TCP を利用しない。

"-nohttpd": Webブラウザ での接続 WebブラウザによるVNC接続について を禁止する。

リモート接続のプロトコルなのに、どうして「自ホストしか接続を許可しない」という一見無意味に思えるオプションが存在するのかというと、自ホスト内のセキュアプロトコルサーバー(例えば SSH )を介してのみVNC接続を行う SSH転送によるVNC接続について 、という選択肢があるためです。

"-localhost": 自ホスト以外からの接続を禁止する。

一般的にいえば、自宅の LAN 内の ホスト を扱うユーザーは信頼できますから、これらのオプションを使ってセキュリティを強化する必要はないでしょう。

そもそも VNC クライアント から 構築中のLinuxサーバー に接続するためには、予め サーバー 側で ユーザーアカウント 毎に Xvnc を起動しておかなければなりませんから、「LAN内のパソコンから知らないうちに勝手に接続される。」ということは想定する必要はないはずです。

以上のような理由から、せっかく設けてもらったセキュリティオプションですが、 構築中のLinuxサーバー 上では結果として全く考える必要はないということになります。

というわけで、CentOS5での "/etc/sysconfig/vncservers" の設定は上で説明したWBEL4及びCentOS4の設定方法と全く同じで構いません。

もちろん ntsysv コマンド による自動起動設定の方法も同じです。

WBEL3及びCentOS3の場合の設定

設定の手順や方法は WBEL4 及び CentOS4 と基本的には変わりませんが、WBEL3及びCentOS3の "/etc/sysconfig/vncservers" には "VNCSERVERARGS" の設定ができません。

従ってここでは画面解像度や表示カラーを指定して Xvnc を起動することはできなくなっています。

WBEL3の/etc/sysconfig/vncservers
WBEL3の"/etc/sysconfig/vncservers"

またここからは、 vncseverのオリジナル起動スクリプト で作成した シェル スクリプト を呼び出すこともできませんから、結局Xvnc起動時の画面解像度はユーザーアカウントに関係なく "/usr/bin/vncserver" 内の記述に従うことになります /usr/bin/vncserverの解像度とカラービットの記述について

このページの先頭へ↑

"/etc/rc.d/init.d/vncserver"のコントロール

以下は Xvnc "/usr/bin/vncserver" から個別に起動するのではなく、制御 スクリプト "/etc/rc.d/init.d/vncserver" を利用して扱う場合の説明です。

"/etc/rc.d/init.d/vncserver" は、予めディレクトリ "/etc/rc.d/init.d/" シンボリックリンク "/etc/init.d/" で作成されていますので、 "/etc/init.d/vncserver" でも実行することができます。

このシェルスクリプトが格納されているディレクトリには パス が通っていませんのでパス名付きで実行する必要があります パスが通っていない場所のファイルを実行するには

パス名を付けずに コマンド 名"vncserver"のみで実行すると、パスが通っているXvncの Perl スクリプト "/usr/bin/vncserver" vnc-serverの構成ファイル が呼び出されてしまいますので注意してください。

書式は以下のとおりです。作業はすべてroot アカウント から行います。

/etc/init.d/vncserver start...vnc-serverの起動

/etc/init.d/vncserver stop...vnc-serverの停止

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# /etc/init.d/vncserver startEnter
VNC サーバー を起動中: 1:tanaka 2:root           [ OK ]
[root@web1 ~]# /etc/init.d/vncserver stopEnter
VNC サーバー を停止中: 1:tanaka 2:root           [ OK ]
[root@web1 ~]#

VNCサーバー関連の設定ファイルを作成しなおした後には、以下のコマンドを実行します。

/etc/init.d/vncserver restart...vnc-serverの再起動

[root@web1 ~]# /etc/init.d/vncserver restartEnter
VNC サーバー を停止中: 1:tanaka 2:root           [ OK ]
VNC サーバー を起動中: 1:tanaka 2:root           [ OK ]
[root@web1 ~]#

vnc-serverが現在稼動してるかどうかを確認するには、

/etc/init.d/vncserver status...vnc-serverの状態確認

あるいは、 ps コマンドで起動プロセスを確認します。

[root@web1 ~]# /etc/init.d/vncserver statusEnter
Xvnc (pid 3812 3774) を実行中...
[root@web1 ~]# ps ax | grep XvncEnter パイプ処理の説明 grepコマンドの説明
3774 pts/0  S   0:01 Xvnc :1 -desktop web1.obenri.com:1 (tanaka) -httpd /usr/share/vnc/classes -auth /home/tanaka/.Xauthority -geometry 800x600 -depth 8 -rfbwait 30000 -rfbauth /home/tanaka/.vnc/passwd -rfbport 5901 -pn
3812 pts/0  S   0:00 Xvnc :2 -desktop web1.obenri.com:2 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 640x480 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5902 -pn
 ↑Xvncが実行中であることを示します。
4060 pts/0 S+ 0:00 grep Xvnc
 ↑このgrepコマンドのプロセスです。
[root@web1 ~]# /etc/init.d/vncserver stopEnter
VNC サーバー を停止中: 1:tanaka 2:root           [ OK ]
[root@web1 ~]# /etc/init.d/vncserver statusEnter
Xvnc は停止しています
[root@web1 ~]# ps ax | grep XvncEnter
4107 pts/0 R+ 0:00 grep Xvnc
[root@web1 ~]#

"/etc/init.d/vncserver" は個々の Xvnc を、 "/etc/sysconfig/vncservers" に記述されている ユーザーアカウント の権限で起動します。

従ってXvncの起動を "/etc/init.d/vncserver start" で行った場合でも、対象となるユーザーアカウントから "vncserver -kill :ディスプレイ番号" で終了させることもできますし、 "vncserver :ディスプレイ番号" で起動したXvncを "/etc/init.d/vncserver stop" で停止させることもできます。

このページの先頭へ↑

"/etc/rc.local"に記述してvncserverを起動する

"/etc/rc.d/init.d/vncserver" を利用した Xvnc の管理は、 WBEL CentOS での他の サーバー アプリケーション の管理と整合性があってとても解りやすいのですが、前述のように WBEL3 及び CentOS3 の場合には起動時に任意の解像度と表示カラーを指定できないのが難点です。

この問題を解決する方法はいくつかありますが、WBELやCentOSでは、単純に実行させるだけで良い アプリケーション ( デーモン )であれば、 "/etc/rc.local/" に登録しておけば、 ホスト機 の起動時に自動的に実行させることができますので、今回はこの仕組みを利用してみましょう。

登録は、 nano エディタで"/etc/rc.local"を編集して行います。

[tanaka@web1 tanaka]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 root]# nano /etc/rc.localEnter


デフォルトの/etc/rc.conf
デフォルトの"/etc/rc.local"

例えば DDNS 用の DiCE などをお使いの場合は、既にいくつかの コマンド が登録されているかもしれません DiCEの自動起動設定(WBEL3) DiCEの自動起動設定(CentOS3) DiCEの自動起動設定(WBEL4) DiCEの自動起動設定(CentOS4) DiCEの自動起動設定(CentOS5)

ここに例えば次の二行を追加します。

/bin/su -c '/usr/bin/vncserver :1 -geometry 800x600 -depth 16' tanaka
/bin/su -c '/usr/bin/vncserver :2 -geometry 1280x960 -depth 16' root

Xvnc の起動スクリプト "/usr/bin/vncserver" は、実行する ユーザーアカウント に対してXvncデーモンを稼動させますので、 su -c を利用してユーザーアカウント毎にそれぞれ "/usr/bin/vncserver" を実行できるようにしています。

この方法では "/etc/rc.d/init.d/vncserver" を利用する場合のように手軽に停止や再起動などを行うことはできませんが、VNCは一度気に入った設定が決まれば頻繁に変更することはないでしょうから、この方法で必要にして充分ではないでしょうか。

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