Personal Computer - Linux - VNC

ご意見・ご感想は、nao_k@din.or.jpへお願いします。

Vine Linux2.0とRedHat Linux6.2JにVNCをインストールしてみました。
ここから対象となるファイルをダウンロードします。
自分は、LinuxをVNCサーバーにし、Windowsをクライアントにするため、両方のファイルをダウンロードしました。
  • vnc-3.3.3r1_x86_linux_2.0.tgz (※他にも圧縮形式の違うファイル有り)
  • vnc-3.3.3r7_x86_win32.zip (※他にも圧縮形式の違うファイル有り)

Windows版の方は、zipな圧縮ですので、適当に展開して、vncviewer.exeだけをショートカットを作るなりして簡単に利用できる準備をします。
他のファイルは、今回は使う気もありませんのでほっときます。削除しても可(いつか使うかな?)
Linuxの方も、telnetあたりでログインしてから、ファイルを展開します。

[nao@sky nao]# cd /usr/local/src
[nao@sky src]# tar zxvf vnc-3.3.3r1_x86_linux_2.0.tgz
vnc_x86_linux_2.0/LICENCE.TXT
vnc_x86_linux_2.0/README
vnc_x86_linux_2.0/Vncviewer
vnc_x86_linux_2.0/Xvnc
vnc_x86_linux_2.0/classes/DesCipher.class
vnc_x86_linux_2.0/classes/animatedMemoryImageSource.class
vnc_x86_linux_2.0/classes/authenticationPanel.class
vnc_x86_linux_2.0/classes/clipboardFrame.class
vnc_x86_linux_2.0/classes/index.vnc
vnc_x86_linux_2.0/classes/optionsFrame.class
vnc_x86_linux_2.0/classes/rfbProto.class
vnc_x86_linux_2.0/classes/shared.vnc
vnc_x86_linux_2.0/classes/vncCanvas.class
vnc_x86_linux_2.0/classes/vncviewer.class
vnc_x86_linux_2.0/classes/vncviewer.jar
vnc_x86_linux_2.0/vncpasswd
vnc_x86_linux_2.0/vncserver
vnc_x86_linux_2.0/vnc

次に、どのユーザーでも利用できるように、それなりの場所へ必要なファイルのシンボリックリンクを作成します。
必要なファイルは、
  • vncserver
  • vncviewer
  • vncpasswd
  • Xvnc
の4つです。vncviewerは今回省いても良いか。

[root@sky src]# ln -s /usr/local/src/vnc_x86_linux_2.0/*vnc* /usr/local/bin/
[root@sky src]# ls -al /usr/local/bin/ | grep vnc
lrwxrwxrwx    1 root     root           37 Jun 20 01:07 Xvnc -> /usr/local/src/vnc_x86_linux_2.0/Xvnc
lrwxrwxrwx    1 root     root           42 Jun 20 01:07 vncpasswd -> /usr/local/src/vnc_x86_linux_2.0/vncpasswd
lrwxrwxrwx    1 root     root           42 Jun 20 01:07 vncserver -> /usr/local/src/vnc_x86_linux_2.0/vncserver
lrwxrwxrwx    1 root     root           42 Jun 20 01:07 vncviewer -> /usr/local/src/vnc_x86_linux_2.0/vncviewer

これでとりあえず準備は出来ました(^_^;)b
まずは、きちんと利用できるか確認してみましょう。
セッションはvncserverで作成することができますが、ここで注意する点は、ユーザーとディレクトリです。
vncserverを実行した時点の情報がそのまま引き継がれます。違うユーザーで作成したい場合は事前に su しておくこと。
また、クライアントからの接続の為のパスワードも考えておかないといけません。

[nao@sky vnc_x86_linux_2.0]# vncserver

You will require a password to access your desktops.

Password:
Verify:

New 'X' desktop is sky.yggdrasill:1

Creating default startup script /home/nao/.vnc/xstartup
Starting applications specified in /home/nao/.vnc/xstartup
Log file is /home/nao/.vnc/sky.yggdrasill:1.log

これで、VNCクライアントからsky.yggdrasill:1へ接続できることになります。
一番後ろの数字が、セッション番号みたいなもので、セッションをもっと作れば、増加していきます
Windowsから、先に準備してあったvncviewer.exeを実行します。


接続先(sky.yggdrasill:1)を入力しOKすると、次はパスワードを求めてきます。
セッション作成時のパスワードを入力しましょう。
パスワードの変更は、vncpasswdで変更する事ができます。


認証が済むと、LinuxのXの画面が大きなWindowとして表示されます。
しかし異様にそっけない画面が現れました(T_T)


Window Managerを指定してあげた方がよさそうなので、とりあえず、インストール直後すぐ使えるモノにしてみます。
基本的には、xinitrcがいろいろやってるので、これをコピーし、セッションを作りなおします。
コピーでなく、シンボリックリンクでもOKだと思いますが、トラフィック的にあまりカラフルなものは使いたくないのでとりあえず、コピーにしておきます。
あとでコピーにして専用の軽めのやつにするとかでも良いと思います。
場所は、各ユーザーのホームに.vncというフォルダが出来てますのでその下にそういうファイルが集まってます。

[root@sky nao]# mv .vnc/xstartup .vnc/xstartup.org
[root@sky nao]# cp /etc/X11/xinit/xinitrc .vnc/xstartup
cp: `xstartup' を上書きしてもよろしいですか (yes/no)? y
[nao@sky nao]$ vncserver

New 'X' desktop is sky.yggdrasill:2

Starting applications specified in /home/nao/.vnc/xstartup
Log file is /home/nao/.vnc/sky.yggdrasill:2.log

で、再び、Windowsから繋げてみます。今度は、sky.yggdrasill:2です。
すると、次はこうなりました。※RedHat Linux 6.2Jの場合で、GNOME、KDEを入れてないのでFvwmです。


いろいろやってるとログファイルや、セッションのプロセスIDやらのファイルが出来てます。

[nao@sky nao]$ ls .vnc/
passwd                sky.yggdrasill:1.pid  sky.yggdrasill:2.pid  xstartup.org
sky.yggdrasill:1.log  sky.yggdrasill:2.log  xstartup

プロセスをKillしたい場合は、vncserverで該当番号を-kill付きで実行するだけです。

[nao@sky .vnc]$ ps ax | grep Xvnc
  680 pts/0    S      0:00 Xvnc :1 -desktop X -httpd /usr/local/vnc/classes -aut
  717 pts/0    S      0:00 Xvnc :2 -desktop X -httpd /usr/local/vnc/classes -aut
[nao@sky .vnc]$ cat sky.yggdrasill:1.pid
680
[nao@sky nao]$ vncserver -kill :1
Killing Xvnc process ID 680
[nao@sky .vnc]$ ps ax | grep Xvnc
  717 pts/0    S      0:00 Xvnc :2 -desktop X -httpd /usr/local/vnc/classes -aut

Windows2000Professionalから利用してみるとこんな感じになります。


ちなみに、Vine Linux 2.0の場合だと、Window Makerでした。


これで、いちいちLinuxなPCにディスプレイを繋げなくても、更に、市販のWindows用Xクライアント等を購入しなくても、VNCを使えば手軽にこういった事ができるようになります。
必要に応じてGUIなツールがネットワーク経由で使える事になります。
Oracle8iだって問題ないかもしれません。まだ試してないので今度試してみたいと思います。


作成日 2000/06/18 更新日 2000/06/18