Linux の VNC サーバの設定
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では使えないのが残念です。
ふみかさん、こんにちは。
私も神奈川県に設置してあるCentOSサーバを岐阜から管理するため、VNCサーバを使ってます。
普段はTeraTermとWinSCPでほとんど用が足せますが、時々GUIが恋しくてVNCを使ってしまいます。
ところで数ヶ月ほど前から、McAfeeがRealVNCをスパイウェア扱いして自動削除してしまいます。確かにスパイウェアみたいなものかもしれませんが・・・。
コメント by こんどうひでゆき — 2009-01-25 21:51
そうですか。Symantec でも Kaspersky でも削除されたことはないですね。
McAfee 特有の動作なのでしょうか……。
UltraVNC はどうでしょうか。
コメント by 津田 ふみか — 2009-01-25 23:03
ボクも、realVNCをダウンロードすると、マカフィーにはじかれ、ダウンロードできませんでした。マカフィーで「信頼済み」にするとダウンロードできましたが…
別のPC(アンチウィルスはG-DATA)の場合は、同じものをダウンロードして、スキャンしたところ問題はありませんでした。
どうも、マカフィーの仕様みたいですね。
参考URL
↓
http://recipro.atgj.net/Entry/1354/
コメント by R — 2010-03-20 11:56