TigerVNC 1.1.0のRHEL 6.4へのインストールと初期設定
目次
概要
VNCサーバに対してブラウザから接続してGUI環境を利用することを想定して構築します。
構成
サーバ構成
OSバージョン
Red Hat Enterprise Linux 6.4 x86_64
パッケージ一覧
xorg-x11-fonts-misc-7.2-9.1.el6.noarch.rpm
tigervnc-server-1.1.0-5.el6.x86_64.rpm
tigervnc-server-applet-1.1.0-5.el6.noarch.rpm
tigervnc-server-applet のパッケージはRHELのDVD-ROMには同梱されていませんので、 redhatカスタマーポータルからダウンロードする必要があります。
クライアント構成
OSバージョン
Windows 7 Ultimate Service Pack 1 64bit
ソフトウェア一覧
Internet Explorer 9
環境構築
インストール
VNCサーバに必要なパッケージを3つインストールします。
その他Linuxインストール時のソフトウェア選択によって必要なパッケージが異なってきますので、
依存関係でエラーになった場合は適宜前提パッケージをインストールしてください。
DVDドライブにRHEL 6.4のDVD-ROMをセットし、以下のコマンドを実行します。
tigervnc-server-applet パッケージはDVD-ROMには含まれていませんので、
redhatカスタマーポータルからダウンロードして /tmp ディレクトリに置いておきます。
# mount /dev/cdrom /media/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only # cd /media/cdrom/Packages/ # rpm -ihv xorg-x11-fonts-misc-7.2-9.1.el6.noarch.rpm Preparing... ########################################### [100%] 1:xorg-x11-fonts-misc ########################################### [100%] # rpm -ihv tigervnc-server-1.1.0-5.el6.x86_64.rpm Preparing... ########################################### [100%] 1:tigervnc-server ########################################### [100%] # cd /tmp/ # rpm -ihv tigervnc-server-applet-1.1.0-5.el6.noarch.rpm Preparing... ########################################### [100%] 1:tigervnc-server-applet ########################################### [100%]
設定
VNC接続用ユーザの作成
ユーザの作成は必須ではありませんが、ここではVNC接続用に 専用の一般ユーザ(ユーザ名:uvnc)を作成します。
# groupadd -g 20001 admin # useradd -u 20001 -g 20001 uvnc # passwd uvnc Changing password for user uvnc. New password: ←パスワードを入力(文字は表示されません) Retype new password: ←パスワードを再入力(文字は表示されません) passwd: all authentication tokens updated successfully.
TigerVNCの設定
viエディタで設定ファイル(vncservers)を開き、設定を変更します。
# cd /etc/sysconfig/ # vi vncservers
※ファイルの末尾に追加※
VNCSERVERS="1:uvnc"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCパスワードファイルの作成
VNCクライアントから接続する際に認証で使用されるパスワードは Linuxのパスワードではなく、VNC用のパスワードです。 パスワード自体はLinuxユーザ毎に作成されるので混同しないようにしてください。
# su - uvnc $ vncpasswd Password: ←パスワードを入力(文字は表示されません) Verify: ←パスワードを入力(文字は表示されません) $ exit logout
起動スクリプトの作成
VNCサーバの起動スクリプトを作成します。 一度起動すると自動でデフォルトの起動スクリプトが生成されますので、 それを利用します。
# /etc/rc.d/init.d/vncserver start Starting VNC server: 1:uvnc xauth: creating new authority file /home/uvnc/.Xauthority xauth: (stdin):1: bad display name "linuxsvr:1" in "add" command New 'linuxsvr:1 (uvnc)' desktop is linuxsvr:1 Creating default startup script /home/uvnc/.vnc/xstartup Starting applications specified in /home/uvnc/.vnc/xstartup Log file is /home/uvnc/.vnc/linuxsvr:1.log [ OK ] # /etc/rc.d/init.d/vncserver stop Shutting down VNC server: 1:uvnc [ OK ] # cd /home/uvnc/.vnc/ # vi xstartup
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
↓変更
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &
自動起動の設定
Linux起動時にVNCサーバも自動で起動するよう設定を変更します。
# chkconfig --list | grep vnc vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig vncserver on # chkconfig --list vncserver vncserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ホスト名の登録
VNCサーバ起動時に「xauth: (stdin):1: bad display name "linuxsvr:1" in "add" command」のような メッセージが表示された場合、ホスト名の名前解決に失敗している可能性があります。 hostsファイル、もしくはDNSサーバで名前解決できるように登録してください。 以下はhostsファイルに登録する際の手順です。
# cd /etc/ # vi hosts
※ファイルの末尾に追加※ 192.168.0.71 linuxsvr ←あくまでサンプルです
ファイアウォールの停止
ファイアウォールが設定されている場合、クライアントからの接続が遮断される可能性があります。 ファイアウォールを停止する必要はありませんが、クライアントからつながらない場合は 一度停止して確認してみるのも良いかと思います。 ファイアウォールの設定についてはここでは触れませんが、停止方法だけ紹介しておきます。
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination # /etc/rc.d/init.d/iptables stop iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
VNCサーバの起動
設定が終わったらVNCサーバを起動します。
# /etc/rc.d/init.d/vncserver start VNC サーバー を起動中: 1:uvnc New 'linuxtest:1 (uvnc)' desktop is linuxtest:1 Starting applications specified in /home/uvnc/.vnc/xstartup Log file is /home/uvnc/.vnc/linuxtest:1.log [ OK ]
動作確認
VNCサーバが起動して5801ポートでリスニングしているかを確認します。 (VNCクライアントソフトから接続するときは5901ポート、ブラウザから接続するときは5801ポートになります。)
# netstat -tanp | grep vnc tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 7460/Xvnc tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 7460/Xvnc tcp 0 0 0.0.0.0:5801 0.0.0.0:* LISTEN 7460/Xvnc tcp 0 0 :::6001 :::* LISTEN 7460/Xvnc
クライアント設定
インストール
今回はブラウザからの接続を想定して構築していますので、 VNCクライアントソフトウェアのインストールは不要です。 ただ、VNCクライアントはブラウザ上のJava Appletで動作しますので、 クライアントPC側にJDKやJREをインストールしておく必要があります。
設定
特に不要です。
利用方法
ブラウザのアドレスバーに「http://IPアドレス:5801/」と入力して接続すると、ログイン画面が表示されます。
構築時に設定したVNC用のパスワードを入力してログインします。 ユーザIDを入力するフィールドはありません。 ログイン後は以下のようにブラウザ内にデスクトップが表示されます。
VNCクライアントでログオフすると、デスクトップ画面が中途半端に残ってしまい、 次回VNCサーバを再起動するまでログインできなくなってしまいます。 以下はやっては行けないログオフ。
やってしまうとこうなってしまいます。 こうなるとVNCサーバを再起動しないとログインできなくなってしまいます。
利用を終了する場合は、画面左上の「Disconnect」ボタンで接続を切ってください。