Project

General

Profile

VMwareESXi 5.0 でVNCサービスを有効にする。

  • ESXiには元々VNCが備わっており、vSphereクライアントのコンソール画面
    でなくても、デスクトップ画面を表示することが出来ます。
  • こうすることで、仮想マシンの死活・設定以外ではvSphereクライアント
    を起動せずに済みます。
  • ESXiサーバへ接続なので、VNC接続中にネットワークを止めたりしても
    切断されない。これを利用して、ローカルホスト環境をリモート操作可能。
  • 仮想サーバ側でVNCサーバを構築する場合と違い、ESXiサーバを使用します。
    そのため、アクセスするURLがESXiサーバ固定となり、ポートで振り分けします。
  • ここでは5900~5910ポートを利用した10台程度の制御を例とします。
  • ESXiホストを再起動したら、FirewallのXML記述がクリアされた。(要確認)
    ただし、コピーしなおしたらvncの除外登録情報は記憶していた。謎。
    結局の所、記述を戻してFirewallをリフレッシュする必要はあるのだが。

前提条件

  • VNCクライアントは省略します。(WindowsXP&UltraVNCでデモ)
    • UltraVNC Viewerはインストール無しのポータブル利用が可能。
  • VMware ESXi 5.0 での解説を前提とします。
    • 4.xの場合、ホストのFirewall設定はスキップできるようです。
  • ESXiのホストUIでSSH接続を有効にしているものとします。
    • 4.xでもunsupportedですが、有効にすることが可能です。

ホストのFireWallの設定

  • ESXiは5.0からホスト側にFirewall機能が組み込まれています。
  • チェックボックスでサービス単位でオンオフするタイプのもので、通常使われる
    サービスはあらかじめ登録されています。(任意での追加変更ができません)
  • SSHで直接ファイルを編集することで、これらの一覧に設定を追加できます。
  • SSHでESXiに接続します。
  • 次の新規ファイルを作成します。
    (teratermでコピペすると、インデントが崩れるが、特に問題はない)
    # vi /etc/vmware/firewall/vnc.xml
    ------------------------------------------------------
    <ConfigRoot>
      <!-- vnc -->
      <service id="0000">
        <id>vnc</id>
        <rule id='0000'>
          <direction>outbound</direction>
          <protocol>tcp</protocol>
          <porttype>dst</porttype>
          <port>
            <begin>5900</begin>
            <end>5910</end>
          </port>
        </rule>
        <rule id='0001'>
          <direction>inbound</direction>
          <protocol>tcp</protocol>
          <porttype>dst</porttype>
          <port>
            <begin>5900</begin>
            <end>5910</end>
          </port>
        </rule>
        <enabled>false</enabled>
        <required>false</required>
      </service>
    </ConfigRoot>
    
  • FireWall設定を再読込します。
    # esxcli network firewall refresh
    
  • vSphereクライアントを実行し、ESXiホストを選択します。
  • 「構成」→「ソフトウェア」→「セキュリティプロファイル」を開きます。
  • 「ファイアウォール」→「プロパティ」を選択します。
  • 「vnc」のチェックボックスが追加されていることを確認し、チェックを行います。

仮想サーバの設定編集

  • 仮想サーバをシャットダウンします。
  • 仮想サーバの設定画面を開きます。
  • 「オプション」→「全般」→「構成パラメータ」を開きます。
  • 「行の追加」を選択し、次の設定を追加します。
    remotedisplay.vnc.port 5900~5910までのポート番号(マシンごとに重複しないこと)
    remotedisplay.vnc.enabled true
    remotedisplay.vnc.password 任意のパスワード
    remotedisplay.vnc.keymap jp
    

  • 仮想マシンを起動します。

動作確認

  • ESXiサーバのアドレス:ポート番号でアクセスします。
  • 設定したパスワードを入力します。
  • 接続できました!

余談

  • このVNCは仮想マシンがパワーオンした瞬間から有効になる。
    したがって、パワーオフしているマシンに対してはアクセスできない。
  • が、パワーオンさえしていればいいので、BIOS画面にVNCが出来る。
    ちなみに、この状態から再起動してもVNCは切断されない。
    (一瞬だがBIOS起動画面も見られるし、再度のBIOS起動も行える)

 

戻る