VNC でリモートデスクトップ

たまには Slackware で GUI を使いたいよね。そんな時には VNC です。Slackware マシンで VNC サーバーを起動しておけば、手元の PC の VNC クライアントから接続して GUI を操作できます。便利。

Xvnc を使えば Windows のリモートデスクトップと同等の使い勝手になりますが、OpenBSD コミュニティによると、これ単体で使うのはどうもセキュリティ的によくないらしいです。ついでに、設定もちょっと面倒くさいです。xdmcp, xdm, gdm あたりがキーワードです。

よりセキュアな方法は、まず ssh で slackware マシンにログインし、Xvfb と x11vnc を起動し、ssh のポートフォワードで vnc クライアントとサーバーを接続する、というものです。ちょっと面倒ですが、一手間かけることでグッと安全になるみたいです。

まず x11vnc を slackbuilds でインストールしましょう。詳しい方法はソースコードをらくらくコンパイルを見てね。

インストールできたら、以下のようなスクリプトを作ります。

#!/bin/bash

# 使い方:
#   起動方法:
#     ~/start_vnc.sh start
#   終了方法:
#     ~/start_vnc.sh stop

# コマンドが非ゼロのステータスで終了したら直ちにスクリプトの実行を中断します
set -e

which startxfce4
which Xvfb
which x11vnc

case $1 in
  start)
    export LANG="ja_JP.UTF-8"
    export DISPLAY=:1
    # 好きな解像度に変えて使ってね
    Xvfb :1 -screen 0 1152x864x24 &
    echo $? > ~/Xvfb.pid
    startxfce4 &
    x11vnc -display :1 -bg -nopw -listen localhost -xkb
    ;;
  stop)
    if [ ! -f ~/Xvfb.pid ]; then
      echo "Xvfb's already stopped."
    else
      kill `cat ~/Xvfb.pid`
      rm ~/Xvfb.pid
    fi
    ;;
  *)
    echo "usage: $(basename $0) start|stop"
    ;;
esac

忘れずに実行パーミッションを付けます。

chmod +x ~/start_vnc.sh

手元の PC から slackware マシンにポートフォワードオプションを付けて ssh でログインします。Windows の場合、putty の port forwarding の項目で同じことができます。

#ローカルで
ssh -L 5900:localhost:5900 user@slackware

ログインしたら、上の start_vnc.sh を実行します。

#リモートで
~/start_vnc.sh

あとは手元の PC の VNC クライアントで自分自身 (手元の PC) の display 0 に接続してみましょう!僕のお気に入りの Mac 用 VNC クライアントは chicken です。

(コウヅ)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中