vnc は リモートで他のコンピュータのデスクトップを操作できるソフト。
サーバ、クライアント共にフリーソフト。Linux、Windows などに対応。

ここは Linux(Fedora 12)をサーバ、Windows をクライアントとしたときの設定手順をメモ。

GNOME の機能を使用する方法

GNOME にはデフォルトで vino という VNC の機能がある。これを利用する。

サーバ側の設定 (Fedora)

  1. リモート接続して操作するユーザでログインする。
  2. 「システム」→「管理」→「ファイアウォール」を開く。
  3. 画面左ペインで「その他のポート」を選択。
  4. 画面右ペインで「追加」を押して 5900 番(vnc-server)を選択して「OK」。
    一応、TCP と UDP の両方を追加しておく。
  5. 「適用」を押してからファイアウォールの設定画面を閉じる。
  6. 「システム」→「設定」→「リモートデスクトップ」を開く。
  7. 「共有」の設定で「他のユーザが自分のデスクトップを表示できる」と「他のユーザがデスクトップを操作できる」にチェックを入れる。
    vnc_001.png
  8. 「セキュリティ」の設定を以下のようにする。
    • 「このマシンへの接続を毎回確認する」は、リモート接続する度に確認ウィンドウが表示され、そこで許可して初めてリモート操作できるようになる。リモート操作したいのだから、大抵サーバ側は直接操作しないわけで、ここのチェックはOFFで。
    • 「パスワードの入力を要求する」は、セキュリティをかけたければ設定する。
    • 「他から接続できるように自動的にネットワークを設定する」はよくわからないのでOFFで。
  9. 「通知スペース」の設定は、サーバ側の画面の表示の設定なので、お好みで。
  10. 「閉じる」で設定完了。

クライアント側の設定 (Windows)

  1. クライアントソフトを入手。
  2. セットアップのウィザードに従ってインストール。
    大抵全てデフォルトのままで OK。
  3. VNC Viewer を起動。
    vnc_002.png
  4. 「VNC Server」に接続先の IP アドレスかホスト名を入力して「Connect」。
    オプションは全てデフォルトでいけるはず。

これで操作できるはず。

備考

  • この機能では、あらかじめサーバ側にユーザがログインしている必要がある。

VNC を直接使用する方法

vino の方法だと、あらかじめログインしている必要があるが、直接 VNC を設定すれば、ログインしてなくてもリモート接続できる。

サーバ側の設定 (Fedora)

  1. スーパーユーザになる。
    $ su -
  2. vnc-server をインストール。
    # yum install vnc-server
  3. パスワードを設定。
    # vncpasswd
    # Password:
    # Verify:
    確認のため、2回入力。これで /root/.vnc の下に passwd が作成される。
  4. 「システム」→「管理」→「ファイアウォール」を開く。
  5. 画面左ペインで「その他のポート」を選択。
  6. 画面右ペインで「追加」を押して、ユーザ定義で 5901 番以降のポートを追加する。
    • VNC は 画面ごとに 5900 + 画面番号 のポートを開くので、画面番号に対応するポート番号を解放しておく必要がある。
    • 例えば 画面番号「:1」の場合、ポート 5901 が使用される。
    • ここはとりあえず 5901 を追加しておく。
  7. 「適用」を押してからファイアウォールの設定画面を閉じる。
  8. vncserver を起動する。
    # vncserver -geometry 800x600
    geometry はクライアントでの画面サイズのオプション指定。特に指定しなくても OK。

これで次のようなログが表示される。

New 'fedora12.local:1 (root)' desktop is fedora12.local:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/fedora12.local:1.log

"fedora12.local" というのは私のマシン名で、その後「:1」というのが画面番号。クライアント側ではこの名称を指定する。

VNC サーバを終了するときは

# vncserver -kill :1

で。最後の「:1」は、起動時に表示される画面番号。

クライアント側の設定 (Windows)

  1. インストールまでは GNOME(vino)の手順と同じ。
  2. VNC Viewer を起動。
  3. 「VNC Server」に「(接続先の IP アドレス or ホスト名):(画面番号)」の形式で入力。
    • 例えば「192.168.2.18:1」など。
  4. 「Connect」を押す。
  5. パスワード入力画面が表示されるので、サーバで設定したパスワードを入力。

