インストールした環境
OS:CentOS 6.3 64bit
カーネルバージョン:2.6.32-279.11.1.el6.x86_64
本体:ThinkPadX61
yumでインストールします。
# yum install vnc vnc-server
tigervnc-server-1.0.90がインストールされるようです。
一般ユーザへ戻ります。
ここでの一般ユーザ名はuser1としています。
# exit
ユーザー名を確認しておきます。
$ whoami
$ vncpasswd
ログイン用パスワードを設定します。
同じパスワードを2回入力すればOK
ユーザーIDで使用しているパスワードと同じ物にした方がいいと思います。
$ vncserver :1
一旦VNCサーバーを起動します。
起動したらすぐに終了します。
$ vncserver -kill :1
そうすると、初期設定ファイルがユーザーの/home/user1/.vnc/の中にできます。
$ vi /home/user1/.vnc/xstartup
その中身の下記の行を書き換えます
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
twm &
↓
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
gnome-session &
rootにチェンジします。
$ su –
# vi /etc/sysconfig/vncservers
下記の行を修正します。
# VNCSERVERS="2:myusername" # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" ↓ VNCSERVERS="1:user1" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp"VNCサーバーが自動で起動するようにします。
chkconfig vncserver on
VNCサーバーを起動します。
/etc/rc.d/init.d/vncserver start
いくつか警告が出るかもしれませんが、ちゃんと起動すればOK
起動する前に、すでにVNCのプロセスが上がっているか確認した方がいいでしょう。
ファイアーウォールの穴を開けます。
空けておくのは下記ポート
TCP:5901
たくさんログインする場合は5902 5903とかなります。
VNCではTCP 5900番+ユーザーディスプレイ番号を使用するようです。
ディスプレイ1のユーザはTCP5901を使用するようなので、実運用状況からポートの制限を別途かけてください。
私の環境では5901を使用してました。
# vi /etc/sysconfig/iptables
5901を開放する場合は以下の例を追記してください。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT# service iptables restart
出先からアクセスしたい場合
外からアクセスしたいとかあると思いますので、ルータにポートフォワーディングとかポート変換とか設定して5901を露出させてもいいのですが、VNCって結構攻撃対象になるので外から見える場所に出したくないのです。
というわけでSSHトンネルを使用してアクセスしたいと思います。
SSHトンネルを使用する場合はSSHが利用できればOKですので、余計にポート開けておくとか平文のパスワードとかに怯える必要はありません。
まぁパスワードが単純だとだめですが。
今回の例ではTeraTermを経由したSSHトンネルを実現します。
「設定」→「SSH転送」をクリックします。
「追加」をクリックします。
SSHトンネルではリモートホストの指定したポートをクライアントの指定したポートに割り当てます。
実際にリモートホストにアクセスする場合はクライントの特定のポートを指定します。
例:
クライアントの割り当てポート:11000
リモートホストのポート:5901
リモートホストのIPアドレス:192.168.1.1
この内容を以下の図のように登録します。
登録が終わったらウインドウを閉じます。
アクセスする場合は以下のように指定します。
localhost:11000
または
127.0.0.1:11000
VNCビューワをクライアントマシンで起動し、サーバ欄に下記の様に入力します。
localhost:11000
または
127.0.0.1:11000
この方法はHTTPやFTPにも応用できます。