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

サーバーのリモートはグラフィックス(GUI)よりキャラクタ(CUI)
で行うことが多いのですが、クライアントのサーバー担当者様には
なり手がいないのでとりあえず担当・・・といった方もおいでで、
コマンド操作に不慣れな方もいらっしゃいます。

以前のサーバー担当者様から引き継いだ方から、なんとかGUIで
操作できないんか?!というご連絡があり、クライアントマシーンから
サーバーをGUIで操作できるVNCをインストールしてきました。

VNCは久方ぶりだったので備忘録的に書き残します。

以前に書いた通り、VNC開発プロジェクトはVNCの機能自体のみに
専念した開発を行っていて、セキュリティは他に依存するという
スタンスを貫いているため、セキュリティは別途考慮する必要があります。

===== サーバー側(CentOSの場合) =========================

# yum install vnc-server

実際にインストールされるのは【tigervnc-server】です。
ただしCentOS7は

# yum install tigervnc-server

としなければダメっぽい。。。

■ vnc-serverの起動・終了

# vncserver -geometry 1024×768

などとgeometryを指定して起動すると以下が表示されます。

New ‘xxx.oba-q.com:1 (root)’ desktop is xxx.oba-q.com:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/xxx.oba-q.com:1.log

desktop サーバー名は
【xxx.oba-q.com:1】
であると表示されています。
これはクライアントの設定で必要になります。

* :1はデスクトップ番号

例えば画像解像度を変更したい場合などは

# vncserver -kill :1

でプロセスを終了後

# vncserver -geometry 1280×1024

などと再度立ち上げます。

更に

環境設定はテキストベースでも可能です。
CentOS6xの場合
# vi /etc/sysconfig/vncservers

 # VNCSERVERS=”2:myusername”
 # VNCSERVERARGS[2]=”-geometry 800×600 -nolisten tcp -localhost”

設定例

VNCSERVERS=”3:oba-q”
VNCSERVERARGS[3]=”-geometry 1024×768 ”

3及び[3]はディスプレーナンバーです。
-localhost は自身以外の接続・-nolisten tcpはTCPでの通信の
禁止なので、通常の使用法でこのパラメータは付与しませぬ。(笑
雛形のコメントを外しただけではNGです。

  —————————-

ubuntuでの注意

ubuntuはファイルサーバーとしてしか実用化はしていませんが、
ユーザーの追加など、SWATやWebminよりは簡単で便利なので
リモートデスクトップをインストールすることにしています。
デスクトップ環境がUnityだとうまくいかないという説もあるので
LXDEやXfceに変更します。
ファイルサーバーのリモート操作だけのためのために高機能の
デスクトップ環境は必要ないので、拙生は最初から一番軽い
LXDEを使用しているため問題ありません。
(拙生はUnuty大嫌い人間なのですが一応Unityでも試しました。
           拙宅環境では大丈夫でしたけど。。。)

* 他のサーバーアプリも稼働している場合、Webminやリモート
 デスクトップはなんでも触れちゃうので、Sambaだけの設定の
 ためなら専用のWeb管理ツール(SWAT)が良いでしょう。

インストール
$ sudo apt-get install vnc4server

起動
$ vncserver -geometry 1280×1024
初回だけ設定用にユーザー名パスワードを尋かれる

プロセス終了
$ vncserver -kill i7-ubuntu:1
デスクトップマシーンにVNCサーバーを導入した場合、ホストネームを
設定していない場合は、コンピュータ名がサーバー名となる。

わざわざデスクトップマシーンに導入するのは、VPNの環境があれば
インターネットで外からクライアントマシーンをGUI操作できるからです。

なお、VNCサーバー起動時にファイルの自動生成に失敗する時もあるらしく
その対策として

$ rm .vnc/xstartup
$ ln -s /etc/X11/Xsession .vnc/xstartup

のごとく削除しちゃって元々あるXのスタートアップにソフトリンクを
貼ることで代用すると良いのだそうですが、拙宅環境ではこの対策なしでも
失敗したことはありません。
不具合が出る方はお試しあれ。

========= クライアント側 (ubuntu) ==============

拙生はRDPクライアントに【Remmina】か【KRDC】を使います。
拙宅環境では【KRDC】が安定していますが、以下はディフォルトで
同梱される【Remmina】についての説明です。

接続→新規 
(設定)
・わかりやすい接続名
・適当なグループ名 (WORKGROUPなど)
・プロトコル VNCー仮想ネットワークコンピューティングを選択
 * 基本設定 サーバー xxx.oba-q.com:1(要読み替え)
   ユーザー名 oba-q(ログインユーザー名要読み替え)
   パスワード 1234567(ログインユーザーパスワード要読み替え)
   色数 High Color(16bit)など適当なものを選択
   品質 拙生は 最高(低速)を選択
      (低速と言ってもそれなりに早く目的は十分果たすので。)

Screenshot from 2015-05-08 13:12:44

家庭や小規模オフィスなどLAN内で使用するならこれだけども使えるでしょう。
しかしLANの規模が大きかったり、不特定のクライアントが参加する場合、
またはインターネット経由で外から覗きたい場合などはセキュリティ上
大変危険なので、拙生は(99%はCUIでのリモートであっても)LAN内では
SSHトンネリング、外からはVPNで接続します。
外からの接続にVPNの環境がない場合はSSHトンネリングでも良いでしょう。

 * SSHの設定

 拙宅のSSH環境はでrootのログインがOKとなっています。
 秘密鍵を持たないクライアントはアクセスできません。
 異なる環境の場合はそれに応じた設定が必要です。
 すでに公開鍵方式でSSHによる接続環境がある場合は
 SSH(タブ)で

 ユーザー名 root
 SSH認証  公開鍵(自動)を選択する

 これだけです。 
 SSHで通信が暗号化されると接続アイコンに鍵マークがつきます。 

========= クライアント側 (Windows) =============

Windows版フリーソフトでは 
・UltraVNC  
・RealVNC日本語インストール版
などが有名で、設定法もあちこちにあるのでここで取り上げる必要も
ないでしょうけど、SSHトンネリングで接続するには他のアプリに
依存することになり、使い勝手はよくありませんね。
そのままではLAN内での使用に止めるべきでしょう。
どぉしても外から接続したい場合は、TeraTerm(TTSSH)やPuttyなど、
SSHポートフォワーディング機能を持つツールの助けを借りることになります。

ここでよくあるミスがあります。
SSHポートフォワーディングの場合、基幹システム(サーバー)とクライアント間を
あらかじめ通信可能な状態にしておくので、VNCクライアントは自分自身に
接続にいかなくてはなりません。
ポートを【12345】に指定した場合の接続先は【localhost:12345】か
【127.0.0.1:12345】でなくてはいけないのに【サーバーアドレス:12345】と
してしまい接続できないとご連絡いただく場合があります。

Screenshot from 2015-05-08 19:02:47
1台分の画面に見えますがサーバー2台と接続してあり
タブで切り替えて表示します。
タブのアイコンに鍵マークが付いているの見えます?

余談ですが・・・
Windowsリモートデスクトップの使用で外からの接続の際も
SSHトンネリング等の暗号化の併用は必須と心得てください。

複数台のサーバーをリモートするときは、デスクトップの背景を
異なるものにしておくと分かり易いでしょう。

HOME

おすすめ