31 May 2013

Ubuntu でデスクトップをリモート操作します。 動作確認は Ubuntu 12.04 LTS と Ubuntu 13.04 でしました。

「お手軽編」と「ちゃんとする編」を紹介します。

お手軽編

vino(サーバー) と remmina (クライアント) を使います。 どちらも、たぶんデフォルトで入っていると思うので、インストールするパッケージはなし。

サーバー側

サーバー側で vino の設定をします。

メニューから「システムツール」 -> 「設定」 -> 「デスクトップの共有」を選びます。 (自分は Unity が好きではないので、 gnome-session-fallback を入れている。)

端末から起動する場合は

$ vino-preferences

と入力すると、設定ダイアログが出てくる。

「他のユーザーが自分のデスクトップを表示できる」と「他のユーザーがデスクトップを操作できる」にチェックを入れます。

「このマシンへの接続を毎回確認する」はチェックを外しておいた方がよいでしょう。 これにチェックが入っていると、クライアントから接続するときに、サーバー側に「別のユーザーがお使いのデスクトップを参照しているようです。許可しますか?」というダイアログが出てきます。 わざわざ、サーバー側まで歩いて行って、許可ボタンを押していると、遠隔操作の意味がほとんどなくなってしまいます。

誰でもデスクトップを操作できるのはよろしくないので、「パスワードの入力を要求する」にチェックをいれておくのがよいでしょう。このパスワードは、ログインパスワードとは別のようです。

クライアント側

それでは、クライアント側から接続してみます。 クライアント側のメニューで「インターネット」 -> 「Remmin リモートデスクトップ・クライアント」 を選びます。

もしくは端末から起動するなら

$ remmina

と入力します。

ダイアログが開くので、プロトコルから「VNC - 仮想ネットワークコンピューティング」を選びます。

あとは、「サーバー」と「ユーザー名」を入力して、「接続」ボタンを押すと接続できます。 「サーバー」の欄はホスト名かIPアドレスを入れます。「:0」は付けても付けなくてもよい。

問題点

以上で、とりあえずリモート操作はできるのですが、これでは問題もあります。 vino は daemon ではないので、サーバー側でユーザーがログインしてすでにデスクトップを表示していないと、クライアントからは接続できません。 つまり、デスクトップにログインするときはサーバーのところまで歩いていって、直接操作しないといけません。

ディスプレイマネージャーからログインできるようにするには、以下で紹介する方法を取ります。

ちゃんとやる編

サーバー側

サーバー側は x11vnc を使います。

$ sudo apt-get install x11vnc xinetd

を入れる。

/etc/xinetd.d/x11vnc を以下の内容で作成する。

service x11vnc
{
    type = UNLISTED
    disable = no
    socket_type = stream
    protocol = tcp
    wait = no
    user = root
    server = /usr/bin/x11vnc
    server_args = -inetd -o /var/log/x11vnc.log -display :0 -forever -bg -rfbauth /etc/vncpasswd -shared -enablehttpproxy -forever -nolookup -auth /var/run/lightdm/root/:0    
    port = 5900
    flags = IPv6
}

x11vncのパスワード設定

$ sudo x11vnc -storepasswd /etc/vncpasswd
Enter VNC password: 
Verify password:    
Write password to /etc/vncpasswd?  [y]/n y
Password written to: /etc/vncpasswd

xinetd を再起動

$ sudo service xinetd restart

念のため netstat で確認して 5900番をLISTENしていたら、サーバー側の設定はOKです。

$ netstat -a | grep 5900
tcp6       0      0 [::]:5900               [::]:*                  LISTEN

クライアント側

クライアント側は、「お手軽編」で説明したのと同じで、 remmina で接続できます。

環境によるのでしょうが、たまに接続したと思ったらいきなりウィンドウが閉じて終了していまうことがありました。 remmina の「色数」のところが「256色」になっていると、異常終了することがあったので、最低でも「High color (15bit)」の設定にしました。

Ubuntu 12.04LTS にはないようですが、Ubuntu 13.04 には vncviewer というクライアントがあるようです。

$ sudo apt-get install vncviewer

でインストールします。

$ sudo vncviewer HOST_NAME

だけで使えます。なかなか使いやすいです。



blog comments powered by Disqus