* VNC [#s7d13fd9]

** はじめに [#faaf50ba]

VNC (Virtual Network Computing) は Windows や UNIX (X11)
の画面を他のマシンから見たり操作したりするフリーソフトである。

元々は ORL (Olivetti & Oracle Research Lab)
が作っていたが,ORL は1999年1月に AT&T に買収された。
現在は
[[RealVNC:http://www.realvnc.com/]]
で開発が進められている。
[[TightVNC:http://www.tightvnc.com/]]
などが改良版を出している。

** Windows へのインストール [#f8dda2e2]

[[TightVNC:http://www.tightvnc.com/]]
からフルインストーラまたはビューア単体をダウンロード。
ビューア単体はインストール不要で動かせる。

** Linux や Mac OS X へのインストール [#i5eda243]

[[TightVNC:http://www.tightvnc.com/]]
から Linux の RPM または UNIX ソースをダウンロード。

Mac OS X + X11 でも以下のようにしてビューアだけインストールできた。

 tar xvjf tightvnc-1.2.9_unixsrc.tar.bz2
 cd vnc_unixsrc
 xmkmf
 make World
 ./vncinstall /usr/local/bin /usr/local/man

[[RealVNC:http://www.realvnc.com/]] も UNIX ソースを Mac OS X
上で ./configure; make すれば作れる。
たぶん TightVNC のほうがよさそうだ。

使い方は,vncviewer hostname:0 などとする。
:0 はデフォルトの画面番号である。
ポート「5900 + 画面番号」が使われる。
vncviewer -help で説明が出る。

Mac からは Command + クリック で右クリックになる。

** ssh ポートフォーワーディングでのアクセス [#u9562f43]

VNC はパスワードを平文で流すので,インターネット経由でアクセスする場合は ssh
ポートフォーワーディングを使うのがよかろう。

たとえば bar というホストで sshd が動いており,その近くに VNC サーバ foo があれば,次のようにする。

 ssh -L 5900:foo:5900 bar

これで vncviewer localhost:0 で接続できる。

** VNC Reflector [#wf81e0ca]

[[VNC Reflector:http://sourceforge.net/projects/vnc-reflector/]]
は,多数の端末から同じ画面を見るためのもの。

 tar xvzf vnc_reflector-1.2.4.tar.gz
 cd vnc_reflector
 make

これで vncreflector ができる。

いろいろな使い方ができそうだ。
たとえば教卓の Windows マシンにサーバをインストールし,教卓マシンからリフレクタに接続し,学生はビューアをリフレクタに接続するような使い方を想定する。
hoge.txt に *:5500 hoge と書き,passwd
というファイルの1行目にフルアクセス用のパスワード,2行目に閲覧専用のパスワードを平文で書いておく。
このまま動かしても問題ないが,念のため,他に何もしない一般ユーザ vnc を作り,vnc
だけがこれらのファイルを使えるようにして,vnc 権限で動かす:

 # su vnc -c "./vncreflector hoge.txt"

ログは reflector.log に入る。

もっと気になるなら chroot すればよい。

これで Windows の VNC Server からリフレクタにコネクションを張る。
サーバからビューアに接続する際のデフォルトポート 5500
を使っているので,Add New Client でリフレクタのホスト名だけ入れればよい。

学生は個々にビューアを立ち上げ,接続ホストを聞いてきたら「リフレクタのホスト名:99」と入れ,パスワードを聞いてきたら閲覧用のパスワードを入れる。

マルチキャスト用の拡張もあるようだが,試していない。

** 参考リンク [#y5930e29]

SRAの畠山 明さんが
[[リモートデスクトップ:http://www.sra.co.jp/people/akira/rdp/index.html]],
[[VNCのページ:http://www.sra.co.jp/people/akira/vnc/index.html]]
をまとめておられる。
特に
[[VNCの拡張機能:http://www.sra.co.jp/people/akira/vnc/links/extras.html]]
にいろいろ興味深いリンクがある。

とりあえず私用のリンク:

-[[VNC - Virtual Network Computing from AT&T Laboratories Cambridge:http://www.uk.research.att.com/archive/vnc/]] (今はなき AT&T Laboratories Cambridge の VNC サイトのアーカイブ)
-[[XORL.org:http://www.xorl.org/]] (AT&T Laboratories Cambridge (旧 ORL) の歴史)
-[[RealVNC:http://www.realvnc.com/]] (本家の系統)
-[[TightVNC:http://www.tightvnc.com/]] (圧縮機能を強化)
-[[VNC Reflector:http://sourceforge.net/projects/vnc-reflector/]]
-[[Ultr@VNC:http://ultravnc.sourceforge.net/]] (Windowsに特化した高速版)
-[[MulticastVNC:http://www2.in.tum.de/~ziewer/multicastvnc/]] (discontinued)
-[[MultiVNC:http://www.alpha.co.jp/topics/multivnc.html]]
(2004年度 第1回オープンソフトウエア活用基盤整備事業に
[[採択:http://www.ipa.go.jp/software/open/2004/saitaku/alpha.html]])
-[[VNCのページ:http://www.sra.co.jp/people/akira/vnc/]] (畠山さん)
-[[VNCについてのメモ:http://acc-web.spring8.or.jp/~aki/vncmemo.html]] (Akihiro Yamashitaさん)
-[[OSXvnc:http://www.redstonesoftware.com/vnc.html]] (VNC server for Mac OS X)