Linux の VNC サーバの設定

2009-1-25 07:00
このエントリーをはてなブックマークに追加

CentOS で VNC サーバをインストールする手順と設定方法です。CentOS 5 で試しました。

インストールと初期設定

まず vnc-server パッケージをインストールします。これは yum を使えば簡単です。

  # yum install vnc-server

まず、サービスとしては起動せず、一般ユーザで vncserver を起動します。

  $ vncserver

初回起動時はパスワードを求められるので入力します。これがクライアントからアクセスする際のパスワードとなるので、安直なものは指定しないようにしてください。ディスプレイ番号という概念があり、勝手に割り当てられますが、ディスプレイ番号を指定するときは

  $ vncserver :1

のようにします。この状態でクライアントからアクセスしてみます。Windows であれば RealVNC が便利です。(RealVNCの使い方は後日掲載予定)

デフォルトの Window Manager は twmで、xtermが起動するだけの味気ない画面が出ますが、GNOME にする方法は後述します。

VNC サーバを停止する際は -kill オプションをつける。

  $ vncserver -kill :1

VNCサーバの起動と終了を簡単にできるように

上記の起動と停止の操作を簡単にするために、ゼロ円でできるXサーバ WindowsでLinuxをリモート操作・前編(3/3)に書いてあるように、.bashrc にエイリアスを設定します。

  $ vi ~/.bashrc
alias vncstart='vncserver :1 -geometry 1200x700' ← geometry の部分は環境に合わせて指定
alias vnckill='vncserver -kill :1'
  $ source .bashrc ← 設定ファイルの再読込

で再読込すれば、今後は vncstart コマンドと vnckill コマンドで VNC サーバの起動と終了が可能になります。もちろん複数人で使う環境では、ディスプレイ番号が重複しないように設定に注意が必要です。

VNC サーバで GNOME を起動させる

初期状態ではウィンドウマネージャーとして twm が起動しますが、これを GNOME に変更します。

  $ vi ~/.vnc/xstartup
  # twm & ←コメントにする
  exec gnome-session & ←追加

vncserver を再度実行すれば GNOME 環境で利用できます。

VNC サーバを自動的に起動する

頻繁に使う場合、毎回事前に vncserver を起動しないと接続できないのでは面倒です。

CentOS で vncserver をインストールすると /etc/sysconfig/vncservers というファイルができます。これを設定し、service として稼動させれば自動起動はできますが、常にデスクトップが起動した状態になってしまいます。

そこで xinetd を経由してクライアントからの接続要求があったときに自動的にVNC サーバを立ち上げられるように設定します。伊勢的新常識 – xinetd + VNC でリモートデスクトップの方法をそのまま使わせていただきました。

まず /etc/services に ポート 5950 の設定を追加します。

vnc              5950/tcp                        # VNC Server

続いて /etc/xinetd.d に次のようなファイルを追加します。画面のサイズは環境にあわせてお好みで。

service vnc
{
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/bin/Xvnc
        server_args     = -inetd -query localhost -once -geometry 1200x700 -depth 16 --PasswordFile=/etc/vnc_password
        log_on_failure  += USERID
        disable         = no
}

先に手動で起動したときにできた ~/.vnc/passwd ファイルを /etc/vnc_password ファイルとしてコピーしておきます。このファイルは root 以外でも読み込みできるように設定します。

# cp ~/.vnc/passwd /etc/vnc_password
# chmod 644  /etc/vnc_password

これで xinetd を再起動し、VNC クライアントから サーバ名:50 につなげば自動的に vncserver が起動します。

しかし、真っ黒の画面、あるいは灰色の画面が出て何もできないことがあります。これはリモートからのグラフィカルログインが禁止されているか、そもそもグラフィカルログインになっていません。

/etc/inittab でランレベルを5 (X11を使う)になっているか確認します。また、コンソールから GNOME 環境に入り、リモートからグラフィカルログインできるように XDMCP を許可します。

もしくは /etc/gdm/custom.conf (CentOS5)か /etc/X11/gdm/gdm.conf で

[xdmcp]
Enable=true

として、OS を再起動します。

この方法のよいところは、接続後に サーバのグラフィカルログイン画面が出るので、任意のユーザでログインできることです。ただしランレベル3では使えないのが残念です。

3件のコメント

  1. ふみかさん、こんにちは。
    私も神奈川県に設置してあるCentOSサーバを岐阜から管理するため、VNCサーバを使ってます。
    普段はTeraTermとWinSCPでほとんど用が足せますが、時々GUIが恋しくてVNCを使ってしまいます。
    ところで数ヶ月ほど前から、McAfeeがRealVNCをスパイウェア扱いして自動削除してしまいます。確かにスパイウェアみたいなものかもしれませんが・・・。

    Comment by こんどうひでゆき — 2009-01-25 21:51

  2. (thumbnail)

    そうですか。Symantec でも Kaspersky でも削除されたことはないですね。
    McAfee 特有の動作なのでしょうか……。
    UltraVNC はどうでしょうか。

    Comment by 津田 ふみか2009-01-25 23:03

  3. ボクも、realVNCをダウンロードすると、マカフィーにはじかれ、ダウンロードできませんでした。マカフィーで「信頼済み」にするとダウンロードできましたが…
    別のPC(アンチウィルスはG-DATA)の場合は、同じものをダウンロードして、スキャンしたところ問題はありませんでした。

    どうも、マカフィーの仕様みたいですね。
    参考URL
      ↓
    http://recipro.atgj.net/Entry/1354/

    Comment by R — 2010-03-20 11:56

現在、コメントフォームは閉鎖中です。

23 queries. HTML convert time: 0.341 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2013 @ futuremix.org ログイン