OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2013/03/24
更新日: 2014/12/28

OSSでLinuxサーバ構築

TigerVNC 1.1.0のRHEL 6.4へのインストールと初期設定

トップページOSSでLinuxサーバ構築 > 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%]

設定

(1) 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.

(2) TigerVNCの設定

 viエディタで設定ファイル(vncservers)を開き、設定を変更します。

# cd /etc/sysconfig/
# vi vncservers
ファイル名:/etc/sysconfig/vncservers
※ファイルの末尾に追加※
VNCSERVERS="1:uvnc"
VNCSERVERARGS[1]="-geometry 1024x768"

(3) VNCパスワードファイルの作成

 VNCクライアントから接続する際に認証で使用されるパスワードは Linuxのパスワードではなく、VNC用のパスワードです。 パスワード自体はLinuxユーザ毎に作成されるので混同しないようにしてください。

# su - uvnc
$ vncpasswd
Password: ←パスワードを入力(文字は表示されません)
Verify: ←パスワードを入力(文字は表示されません)
$ exit
logout

(4) 起動スクリプトの作成

 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
ファイル名:/home/uvnc/.vnc/xstartup ※uvncはVNC接続用に作成したLinuxユーザ名です
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
   ↓変更
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &

(5) 自動起動の設定

 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

(6) ホスト名の登録

 VNCサーバ起動時に「xauth: (stdin):1: bad display name "linuxsvr:1" in "add" command」のような メッセージが表示された場合、ホスト名の名前解決に失敗している可能性があります。 hostsファイル、もしくはDNSサーバで名前解決できるように登録してください。 以下はhostsファイルに登録する際の手順です。

# cd /etc/
# vi hosts
ファイル名:/etc/hosts
※ファイルの末尾に追加※
192.168.0.71 linuxsvr ←あくまでサンプルです

(7) ファイアウォールの停止

 ファイアウォールが設定されている場合、クライアントからの接続が遮断される可能性があります。 ファイアウォールを停止する必要はありませんが、クライアントからつながらない場合は 一度停止して確認してみるのも良いかと思います。 ファイアウォールの設定についてはここでは触れませんが、停止方法だけ紹介しておきます。

# 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

(8) 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クライアントソフトウェアのインストールは不要です。 ただ、VNCクライアントはブラウザ上のJava Appletで動作しますので、 クライアントPC側にJDKやJREをインストールしておく必要があります。

設定

 特に不要です。

動作テスト

 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

利用方法

 ブラウザのアドレスバーに「http://IPアドレス:5801/」と入力して接続すると、ログイン画面が表示されます。

 構築時に設定したVNC用のパスワードを入力してログインします。 ユーザIDを入力するフィールドはありません。 ログイン後は以下のようにブラウザ内にデスクトップが表示されます。

 VNCクライアントでログオフすると、デスクトップ画面が中途半端に残ってしまい、 次回VNCサーバを再起動するまでログインできなくなってしまいます。 以下はやっては行けないログオフ。

 やってしまうとこうなってしまいます。 こうなるとVNCサーバを再起動しないとログインできなくなってしまいます。

 利用を終了する場合は、画面左上の「Disconnect」ボタンで接続を切ってください。

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号