これでいけるはず。

備考

  • 上記は root でのログインとなるので、ユーザでログインする場合は、各ユーザ権限で上記と同じ設定をすれば OK。その場合は「/home/(ユーザ名)/.vnc」の下にパスワードなどの設定が保存される。
  • vino の場合は、今開いている画面を直接操作する(サーバ側の画面を見ると、マウスカーソルが勝手に動いてるようにみえる)のに対し、こちらの VNC 直接の場合、今開いている画面に関係なく、別途リモート用の画面をクライアント側に転送している感じになる(サーバの画面からクライアント側の操作は見えない)。
  • Fedora 12 ならデフォルトで GNOME が起動したが、以前のバージョンだと twm などが起動する模様。それを GNOME など他の WM に変更する場合は、「/root/.vnc」または「/home/(ユーザ名)/.vnc」の下につくられている「xstartup」というスクリプトファイルを編集してやる必要がある。GNOME の場合の例は以下。

    #!/bin/sh
    
    # Uncomment the following two lines for normal desktop:
    # unset SESSION_MANAGER
    # exec /etc/X11/xinit/xinitrc
    
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    vncconfig -iconic &
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    #↓ここをコメントアウト
    #twm &
    #↓これを追加
    exec gnome-session &

xinetd を使用する方法

上記の方法では、サーバ側で vnc-server を手動で起動する必要がある。 特にリモートの場合 telnet でログインして vnc-server を起動後にデスクトップを起動するという二度手間になる。これを OS を起動するだけで VNC が使用できるようにできたら、尚便利なはず。

サーバ側の設定 (Fedora)

  1. スーパーユーザになる。
    $ su -
  2. vnc-server をインストール。
    # yum install vnc-server
  3. xinitd をインストール。
    # yum install xinitd
  4. VNC サービスの設定ファイルをつくる。
    • /etc/xinetd.d の下に vnc-server というファイル(ファイル名は何でも良い)をつくって以下のように書く。
      service vnc-server
      {
          disable         = no
          nice            = 10
          flags           = REUSE
          socket_type     = stream
          wait            = no
          user            = nobody
          server          = /usr/bin/Xvnc
          server_args     = -inetd -query localhost -once -geometry 1024x768 -depth 16 --securitytypes=none
          log_on_success  += DURATION
          log_on_failure  += HOST
      }
      service の名称は何でも良いが、後述の /etc/services の内容に合わせること。
      ※各パラメータは VNC Serverをxinetd経由で立てる方法 を参考にさせてもらいました。
  5. サービスの設定を追加する。
    • /etc/services を開いて、次の設定を追加する。
      vnc-server       5900/tcp              # VNC Server
      この名前は 4 の service の名称に合わせること。
  6. ファイアウォールの 5900 番を開放する。
    やり方は上記を参考に。
  7. /etc/gdm/custom.conf を開いて、次のように書く。(Fedora 12 だと、デフォルトで内容が全部空っぽ)
    # GDM configuration storage
    
    [xdmcp]
    Enable=true
    
    [chooser]
    
    [security]
    DisallowTCP=false
    AllowRemoteRoot=false
    
    [greeter]
    IncludeAll=false
    
    [debug]
    
  8. これでシステムを再起動すれば、xinetd で VNC が起動する。

クライアント側の設定 (Windows)

  1. インストールまでは GNOME(vino)の手順と同じ。
  2. VNC Viewer を起動。
  3. 「VNC Server」に接続先の IP アドレス or ホスト名を入力。
    ※この場合、画面番号の指定は不要。
  4. 「Connect」を押す。
  5. ログイン画面(ユーザ選択画面)が表示されるので、任意のユーザでログイン。

多分、この方法が一番スマート。

参考


リモートデスクトップ メモ


添付ファイル: filevnc_002.png 1138件 [詳細] filevnc_001.png 1145件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-15 (土) 12:08:01 (3734d)