VNCをオーバーSSHで

更新日 2011-08-18 (木) 23:07:25

RealVNC

VNCはいくつか種類があるが、今回はrealvncを中心に行う。後半TightVNCについても使用してみる。realvncは現時点(07'10月)ではXPまでのサポートしかなくVistaについてはフリーではない。

構成図

  ----------------------            -------------------------
  |                    |            |                       |
  |   ---------------  |     Port 22|   ------------------  |
  |   | SSH client  |==================>| SSH Sever      |  |
  |   ---------------  |            |   |                |  |
  |        || Port 5999|            |   ------------------  |
  |        ||          |            |          ||           |
  |     VNCViewer      |            |          ||Port 5901  |
  |                    |            |     VNC Server        |
  ----------------------            -------------------------

VNCのインストール

Vine
rpmでRealVNCがインストールされる

# apt-get install vnc
# apt-get install vnc-server

Windowsについてはここrealvncからダウンロードしてセットアップを行う。

一度デフォルト状態で起動する
:以下の番号はディスプレイ番号でローカルに表示される番号が0でVNCで使用せきるのは1から順番である。またそのとき使用するポート番号は5900+(ディスプレイ番号)
次の例は:1なのでポート5901になる。

$ vncserver :1

You will require a password to access your desktops.

Password: ***** <==接続のためのパスワード設定 (2)
Verify: *****

New 'localhost.localdomain:1 (okada)' desktop is localhost.localdomain:1

Creating default startup script /home/okada/.vnc/xstartup
Starting applications specified in /home/okada/.vnc/xstartup
Log file is /home/okada/.vnc/localhost.localdomain:1.log

この状態で一度クライアントから接続(vncviewer)して確認をとる
このままだと接続されるXwindowはtwmなのであとでgnomeや日本語環境を設定する

停止

$ vncserver -kill :1
Killing Xvnc process ID 21364

うまくいくとホームディレクトリに.vncというディレクトリができる
ディレクトリ内には設定したパスワードやXwindowの起動の設定するxstartupが作成dされる。
不都合になったらこの.vncごと削除すればOK

Xwindowの設定

日本語やgnomeが起動するようにxstartupを以下のように変更

.vnc/xstartup

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

#以下の設定は日本語入力どちらでもOKのようなので一つ選択する
# SHIFT+SPACEで変換
#Anthy はフリーな日本語入力システム
#SCIM多言語入力プラットフォームで 日本語かな漢字変換エンジンAnthy を使うためのモジュール

#----canna/kinput2---------
#export LANG=ja_JP.ujis
#
#xset +fp /usr/X11R6/lib/X11/fonts/japanese
#
#kinput2 -canna -cannaserver unix
#--------------

#-----scim-anthy----------
export LANGexport LC_MESSAGE=ja_JP.utf-8
export LC_CTYPE=ja_JP.utf-8
export XMODIFIERS=@im=scim
export GTK_IM_MODULE=scimexport
export QT_IM_MODULE=scimexec
#---------------

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
## excec gnome-session

変更後一度vncserverを終了し起動する。

SSHでトンネル

クライアントはwindowsでサーバ側はlinux
Windows側のsshクライアントはTeratermを使用

Teratermでの設定

設定 -> SSH転送 -> 追加

ローカルポート 5999   <==5900+(1)の番号 ==(1)は99で vncviewerで127.0.0.1:99を指定
リモート側ホスト   (VNCサーバアドレス)    ポート 5901

設定を保存

ファイルから新規で通常どおりVNCサーバと接続

VNCViewer   (VNCサーバアドレス):99  <== (1)の番号
(2)のパスワードを入力

クライアントはLinuxでサーバ側はlinux
LinuxクライアントはOpenSSHを使用

OpenSSHでの設定

$ ssh -N -f -L 5999:(VNCサーバアドレス):5901 student@(VNCサーバアドレス)

-N: loginshellを表示しない
-f: バックグランドで実行

そのままloginすれば使用できる

VNCサーバのパスワード変更

$ vncpasswd
Password:******
Verify:******

その他

色が落ちるときはクライアント側では「Option」-> 「Colour & Encoding」 -> 「Full」を選択


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS