|
|
VNCサーバーの構築
|
VNCについてサーバー機の環境についてVNCクライアントの準備VNCサーバーの基本設定VNCサーバーのお便利設定VNCサーバーの一括起動SSH転送による暗号化接続 |
常にVNC接続でサーバーを管理したい場合には構築中のLinuxサーバー に対してパソコンから VNC で接続するには、通常、 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サーバー
に
ログイン
します
|
||||||||||
|
|
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/sysconfig/vncservers"
を開きます
↓
nanoで"/etc/sysconfig/vncservers"を開く "#" でコメント化されていますが、最後の二行が例文です。 この例文を参考にして、ファイル末尾に以下のような記述を書き加えてください。 VNCSERVERS="ディスプレイ番号:ユーザーアカウント名" |
|||||||||
解像度とカラービットの設定値については
を参考にしてください。
|
VNCSERVERARGS[ディスプレイ番号]="-geometry 横解像度x縦解像度 -depth カラービット"
"VNCSERVERARGS"
が設定されない場合、画面解像度と表示カラーは
"/usr/bin/vncserver"
内の記述に従うことになります
例えば "tanaka" に対してディスプレイ1番で Xvnc を起動したい場合は、
|
|||||||||
|
ユーザーアカウントはスペースで区切って横に並べますが、解像度とカラービットはディスプレイ番号毎に行を変えて記述します。
なんだか変な感じですが。 |
のように記述します。また、
のように、複数のユーザーアカウントに対して設定を行うこともできます。
もちろん、ここで指定するユーザーアカウントに対しては
設定が終わったらファイルを保存して
nano
エディタを閉じます
次に、テスト起動を行ってみましょう。
このように起動のメッセージが確認できたら、VNCクライアントからの接続を行ってみましょう。 エラーメッセージが表示される場合は、 "/etc/sysconfig/vncservers" および各ユーザーアカウントの個別のvnc-serverの設定に誤りがないかどうかを確認してみてください。 最後に ntsysv コマンド で設定画面を開き、 "vncserver" にチェックを入れます。
"vncserver"を"ntsysv"で自動起動登録する 設定が終わったら念のため一度 構築中のLinuxサーバー を reboot コマンドで再起動し、VNCクライアントから接続を行ってみてきちんと起動しているかどうかをチェックしてみてください。 CentOS5の場合の設定CentOS5 の場合でも基本的な設定方法は WBEL4 やCentOS4と変わりはありません。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
|
|||||||||
|
|
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/sysconfig/vncservers"
を開きます
↓
nanoで"/etc/sysconfig/vncservers"を開く "#" でコメント化されていますが、最後の二行が例文です。 CentOS5で インストール されているバージョンの vnc-server には、例文にあるように セキュリティ 向上のためのオプションが追加されています。 "-nolisten tcp": 接続に TCP を利用しない。
"-nohttpd":
Webブラウザ
での接続
|
|||||||||
リモート接続のプロトコルなのに、どうして「自ホストしか接続を許可しない」という一見無意味に思えるオプションが存在するのかというと、自ホスト内のセキュアプロトコルサーバー(例えば
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"
またここからは、
|
|||||||||
"/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"
書式は以下のとおりです。作業はすべてroot アカウント から行います。 /etc/init.d/vncserver start...vnc-serverの起動 /etc/init.d/vncserver stop...vnc-serverの停止
VNCサーバー関連の設定ファイルを作成しなおした後には、以下のコマンドを実行します。 /etc/init.d/vncserver restart...vnc-serverの再起動
vnc-serverが現在稼動してるかどうかを確認するには、 /etc/init.d/vncserver status...vnc-serverの状態確認 あるいは、 ps コマンドで起動プロセスを確認します。 "/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"を編集して行います。
↓
デフォルトの"/etc/rc.local"
例えば
DDNS
用の
DiCE
などをお使いの場合は、既にいくつかの
コマンド
が登録されているかもしれません
ここに例えば次の二行を追加します。
Xvnc の起動スクリプト "/usr/bin/vncserver" は、実行する ユーザーアカウント に対してXvncデーモンを稼動させますので、 su -c を利用してユーザーアカウント毎にそれぞれ "/usr/bin/vncserver" を実行できるようにしています。 この方法では "/etc/rc.d/init.d/vncserver" を利用する場合のように手軽に停止や再起動などを行うことはできませんが、VNCは一度気に入った設定が決まれば頻繁に変更することはないでしょうから、この方法で必要にして充分ではないでしょうか。
|
|
|
VNCサーバーのお便利設定
<<Previous
|
Next>>
SSH転送による暗号化接続
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |